다음 프롤로그 질문과 함께 생겼습니다 : 사이클이없는 그래프의 가장자리를 사실로 지정하십시오. 예컨대 :그래프에서 X에서 Y까지의 두 가지 다른 경로
edge(a, b).
edge(b, c).
edge(c, d).
edge(c, e).
...
내가 정점의 X와 사이에 두 개의 서로 다른 경로가 있는지 여부를 테스트하는 술어를 작성해야 Y. 예 : 노드 A에서 노드 C에 두 개의 서로 다른 경로가있는 경우 two_paths(a, c).
가 true를 돌려 전화. 두 꼭지점 사이의 경로가 있는지 확인하는 방법을 알고 있습니다 :
path(X, Y) :- edge(X, Y).
path(X, Y) :- edge(X, Z), path(Z, Y).
그러나 두 개의 다른 경로를 확인하려면 어떻게해야합니까? 당신의 도움을 주셔서 대단히 감사합니다.
매우 명확하고 건설적인 답변입니다. 고마워요! 내 스레드를 점으로 편집 할 것입니다 :-) – CPUFry
'''=''''를'''dif/2''로 바꾸길 원할 것입니다 - 이것은 비 지상 솔루션에서도 작동합니다. –
@ lambda.xy.x : 그렇습니다. 실제로 더 나은 옵션입니다. 감사. –