This paper presents a new approach to finding minimum cuts in undirected graphs. The fundamental principle is simple: the edges in a graph's minimum cut form an extremely small fraction of the graph's edges. Using this idea, we give a randomized, strongly polynomial algorithm that finds the minimum cut in an arbitrarily weighted undirected graph with high probability. The algorithm runs in O(n2log3n) time, a significant improvement over the previous Õ(mn) time bounds based on maximum flows. It is simple and intuitive and uses no complex data structures. Our algorithm can be parallelized to run in ℛscript N signscript c sign with n2 processors; this gives the first proof that the minimum cut problem can be solved in ℛscript N signscript c sign. The algorithm does more than find a single minimum cut; it finds all of them. With minor modifications, our algorithm solves two other problems of interest. Our algorithm finds all cuts with value within a multiplicative factor of α of the minimum cut's in expected Õ(n2α) time, or in ℛscript N signscript c sing with n2α processors. The problem of finding a minimum multiway cut of a graph into r pieces is solved in expected Õ(n2(r-1)) time, or in ℛscript N signscript c sign with n2(r-1) processors. The "trace" of the algorithm's execution on these two problems forms a new compact data structure for representing all small cuts and all multiway cuts in a graph. This data structure can be efficiently transformed into the more standard cactus representation for minimum cuts.
Mendeley helps you to discover research relevant for your work.