在prolog中查找图表中的路径

时间:2017-12-10 23:25:43

标签: prolog

让我们假设我在Prolog中有事实如下:

path(a,b).  
path(a,c).  

我希望对函数ispath(X,Y)进行编码,如果在一个或多个步骤中存在从XY的路径,则返回true。如果X=Y,则失败。假设 一个非循环图。

解决方案

isPath(X,Y) :- arrow(X,Y).  
isPath(X,Y) :- arrow(X,R), arrow(R,Y).

我的问题是,如果prolog在第一次调用箭头时返回R的一些元素,并且在第二次调用中没有从R到y的路径,prolog是否返回false?或继续搜索所有可能的路径,直到找到一个。

0 个答案:

没有答案