【发布时间】:2014-10-04 20:39:06
【问题描述】:
我的公司最近购买了 HERE 平台的企业许可证。在我正在处理的应用程序中,我需要解决旅行商问题,这意味着给定一个起点、一个目的地和它们之间的几个“航路点”,它必须计算我从@出发的最佳路线987654322@.
例如,如果我按以下顺序拥有这三个地址
1. London
2. Moscow
3. Paris
如果不对其进行优化,我会得到一条从伦敦到莫斯科,然后从那里返回巴黎的路线。这些地址的最佳路线是
1. London
2. Paris
3. Moscow
一个真实的例子是
- Start: Budapest
- End: Paris
- Waypoint 1: Berlin
- Waypoint 2: Vienna
- Waypoint 3: Stockholm
- Waypoint 4: Madrid
- Waypoint 5: Rome
- Waypoint 6: Bucharest
- Waypoint 7: Frankfurt
- Waypoint 8: Munchen
- Waypoint 9: Caen
- Waypoint 10: Barcelona
因此,应用程序接收地址并输出最短的 A.K.A 从布达佩斯到巴黎的“最佳”路线。
我已经与 HERE 的支持人员进行了交谈,他们告诉我我需要为此使用 Matrix Routing API(开发人员指南 PDF here),但是我真的不明白它如何解决我的问题。
据我所知,在文档中,您可以定义多个起点和多个目的地,因此它会计算它们之间的距离,但我看不出有任何方法可以使用一个固定的起始位置和另一个固定的目的地它们之间的多个航点。 Matrix Routing API 能否满足我们的需求?如果是的话,有人可以告诉我一些如何使用它的伪代码吗?
【问题讨论】:
-
实际上旅行商问题的定义是(来自维基百科):“给定一个城市列表和每对城市之间的距离,访问每个城市一次的最短路径是什么?并返回原城?”即使您说您需要解决旅行商问题,但您给出的示例并不是旅行商问题。如果只是计算从布达佩斯通过任意数量的航路点到巴黎的最短路径的问题,这被称为最短路径问题,并且更容易解决。
-
@OP 你想找到从源头到目的地的最短路线,还是在访问中间所有城市时找到最短路线?
-
@user1990169 是的,完全正确。
-
@wookie919 你有什么现成的解决方案吗?我会在网上搜索,感谢您的见解!
-
@TrisztánThar 我很困惑,因为 user1990169 询问“你想找到 A OR B”,你回答“是的,完全正确”。那么它是哪一个?你想找到从源头到目的地的最短路线还是在访问中间所有城市时的最短路线?第一个问题可以使用 Dijkstra 算法轻松解决。据我所知,解决第二个问题没有简单的方法。
标签: javascript algorithm maps here-api