网络流量的流通

时间:2012-05-11 04:30:28

标签: algorithm graph-algorithm

我正在阅读Robert Sedwick撰写的算法书。

  

注意:" s"是来源和" t"是坦克。

     

任何具有来自" t"到" s"与流动和   容量等于网络的价值,并知道流入量是相等的   为扩充网络中的任何节点集流出。这样的流程   被称为循环,这种建筑表明了   maxflow问题减少到找到循环的问题   最大化沿给定边缘的流动。

     

给定一组循环和每个循环的流量值,很容易   通过跟踪每个循环来计算相应的循环   并将指示的流量添加到每个边缘。相反的属性是   更令人惊讶的;我们可以找到一组循环(具有流量值)   每个)相当于任何给定的循环。

     

流动分解规范:任何循环都可以表示为流动   沿着一组最近的E指导周期。

我对上述解释的疑问

  1. 要求用例子解释作者的意思是什么以及我们如何减少" maxflow问题减少了找到流通的问题 最大化沿给定边缘的流动。 "

  2. 任何人都可以用以下段落中的简单例子来解释。

  3.   

    "给定一组循环和每个循环的流量值,很容易   通过跟踪每个循环来计算相应的循环   并将指示的流量添加到每个边缘。相反的属性是   更令人惊讶的;我们可以找到一组循环(具有流量值)   每个)相当于任何给定的流通。"

    谢谢!

1 个答案:

答案 0 :(得分:3)

  1. 如果源s和接收器t存在maxflow问题,只需添加边t->即可将此问题转换为最大循环问题。从s到t的原始最大流量现在转换为最大循环s ---> t->。

  2. 如果您有一个循环列表(图中的闭合路径)并且每个循环都与流量N相关联,您可以遍历所有循环并将流量值N添加到循环经过的那些边缘。以这种方式,图表中的每个边都将具有为其计算的流量值,这是图表中的总流通量。相反,该定理说,只要你在总图中有一个循环,它就可以分解成循环。以下是最大循环的示例,在每个边缘上,符号a(b)表示流量为a,边缘最大容量为b:

      3(3)     2(2)
    a ----> b -----> c 
    ^       |1(1)    |
    |3(3)   V        V 2(4)
    d<------e<-------f
       3(4)     2(3)
    
  3. 相应的循环是:a-b-e-d-a,流量值为1,a-b-c-f-e-d,流量值为2.这两个循环一起定义了最大循环,如上所示。