【问题标题】:Optimize route by distance按距离优化路线
【发布时间】:2019-10-07 19:27:57
【问题描述】:

我正在构建一个基于 Here Maps 的 Web 应用程序。 它的主要功能包括将电子表格文件(.xls、.xlsx)上传到服务器并使用文件中的地址规划路线,最多 500 个航点。

当然,这些航路点并不是按任何优化顺序排列的,所以我想让用户点击“优化路线”按钮,然后按距离优化它。

例如如果文件有这三个地址:

  1. 纽约
  2. 旧金山
  3. 长岛

默认的路线是从纽约到旧金山,然后返回李。

应用程序将检查距离并以如下方式重新排列航点数组:

纽约->李->旧金山

我的问题: Here Maps 中是否有内置的路线优化功能,还是我应该自己编写?

【问题讨论】:

  • 我真的很想用 HERE 地图完成这件事,我是 searching for an easy solution,但不幸的是,我们似乎不得不求助于谷歌地图,因为显然那里的解决方案就像 @987654322 一样简单@
  • 更新好的,看起来 HERE 地图实际上可能有我们需要的东西:Waypoints Sequence for a Car。不知道为什么它被埋在示例部分那么深。

标签: javascript jquery maps here-api


【解决方案1】:

你应该看看Matrix Routing API。这将计算每个 N x M 位置之间的“真实”距离。使用此信息,您已将问题减少到Travelling Salesman Problem。当然,TSP 是 NP 完全的,所以除非你使用蛮力算法,否则你不能确定你得到了最佳答案。

就我个人而言,我会查看最近邻解决方案 - 快速、编码非常简单,并且通常会返回“合理”(如果不是最佳解决方案)。您可以根据需要更新到更复杂的算法:

伪代码如下:

  1. 从 A 点开始
  2. 矩阵路由请求到所有剩余点。
  3. 找到最近的,这将成为下一个 Waypoint
  4. 从第 2 步开始重复。

【讨论】:

【解决方案2】:

这被称为旅行商问题。

你需要有一张从任何地方到你所支持的任何其他地方的距离表。

一旦你有了它,你就可以使用任何通用的旅行推销员算法。

请注意,它们非常缓慢。

【讨论】:

    猜你喜欢
    • 2023-03-14
    • 1970-01-01
    • 2021-09-08
    • 1970-01-01
    • 2015-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-26
    相关资源
    最近更新 更多