首页 > 解决方案 > 包含飞行路径和距离的列表列表?

问题描述

所以,我正在尝试学习 Prolog,作为我开始 AI 旅程中朋友的推荐,它变得非常困难,我在堆栈中找不到任何类似的解决方案,所以我决定问,我正在处理一个列表列表,这个列表保存在城市机场可用的飞机航班,从 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]]).

如您所见,在我的第二个列表“flightdistance”中,其中的每个列表都有出发机场,然后是目的地,最后是要行驶的距离,并非所有机场都有直飞航班,所以它们有为了到达,现在,我需要一个想法,我迷路了,我唯一能做到的就是知道一个确定的城市是否可以直接到达另一个城市,比如基本案例:

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 上显示的结构相同,但我无法将其翻译为与列表一起使用,任何想法都会非常感激。提前致谢。

标签: prolog

解决方案


推荐阅读