【发布时间】:2013-09-04 18:04:04
【问题描述】:
我正在努力将图形算法应用于可能非标准的应用程序。我有链接在一起的图,并试图找到通过它们的前 K 个最短节点不相交路径。希望我能解释一下:举个例子,假设我有两个相当简单的图表,带有开始和结束。在我的例子中,这些图表经历了阶段(从左到右)并且都具有相同数量的阶段。我可以使用 Dijkstra 或其他东西在每个图中找到最短路径,但它们链接在一起,使得第一个图中的一些节点链接到第二个图中的匹配节点。选择一个需要选择另一个。我的第一个想法是将两个图合并为一个,所有可能的组合都得到一个节点。因此,如果在图一的某个阶段,节点是 A、B、C,图二有 D、E、F,如果 C 和 F 链接,则选项是 AD、AE、BD、BE、CF。这可以很好地找到单一的最佳路径。当我应用 Suurballe 算法来查找 K 个最佳节点不相交路径时,问题就出现了,因为两个节点不相交路径可以选择 AD 和 AE。这些是组合图中的节点不相交,但在原始问题中不是(它们共享 A)。这类问题是否有任何现有技术,或者任何人都可以想到一个简单的解决方案?
图片示例:在以下约束条件下通过这两个图找到 K 个最小成本路径(两条路径的总和):如果您在一个图中选择彩色节点,则必须在另一个图中选择相同的颜色节点。即使未显示,边缘也会被加权。
响应以下答案的另一个示例(示例 2):
【问题讨论】:
-
一张图表可以帮助您解释您的场景...
标签: algorithm graph shortest-path