Computer science 流网络-查找从给定源顶点s到某个顶点t的路径

Computer science 流网络-查找从给定源顶点s到某个顶点t的路径,computer-science,graph-theory,Computer Science,Graph Theory,我的任务是写一个算法,找到从s到t的路径,由不同的顶点组成 例如: 考虑有向图G=(v,e): 在给定的例子中,答案是2,一个是s,v,t或s,u,v,t,另一个是s,x,t 我看到了这个问题的解决方案: 制作一个流量网络图G',如下所示: 其中,形式为(i,i')=1(i是某个顶点)的弧的容量,以及 形式为(i',j)的弧的容量=无穷大 他们说在G'上运行Edmonds Karp算法将输出想要的流 现在我似乎不明白这是如何解决问题的,我的意思是,如果在第一次迭代中,edmonds karp

我的任务是写一个算法,找到从s到t的路径,由不同的顶点组成

例如: 考虑有向图G=(v,e):

在给定的例子中,答案是2,一个是s,v,t或s,u,v,t,另一个是s,x,t

我看到了这个问题的解决方案: 制作一个流量网络图G',如下所示:

其中,形式为(i,i')=1(i是某个顶点)的弧的容量,以及 形式为(i',j)的弧的容量=无穷大

他们说在G'上运行Edmonds Karp算法将输出想要的流

现在我似乎不明白这是如何解决问题的,我的意思是,如果在第一次迭代中,edmonds karp会意外地用路径s,u,u',v,v',x,x',t改进流程,那么在这种情况下,它将如何得到修复


非常感谢。

网络流量如何与原始问题等价:

=>如果有n条路径,则这些路径将产生n条流

j边,它也可以是1而不改变任何内容

对于整个算法的描述您应该参考一些文献,例如,但是您正在编写的路径不会首先被选中,因为它很长。Edmonds-Karp算法从可能的最短路径开始


现在,(忽略这一事实),您可能会被这样一个事实所迷惑,即这样一条路径“阻塞”了另外两条路径。如果以前的迭代选择了这样一条路径(或路径组合),那么仍然会有一条扩展路径,该路径将使用前一条路径的一部分(在您的示例中为s-x-v'-t)。

您可能会在理论计算机科学堆栈交换网站上获得更多关注:我也会尝试,谢谢,你不明白的是什么:转化为网络流问题如何解决你原来的问题,或者如何找到最大流?具体转化为网络流如何解决问题,部分困惑是由于缺乏对如何找到最大流的理解,特别是如果选择s,u,u',v,v',x,x',t排在第一位。我还想知道,如果我们不添加标记的顶点,它会起作用吗?例如,如果将所有边的容量设为1,则在某些情况下会导致某些顶点被多次使用。在你的例子中不是这样,但以一个看起来像无穷大符号的图形为例,源在左边,汇在右边,所有的边从左到右。最大流为2,但只有一个顶点独占路径。