SWI-Prolog에서 간단한 그래프 검색을 코딩하려고합니다. 나는 다음 프로그램을 생각해 냈다.프롤로그에서 간단한 그래프 검색
adjacent(1,4). adjacent(4,2). adjacent(3,6).
adjacent(6,4). adjacent(7,10). adjacent(4,9).
adjacent(5,10). adjacent(7,10). adjacent(7,12).
adjacent(6, 11). adjacent(13,11). adjacent(9,14).
adjacent(14,12). adjacent(10,15). adjacent(9,12).
connected(X,Y) :- adjacent(X,Y); adjacent(Y,X).
path(A,B,[A|B]) :-
connected(A,B).
path(A,B,[A|R]) :-
\+member(R,A),
connected(A,C),
A \== C,
path(C,B,R).
그러나이 프로그램은 스택 오버플로를 일으킨다. 내가 뭘 잘못하고 어떻게 고칠 수 있니?
내 프롤로그는 약간 녹슬었지만 각 부분의 의도에 대해 몇 가지 의견을 추가 할 수 있습니까? – fortran
'경로 (A, B, 경로) : - 경로 (인접, 경로, A, B) .' [경로/4'] (http://stackoverflow.com/q/30328433). – false