我有一个所有直飞航班的清单。从这里我想获得航班从A到B的连接。什么是适合这个问题的算法或数据结构?谢谢。航班时刻表算法
Q
航班时刻表算法
3
A
回答
6
基本上,这是遍历一个图的问题,其中每个出发或到达将是一个节点,并且每个飞行都是一个边。您通常会将成本应用于边缘 - 取决于用户的偏好,“成本”可能是机票的成本(以获得最低价格)或飞行时间(以获得最短的飞行时间)。在同一机场的抵达和离开将通过其停留时间(并且从价格角度来看,该边缘通常会具有零成本)的成本边缘来连接。
2
直接航班文件产生一个图。节点是机场。边缘位于有直飞航班的机场之间,并说每条边都有重量。您想要找到A和B之间的所有简单路径,并且可能最终会收集路径集合。您可以只对图形进行深度优先搜索。编码图的一些常见方式是邻接列表(即,对于每个节点,存在边的节点的列表);以及其他编码方法。或N×N矩阵(对于N个节点)位置(i,j)中的值告诉你节点i和节点j之间边缘的成本。
鉴于该数据结构。您可以使用从节点A开始的深度优先搜索并终止于节点B.您需要确保阻止算法重新访问已经在当前路径上的节点以防止循环。
1
经典问题Shortest path problem。如果你正在寻找算法,也有在维基百科页面中列出的几个选项,或者有算法,如ACO的选项,但它取决于使用情况和如何提供解决方案。
为清晰起见,请注意,这是一个在traveling salesman problem的变化,结果是NP-complete。
相关问题
- 1. 航班时刻表API
- 2. 如何开发像航班时刻表板,动画会在iPhone SDK
- 3. 计算加班工作时间和更新加班到表
- 4. 员工排班算法
- 5. PostgreSQL夜班计时计算
- 6. 正常表达式匹配航班号
- 7. 如何按时间表将航班分组?
- 8. GPS导航算法
- 9. OpenCV的(C):计算时刻从轮廓
- 10. 加班加班时的工资计算问题
- 11. Google+无法插入时刻
- 12. 大数据方法:数据时刻的迭代(块式)计算
- 13. 具有最小刻度的图表的好标签算法
- 14. 计算班次工作时间
- 15. 访问航班信息
- 16. 卡航班phonegap插件android
- 17. 获取航班信息
- 18. 需要查找航班号
- 19. Excel加班计算
- 20. 时刻在瓶子时刻未定义
- 21. 算法:航行计划
- 22. 航班:08在波士顿找到价格最低的航班组合
- 23. 选择不同的回程航班为廉价搜索最大航班
- 24. 时间表生成算法
- 25. 计算从出发城市到目的地城市的航班时长时的更改时区
- 26. 无法立刻
- 27. 需要计算加班
- 28. 计算总加班MySQL
- 29. 具体的加班计算
- 30. 加班费的awk计算
http://jung.sourceforge.net/ – jball 2010-01-12 20:36:00
您是否关心连接数量,总体旅行时间,最小化停留时间? – jball 2010-01-12 20:38:04
这听起来像是作业问题? – 2010-01-12 20:41:32