我想在SWI-Prolog中编码一个简单的图搜索。我想出了以下程序:在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 2009-10-22 14:39:28
'path(A,B,Path): - path(adjacent,Path,A,B).' using ['path/4'](http://stackoverflow.com/q/30328433)。 – false 2016-04-08 09:34:32