在多路切割问题中,输入是无向图G =(V,E),终端节点s1,s2 .... sk的集合为V.
答案 0 :(得分:0)
这听起来像是家庭作业,但这里有一个提示:如果你把你的图形变成一个流量网络,其中每个边缘的容量为1,并使用两个终端节点作为源和接收器,你可以使用Edmonds-Karp在多项式时间内找到两个终端节点之间的流量。找到最大流量后, min-cut max-flow定理告诉你什么?
答案 1 :(得分:0)
这个问题确实可以通过@Aasmund Eldhuset的最小切割最大流量来解决,S1,S2之间的最小切割实际上是为了分离S1和S2而需要移除的最小边缘集合。
请记住,最小割问题说:
给定图表(加权,但您可以对所有边使用
w(e)=1
(未加权版本),找到具有最小权重组合的边缘集合 - 这样源(S1)和接收器(S2)将处于不同的连接组件中。
请注意,这个问题正是您的问题 - 并且可以通过某些算法解决,例如Edmond Karp - 以多项式时间运行
通过重复(S1,S2)和(S2,S3)的处理,得到2组边缘E1(对于S1,S2)和E2(对于S2,S3)。
现在,请注意最佳解决方案(让它为OPT)不小于E1和E2(否则 - 由于OPT的“切割”分离S1,S2和S2,S3 - 它将被返回为答案而不是E1或E2。
由此我们可以得出结论|OPT| >= max{|E1|,|E2|}
。请注意,|E1 Union E2| <= |E1| + |E2| <= |OPT| + |OPT| = 2|OPT|
- 因此E1 Union E2
是对问题的2近似。