在 Prolog 中寻找路径

问题描述 投票:0回答:0

我对 Prolog 比较陌生,我的目标是尝试找到所有已定义边之间的所有路径。 Prolog 应该输出从输入的开始到目的地的完整路线。但是我一直收到错误

bash: -c: line 1: syntax error near unexpected token ('

我想知道我是否以正确的方式处理这个问题?或者也许我对愚蠢的错误视而不见..

这是我的代码。

edge(o,p1).
edge(p1,k).
edge(k,l).
edge(l,c).
edge(c,b).
edge(c,w).
edge(c,m).
edge(l,p2).


path(X,Y,Path) :- path(X,Y,[X],Q), reverse(Q,Path).


path(X,Y,Visited,[Y|Visited]) :- edge(X,Y).
path(X,Y,Visited,Path) :-
    edge(X,Z),
    Z \== Y,
    \+ member(Z,Visited),
    path(Z,Y,[Z|Visited],Path).

我试图运行的测试用例是

path(o, m, Path).
path prolog nodes path-finding
© www.soinside.com 2019 - 2024. All rights reserved.