A new approach to the minimum cut problem
This paper present 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 <italic>O(n<supscrpt>2</supscrpt>log<supscrpt>3</supscrpt>n)</italic> time, a significant improvement over the previous <italic>O˜(mn)</italic> 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 <italic>RNC</italic> with <italic>n<supscrpt>2</supscrpt></italic> processors; this gives the first proof   that the minimum cut problem can be solved in <italic>RNC</italic>. 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 <italic>O˜(n<supscrpt>2α</supscrpt>)</italic> time, or in <italic>RNC</italic> with <italic>n<supscrpt>2α</supscrpt></italic> processors. The problem of finding a minimum multiway cut of graph into <italic>r</italic> pieces is solved in expected <italic>O˜(n<supscrpt>2(r-1)</supscrpt>)</italic> time, or in <italic>RNC</italic> with <italic>n<supscrpt>2(r-1)</supscrpt></italic> 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 representing for minimum cuts.