解决这样一个需求。有三个时间段,每个时间段有很多订单。现在需要将订单进行组合 A->B->C, ABC 分别是三组订单中的某个。ABC 都有地理位置信息。要求是 A_>B_>C 路程时间最短,并且两者之间的路程时间小于所在时间段的时间间隔。

2018-12-24 16:58:40 +08:00
 xiatong

解决这样一个需求。有三个时间段,每个时间段有很多订单。现在需要将订单进行组合 A->B->C,ABC 分别是三组订单中的某个。ABC 都有地理位置信息。要求是 A_>B_>C 路程时间最短,并且两者之间的路程时间小于所在时间段的时间间隔。

2643 次点击
所在节点    算法
5 条回复
xupefei
2018-12-24 17:16:21 +08:00
就是个 Nearest neighbour 问题吧。如果当前的点是类型 A 那么下一步只能走类型 B 或 C 的点,如此往复,不保证最优。
算最优的话可能是 NP HARD,感觉可以用动态规划解决。
xiatong
2018-12-24 17:23:45 +08:00
@xupefei 其实是一个环形的,有很多个起点,起点->A_>B_>C_>起点。订单只能走一次。找到每个起点的最优路线。
xupefei
2018-12-24 17:31:37 +08:00
带回程的话,感觉更是 np hard,但我一时半会想不出算是什么问题了。但我知道,branch and bound 算法一定可用,能拿到最优。
xupefei
2018-12-24 17:34:40 +08:00
哦,找图中最短的环,如果 ABC 访问顺序固定的话,这好像是个 BFS 能简单解决的问题。
xiatong
2018-12-24 17:38:17 +08:00
@xupefei 谢谢你,我去看一下相关资料。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/520539

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX