假设您有一个有向图 G ,其中 V 顶点和 E 边缘。 L 特殊边缘包含奖牌,目标是在最短的时间内收集 N 奖牌。请注意,顶点和边(特殊边除外)可以被访问任意次。您还会获得一个起始顶点,但没有结束顶点。
我看过类似的问题,即:find shortest path in a graph that compulsorily visits certain Edges while others are not compulsory to visit。不幸的是, L 大约是600, N 大约是100.我还考虑了Dijkstra算法的一些修改版本,但是只允许访问顶点一旦。是否有一些解决方案可以在合理的时间内运行?
答案 0 :(得分:1)
有一种叫做中国邮递员的问题,维基百科称之为https://en.wikipedia.org/wiki/Route_inspection_problem。这包括你想要访问所有边缘的情况,但如果你在维基百科帐户的末尾你会看到“最小化”农村邮递员问题“:解决问题,不需要一些边缘。”它至少为您提供了参考,也许还有搜索词。
答案 1 :(得分:1)
跟踪建议的参考mcdowella,我们最终在this paper(直接链接到PDF,可能需要Wiley在线订阅)。所描述的问题是农村邮递员问题,确实是NP难的;本文提到了TSP(NP-hard),中国邮递员问题(polytime)和农村邮递员问题(NP-hard)。它们从Hamilton Circuit减少到RPP,并且减少几乎就是我在评论中建议的:将每个节点分成两个,用边连接它们,分配合适的权重,使那些边成为你想要访问的边。
他们提到CPP(你必须访问所有边缘)和RPP之间的差异类似于找到MST之间的差异,你必须找到跨越所有节点的最小权重树,以及{{ 3}},您必须找到跨越节点子集的最小权重树。