因此,在我开始的AI旅程中,我尝试学习Prolog作为朋友的推荐,它变得越来越困难,我在堆栈中找不到任何类似的解决方案,因此我决定问一下,我正在与列表,此列表保存了在城市机场可用的飞机飞行,从X到Y的飞行,具有定义的距离,我的知识库如下所示:
airports([culiacan,mazatlan,chihuahua,guadalajara,df]).
flightdistance([[culiacan,mazatlan,5],[culiacan,chihuahua,6],[mazatlan,chihuahua,5],
[mazatlan,guadalajara,7],[chihuahua,culiacan,6],[chihuahua,guadalajara,8],
[chihuahua,df,9],[guadalajara,culiacan,10],[guadalajara,df,3],
[df,chihuahua,9],[df,guadalajara,3]]).
如您所见,在我的第二个列表中,“飞行距离”中的每个列表都有出发机场,然后是目的地,最后是要行驶的距离,并不是所有的机场都有直飞的航班,所以他们必须采取措施才能到达,现在,我需要一个主意,我迷失了,我唯一能实现的就是知道一个确定的城市是否可以直接到达另一个城市,例如基本情况:
flight(X,Y):-directpath(X,Y).
flightR(X,Y,[[X,Y,_]|_]).
flightR(X,Y,[_|LL]):-flightR(X,Y,LL).
directpath(X,Y):-flightdistance(Z),flightR(X,Y,Z).
我真的迷路了,我想我只是一团糟,不知道如何解决它,就像我说的那样,我需要知道什么路径可以将我从X带到Y,要走多远,我已经尝试过遵循某些有向图示例在stackoverflow此处显示的相同结构,但是我无法将其转换为与列表一起使用,任何想法都将不胜感激。 预先感谢。