Graph 2源最优路径

Graph 2源最优路径,graph,dynamic-programming,shortest-path,Graph,Dynamic Programming,Shortest Path,假设我们有一个RxC表。每个单元格包含一个权重 您可以从两个源中进行选择—您可以从第0行开始,但不能从任何列开始 您的目标是沿着表向下移动,直到到达最后一行(任何列),并且没有重叠的路径。这必须产生这两条路径的最低权重组合 有什么办法解决吗?如果你需要更多的细节,请告诉我 如果你能提供一些O(常数xrxc)运行时间,那就好了 编辑: 每走一步,你要么向左走,要么向右走,要么向下走 范例 19.19 19.19 1239 6399 最佳值为1-1-1-6和1-1-3-2-3正如Acess Deni

假设我们有一个RxC表。每个单元格包含一个权重

您可以从两个源中进行选择—您可以从第0行开始,但不能从任何列开始

您的目标是沿着表向下移动,直到到达最后一行(任何列),并且没有重叠的路径。这必须产生这两条路径的最低权重组合

有什么办法解决吗?如果你需要更多的细节,请告诉我

如果你能提供一些O(常数xrxc)运行时间,那就好了

编辑: 每走一步,你要么向左走,要么向右走,要么向下走

范例

19.19
19.19
1239
6399


最佳值为1-1-1-6和1-1-3-2-3

正如Acess Denied所说,请指定沿行移动的规则, 例如:-如果规则是

您可以直接向下或右对角向下或左对角向下

我们可以这样做,类似于第一个源的单源问题,并找到最佳和,然后将属于此路径的单元的权重替换为0,然后再次从第二个源运行单源问题解决方案


我认为这种贪婪的方法会起作用,因为最后会询问两条路径的总和。

每一步你可以向右移动还是向下移动?还是只写下来?我已经编辑过这个问题了。顺便说一句,没有重叠的路径。如果我正确理解你的答案,设置为零会有重叠的路径。好吧,我的错,我试图找到最大和!相反,将值设置为9999999或任何高值,这样可以避免已经选择的路径。谢谢,请参见上面的示例,您的算法可能无法解决问题。1-1-1-6和1-1-3-2-3将产生最佳路径,但不是最短路径(1-1-1-2-3)