给定流量网络G =(V,E),其具有源s,接收器t和边缘e =(u,v),描述确定边缘e是否越过某个最小切割的算法(S,T) )。
我的第一个想法是计算最大流量f然后将e的容量减少一些>然后我们检查残差图是否有从s到t的路径(这意味着我们可以更多地增加流量f。)
现在,如果从s到t没有路径,我们可以确定e不会越过任何最小切割。
问题在于另一个方向。如果存在从s到t的路径,可能是因为我们创建了一个新的最小切割,在选择>时不小心。 0
那么如何选择足够小的> 0?
答案 0 :(得分:1)
这是一个很酷的问题。
” 我的第一个想法是计算最大流量f,然后减少 e的容量... “
你的意思是增加吗?因为如果减少容量,流量就会减少..
任何方式:
运行algo以查找最大流量并假设流量为F.
检查e上流动的流量是否等于其容量,如果不是,则返回false。
这是否意味着如果它是平等的,那么e必须超过一些最小值?
假设e =(u,v):由于边缘规则,流进入你必须完全离开,
这意味着对于你将采取的每一次切割,都会有一些e crooses it and e
=(x,y),
我们将有一些来自u-> v ....-> x或y-> .... u-> v。
的路径如果我们将删除此边(e),流量将减少,这意味着我们无法以任何方式 返回到x之前的流量(或流动的流量,现在无法找到通往水槽的方式)。这意味着e在一定程度上被削减了。
如果流量没有变化,它只意味着我们找到另一种方式来返回我们“丢失”的流量,这意味着e不属于任何最小切割,因为它不会影响任何最小切割能力等于最大流量。
你对问题的直觉是好的,但是看到它不会起作用,因为e的增加/减少可能导致无法解决,因为有一个简单的例子,你改变了e的容量并且仍然没有来自s的路径在剩余的网络中,但仍然属于一些最小的削减。