【发布时间】:2010-05-08 03:43:22
【问题描述】:
我有一个具有正边权重的有向无环图。它有一个源和一组目标(离源最远的顶点)。我找到从源到每个目标的最短路径。其中一些路径重叠。我想要的是一个最短路径树,它可以最小化所有边的权重总和。
例如,考虑两个目标。在所有边权重相等的情况下,如果它们在大部分长度上共享一条最短路径,那么这比两条大多不重叠的最短路径更可取(树中的边越少,总成本就越低)。
另一个例子:两条路径在它们的一小部分长度上不重叠,非重叠路径的成本高,但长共享路径的成本低(组合成本低)。另一方面,两条路径在其大部分长度上不重叠,非重叠路径的成本低,但短共享路径的成本高(组合成本也低)。有很多组合。考虑到从源到目标的所有最短路径,我想找到总成本最低的解决方案。
换句话说,我想要最短的路径树。
这是否与任何人敲响了警钟?谁能指点我相关的算法或类似的应用程序?
干杯!
【问题讨论】:
-
嗯...尝试分区我不确定。进入与其他没有共同点的集合的路径。也许反转每条边并解决补码问题...
-
只需删除那些不在从源到目标的任何路径上的节点和边,并计算生成的 DAG 的最小权重生成树。似乎它会起作用。其中一个答案也提到了。
-
似乎这是 NP-Complete 而 MST 只是一个红鲱鱼。我已经发布了答案。
标签: graph-theory shortest-path