我有一个具有正边权重的有向无环图。它有一个单一来源和一组目标(离源头最远的顶点)。我发现从源到每个目标的最短路径。其中一些路径重叠。我想要的是使所有边上的权重总和最小的最短路径树。如何最小化最短路径树的总成本
例如,考虑两个目标。如果所有边权重相等,如果他们在大多数长度上共享单一最短路径,那么优于两个大多不重叠的最短路径(树中较少的边等于较低的总成本)。
又如:两条路径是不重叠的对它们的长度的一小部分,与用于非重叠的路径成本高,但成本低的长共享路径(低结合成本)。另一方面,两条路径的大部分长度都不重叠,非重叠路径的成本较低,但短共享路径的成本较高(组合成本较低)。有很多组合。我希望找到具有最低总体成本的解决方案,给出从源到目标的所有最短路径。
换句话说,我想要最短的最短路径树。
这是否与任何人响铃?任何人都可以指向相关算法或类似的应用程序吗?
干杯!
嗯......尝试分区我不知道。成为与其他人没有任何共同之处的路径。也许反向每一个边缘,并解决补充问题... – 2010-05-08 04:44:50
只需删除那些不在从源到目标的任何路径上的那些节点和边,并计算生成的DAG的最小权重生成树。似乎它会起作用。其中一个答案也提到了它。 – 2010-05-17 18:33:43
似乎这是NP-Complete,MST只是一个红鲱鱼。我发布了一个答案。 – 2010-05-18 03:40:31