私はプロローグが初めてです。graph.pl
次のグラフで定義しました。
そして、ここに私のプロローグコードがあります:
edge(a,e).
edge(e,d).
edge(d,c).
edge(c,b).
edge(b,a).
edge(d,a).
edge(e,c).
edge(f,b).
path(X,X).
path(X,Y):- edge(X,Z) ; path(Z,Y).
私はそれを次のように理解しています:頂点と頂点の間にエッジがあり、頂点と頂点の間にパスがある場合にのみ、頂点とX
頂点の間にパスがありますY
X
Z
Z
Y
(ある種の再帰)。
提示されたグラフでよろしいですか?A
頂点と頂点の間のパスについて Prolog に尋ねると、F
それは私に与えられますtrue
...これは正しくありません! このコードで何が間違っている可能性がありますか?