首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Prolog中的路径规划

Prolog中的路径规划
EN

Stack Overflow用户
提问于 2014-03-13 17:54:31
回答 1查看 1.4K关注 0票数 2

以下是一个在线教程提供的路线规划程序:-

代码语言:javascript
运行
复制
route(X,Y,R) :-
 route(X,Y,[X],R).

route(X,Y,_,[drive(X,Y)]) :-
 travel(X,Y).
route(X,Y,V,[drive(X,Z)|R]) :-
 travel(X,Z),
 \+ member(Z,V),
 route(Z,Y,[Z|V],R)
 Z \= Y.     %Only required if Y is not ground.


travel(X,Y) :- road(X,Y).
travel(X,Y) :- road(Y,X). 


road(arad,sibiu).
road(arad,timisoara).
road(arad,zerind).
road(zerind,oradea).
road(oradea,sibiu).
road(sibiu,fagaras).

我不明白的是注释语句:Z\=Y。为什么需要这样的声明?为什么只有在Y没有理由的情况下才需要这样的声明?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-07 19:32:52

Z \= Y行防止路由中的循环,否则您可能会有一个段,即arad -> arad。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22386947

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档