将网络建模为有向图

时间:2010-11-17 10:38:18

标签: algorithm graph-theory

我的网络看起来像这样:
Network
基本上,我想知道如果移除/禁用可以断开源和漏极的绿色圆圈的最小数量。 (在这种情况下1)
我已经成功实现了Edmonds-Karp算法,但我不知道如何使用有向边建模网络,因此我得到了理想的结果。
如果我只更换节点之间的两个相对有向边,容量为1,我用EdmondsKarp得到最大流量为2,但我只需要删除1个绿色圆圈就可以打破网络。
如何将网络建模为节点并指向边缘?

2 个答案:

答案 0 :(得分:4)

您可以将这个问题减少到有向图中的标准s-t切割问题,然后可以解决这个问题。通过Edmonds-Karp算法。对于每个顶点v,创建两个顶点v_in 和v_out以及有向边(v_in,v_out),并且对于每个边{v,w},添加两个有向边(v_out,w_in)和(w_out,v_in)。然后不难看出从s_in到t_out的最大流量对应于s和t之间的最小顶点切割。

答案 1 :(得分:0)

您已正确确定最大流量 - 您的网络为2。

根据flow network的定义

  

流量必须满足限制   流入节点的流量   等于流出的量,   除非它是一个来源,它有   更多的流出,或下沉,有   更多传入流量

因此,对于您的中间节点,您有2个最大流量(进出)。所以只知道最大流量不会给你最小切割的答案。

定理

  

max-flow min-cut定理指出   在流网络中,最大金额   流从源头流向   sink等于最小容量   以特定方式删除时   从网络造成的情况   没有流可以从源传递   到了水槽

所以,是的,您知道需要删除的流量,但您不知道以哪种方式删除它。我认为这不是那么微不足道,你需要专门寻找最小切割。