Algorithm 给定一个流网络和一条边e,描述一个确定e是否穿过某个最小割集的算法
给定具有源s、汇t和边E=(u,V)的流网络G=(V,E),描述确定边E是否穿过某个最小切割(s,t)的算法 我的第一个想法是计算最大流量f,然后将e的容量减少一些a>0。然后我们检查残差图是否有从s到t的路径(这意味着我们可以进一步增加流f) 现在,如果没有从s到t的路径,我们可以确定e没有穿过任何最小截 问题在于另一个方向。如果有一条从s到t的路径,可能是因为我们在选择a>0时不小心创建了e穿过的新最小切割 那么我如何选择一个足够小的a>0呢?这是一个很酷的问题 " 我的第一个想法是计算一个最大流量f,然后将e的容量减少一点。。。 " 你是说增加吗?因为如果你降低容量,流量就不会增加 无论如何: 运行algo查找最大流量,并假设流量为F 检查e上的流量是否等于其容量,如果不等于,则返回false 这是否意味着如果它等于,e必须穿过某个最小截 假设e=(u,v):由于边规则,进入的流u必须完全离开 这意味着对于你将要进行的每一次切割,都会有一些eAlgorithm 给定一个流网络和一条边e,描述一个确定e是否穿过某个最小割集的算法,algorithm,graph,graph-algorithm,flow,max-flow,Algorithm,Graph,Graph Algorithm,Flow,Max Flow,给定具有源s、汇t和边E=(u,V)的流网络G=(V,E),描述确定边E是否穿过某个最小切割(s,t)的算法 我的第一个想法是计算最大流量f,然后将e的容量减少一些a>0。然后我们检查残差图是否有从s到t的路径(这意味着我们可以进一步增加流f) 现在,如果没有从s到t的路径,我们可以确定e没有穿过任何最小截 问题在于另一个方向。如果有一条从s到t的路径,可能是因为我们在选择a>0时不小心创建了e穿过的新最小切割 那么我如何选择一个足够小的a>0呢?这是一个很酷的问题 " 我的第一个想法是计算一个
crooses和e=(x,y)
我们将有一些从u->v…->x或y->…u->v的路径
如果我们将删除此边(e),流量将减少,这意味着我们无论如何都不能
像以前一样返回到x的流(或离开y的流现在找不到通向水槽的路)。这意味着e在某个小切口中
如果流量没有变化,这只意味着我们找到了另一种方法返回我们“丢失”的流量,因此这意味着e不属于任何最小切割,因为它不影响任何等于最大流量的最小切割能力
你对这个问题的直觉是好的,但请注意它不会起作用,因为e的增加/减少不会导致任何结果,因为有一个简单的例子,你改变了e的容量,在剩余网络中仍然没有从s到t的路径,但e仍然属于某个最小切割。这是一个很酷的问题
"
我的第一个想法是计算一个最大流量f,然后将e的容量减少一点。。。
"
你是说增加吗?因为如果你降低容量,流量就不会增加
无论如何:
运行algo查找最大流量,并假设流量为F
检查e上的流量是否等于其容量,如果不等于,则返回false
这是否意味着如果它等于,e必须穿过某个最小截
假设e=(u,v):由于边规则,进入的流u必须完全离开
这意味着对于你将要进行的每一次切割,都会有一些ecrooses和e=(x,y)
我们将有一些从u->v…->x或y->…u->v的路径
如果我们将删除此边(e),流量将减少,这意味着我们无论如何都不能
像以前一样返回到x的流(或离开y的流现在找不到通向水槽的路)。这意味着e在某个小切口中
如果流量没有变化,这只意味着我们找到了另一种方法返回我们“丢失”的流量,因此这意味着e不属于任何最小切割,因为它不影响任何等于最大流量的最小切割能力
你对这个问题的直觉是好的,但请注意它不会起作用,因为e的增加/减少不会导致任何结果,因为有一个简单的例子,你改变了e的容量,在剩余网络中仍然没有从s到t的路径,但e仍然属于某个最小切割