path - Prolog图路径搜索与循环路径

标签 path prolog infinite-loop transitive-closure cyclic-graph

我是 Prolog 的新手。我试图找出一个问题,我需要检查边缘之间是否存在路径。我已经完成了循环的非循环图代码,我的代码将进入无限循环。

path(Start, End) :- edge(Start, End).
path(Start, End) :- edge(Start, Z), path(Z, End).

我需要通过定义一个新谓词来处理这种情况: new_path(开始,结束,路径) 这应该消除无限循环。请让我知道如何进行。

最佳答案

尝试

path(Start, End) :-
   closure(edge, Start, End).

使用 this definition for closure/3

关于path - Prolog图路径搜索与循环路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27180060/

相关文章:

Python模块搜索路径

c++ - MS VC2010 - 双向斜线路径

Prolog 两个列表交集 - 为什么它不断检查?

prolog - Prolog 中的简单 nth1 谓词

prolog - Power with successor arithmetic - 如何防止无限循环? [序言]

java - 在 Servlet 中引用文件

c - 如何将 2 个 char 数组放入 int putenv(char *string);在C中

reactjs - 由于 useState 而导致 React Native 中的无限循环

c - Switch 语句 C 中的无限循环

c - 我正在尝试验证用户输入。但是如果我输入了一个无效的字符,程序就会进入无限循环