Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Minimum Cut

What It Solves & When

Find the cheapest set of edges whose removal disconnects source from sink (or splits the graph) — what does “cheapest to break” model in practice?

Defining an s-t Cut

Which vertex partitions count as a valid s-t cut, and how do you measure a cut’s capacity?

Only Forward Edges Count

Why does cut capacity sum only edges crossing from the source side to the sink side, not back edges?

Max-Flow Min-Cut Duality

Why does the maximum flow value equal the minimum cut capacity? What’s the intuition linking them?

Why Any Flow Bounds Any Cut

Every flow value is at most every cut capacity. Why does that “weak duality” make a matching flow/cut pair a certificate of optimality for both?

Recovering the Cut from a Max Flow

After computing max flow, run a reachability search in the residual graph. How does the set of reachable vertices give you the partition?

Which Edges Are Cut

Given the partition, how do you list the actual cut edges, and why are they all saturated by the max flow?

Global Min-Cut vs s-t Min-Cut

The s-t version fixes two terminals; the global version minimizes over all splits. How do the problems and algorithms differ?

Stoer-Wagner for Global Cuts

When there’s no fixed s and t, what does Stoer-Wagner do instead of max flow — and what is a “maximum adjacency” ordering?

Variants

Weighted vs unweighted; node cuts via node-splitting; multi-terminal cuts — how do you reduce these to the basic form?

Time Complexity

The s-t min cut costs exactly one max-flow computation. What does that make its runtime, given your chosen max-flow algorithm?

s-t via Max Flow vs Global via Stoer-Wagner

Why does the global min cut not need to fix terminals, and what does Stoer-Wagner’s repeated-merging cost come to in terms of V and E?

Space Complexity

What do you store — the flow network/residual graph, plus the reachability search’s visited set for cut recovery? Size each in terms of V and E.

Implementation Walkthrough

Plan the code before writing it.

Reusing the Max-Flow Machinery

How does the min-cut routine build directly on a completed max-flow run rather than starting fresh?

The Key Step: Residual Reachability

From the source, BFS/DFS over edges with positive residual capacity. What does the reached set become?

Extracting the Cut Edges

Scan original edges for those going from a reached vertex to an unreached one. Why are exactly these the min cut, and how do you sum their capacity?

Real Uses

Image segmentation (foreground/background), network reliability, community detection, bipartite vertex cover — sketch one reduction.

Pitfalls

Counting back edges in capacity; confusing global vs s-t; assuming the min cut is unique; reading reachability from the original graph instead of the residual — what mistakes follow?

Implementation

// implement from scratch here

Summary

Recap the whole topic in a few lines — the core idea, the key complexities and trade-offs, and when to reach for it. The cheat-sheet you’d skim before an exam or interview.

My Notes

Fill this in as you learn