如何使用深度优先搜索查找城市之间的可能路线 这是我的代码:
DOMAINS
s = symbol.
sList = symbol*.
PREDICATES
nondeterm link(s, s,integer).
nondeterm depth_first_search(s, s, sList,integer).
CLAUSES
link("Erbil","Koysinjaq",12).
link("Erbil","Kirkuk",15).
link("Erbil","Shaqlawa",15).
link("Erbil","Mosul",22).
link("Shaqlawa","Akre",33).
link("Mosul","Duhok",44).
link("Mosul","Akre",55).
link("Kirkuk","Koysinjaq",66).
link("Kirkuk","Chamchamal",88).
link("Chamchamal","Sulaimani",34).
link("Koysinjaq","Sulaimani",22).
link("Sulaimani","Ranya",33).
link("Akre","Duhok",22).
depth_first_search(X, X, [X],0).
depth_first_search(X, Y, [X|T],NewDis):-
link(X, Z , Dis),
NewDis=NewDis+Dis,
depth_first_search(Z, Y, T,NewDis).
GOAL
depth_first_search("Erbil", "Duhok", PathToGoal,Dis).
当我执行时,我得到了这个错误:
E;Test_Goal, pos: 652, 707 Free variable in expression
这里我想要这些城市之间所有可能的联系以及它们之间的距离 现在该怎么做,感谢您的帮助
最佳答案
看看这是你的错误:
depth_first_search(X, X, [X],0).
depth_first_search(X, Y, [X|T],L):-
link(X, Z , L1),
depth_first_search(Z, Y, T,L2),L=L1+L2.
GOAL
depth_first_search("Erbil", "Duhok", PathToGoal,Dis).
它现在对我有用:)
关于prolog - 如何在 Prolog 中查找城市之间的距离?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23312180/