prolog - 包含飞行路径和距离的列表列表?
问题描述
所以,我正在尝试学习 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 上显示的结构相同,但我无法将其翻译为与列表一起使用,任何想法都会非常感激。提前致谢。
解决方案
推荐阅读
- machine-learning - 前几次折叠的 F1 分数较低
- python - pymel如何获得正确类型的选定节点
- swift - 如何在所有 ViewController 的导航栏中将图像居中?迅速
- objective-c - 如何在 mac os 应用程序中使用 Sox Library 'pad' 命令为音频文件的开头和结尾添加静音?
- ios - Firebase Analytics for iOS — 带有预定义事件的自定义参数 (Swift)
- javascript - JSON模式对象的Typescript类型
- hazelcast - 我应该在我的对象中保留对 Hazelcast Map 的引用吗?
- python - append() 在这个代码片段中是如何工作的?对特定变量感到困惑
- excel - 有没有办法循环满足条件的行以设置单个范围
- python - 无法识别 Sikuli 斜线字符(欧洲键盘)