使用最少的边缘算法进行最小切割

问题描述 投票:4回答:2
Let G = (V, E) be a flow network
with source s, sink t, and capacity function c(·). Assume that, for every
edge e ∈ E, c(e) is an integer. Define the size of an s-t cut (A, B) in G
to be the number of edges directed from A to B. Our goal is to identify,
from among all minimum cuts in G, a minimum cut whose size is as small
as possible.
Let us define a new capacity function c'(·) for G as follows. For each
edge e ∈ E, by c'(e) = m·c(e)+1. Suppose (A, B) is a minimum
cut in in G with respect to the capacity function c'(·).
(a) Show that (A, B) is a minimum cut with respect to the original capacity
function c(·).
(b) Show that, amongst all minimum cuts in G, (A, B) is a cut of smallest
size.
(c) Use the results of parts (a) and (b) to obtain a polynomial-time algorithm
to find a minimum cut of smallest size in a flow network.

如何为此编写多项式时间算法?任何的想法?

algorithm
2个回答
1
投票

我不会破坏答案,但我会留意任何未来发现这篇文章的学生。考虑一下如果在G中采用两个最小割(A,B)和(C,D)会发生什么,这样一个边的边数最小,而另一边的边数不是。然后将它们映射到G'并考虑这两个切割的值。


-2
投票

搜索dijkstra的算法,它通常用于图中的最短路径。我不完全理解你想要实现的算法,但我觉得它非常相似,可以使用dijstra背后的思考

© www.soinside.com 2019 - 2024. All rights reserved.