2

当给出源机场和目的地机场时,我将使用 A* 算法找到最快和最便宜的航班。这两条路径将分别找到。

为了找到最快的路径,我将使用源机场和目的地机场之间的平均旅行时间作为 huristic 值。

我有几个问题:

  1. 你能告诉我,我在哪里可以找到每个机场对之间的平均旅行时间的数据源?或者任何包含每个机场对之间距离的数据源?

  2. 找到最便宜的路径并不像我想的那样容易。所有票价都不能作为优势的成本(航班段作为优势)。因为某些票价适用于多个航班段。例如:从 SFO通过 BOS 100 美元到肯尼迪国际机场。

    2.1 你能建议我找到最便宜的路径吗?

    2.2 A*适合这个吗?

    2.3 如果合适,最合适的 huristic 值是什么?

    2.4 有没有办法获得包含每个机场对之间平均票价的数据源?

伟大的帮助朋友......在此先感谢!

4

1 回答 1

1

一些杂七杂八的答案:

  1. 你可能不需要它。直线飞机的速度非常一致(平均约为 800/900 公里/小时),因此您可以简单地将距离除以速度并获得时间。距离可以很容易地从网络上的任何地图服务(例如谷歌地图)获得。为了更好地估计,您可以对运营商的网站进行数据挖掘(见下文)。

  2. 看起来您必须使用多重加权边缘分析。也就是说:每条边都会有不止一个与之相关的权重/成本,您必须将所有这些都考虑在内。这是因为总成本通常是许多独立元素的总和。同一票价适用于多个航班这一事实可能无关紧要。只需对所有涉及的航班应用相同的票价,然后继续。

2.1 见上文。

2.3 最有可能的是,您还应该考虑“收缩层次结构”:https ://en.wikipedia.org/wiki/Contraction_hierarchy 。看看 OSRM:http ://project-osrm.org/ 。

2.4 最有可能的是,唯一的方法是对网络进行数据挖掘(因为票价在不断变化)。

对网络中的距离、旅行时间和其他数据进行数据挖掘并不容易,可能需要与运营商达成某种协议。查看他们的网站以获取信息。

于 2012-12-02T16:44:01.860 回答