【发布时间】:2012-12-14 20:43:08
【问题描述】:
如何使用 A 星算法找到前 100 条最短路径?
【问题讨论】:
-
您希望将这些路径用于什么目的?第 n 条最短路径通常是在某个点绕道的最短路径,对任何实际目的都没有用处。可能有一些合理的替代路径,但比困难的问题是如何判断路径对人类来说是否“合理”。
-
@Jan Hudec:在我的程序中,我将实现航班搜索系统。边的成本是飞行持续时间。我要找到定价的航班解决方案。但最快的路径可能不是便宜的路径。所以我要先找到 100 个最快的航班,然后再给路径定价相应地。
-
100 次最快的航班会给你一堆垃圾,实际上可能不会给你任何便宜的路径,因为绝对没有办法知道便宜的路径有多远。相反,您要么希望基于部分排序(通过组合各种标准创建)找到所有最小路径,要么使用不同的目标函数多次运行算法。或者对深度和距离应用启发式限制并进行详尽的搜索;我怀疑它适用于航班,但不适用于公共汽车连接。
-
无论如何,这是一个完全不同的问题,所以在您制定新问题后进行更详细的讨论 - “如何在具有多个标准(更便宜、更短、更快等)的时间表中搜索并找到所有其中任何一个中最小的路径”或“当需要许多替代结果时如何在飞行时间表中搜索”。或者两者兼而有之,如果你有兴趣的话。
-
如果您正在为航班搜索系统实施此功能,您可能需要查看替代路线:algo2.iti.kit.edu/2073.php、algo2.iti.kit.edu/english/1805.php 等
标签: algorithm graph-algorithm shortest-path a-star