A finite undirected graph can be oriented with outdegree at least an integer at every vertex if and only if every vertex subset is incident to at least distinct edges. The max-flow min-cut theorem and integral max-flow theorem prove sufficiency by assigning distinct edges to vertices through an incidence flow network; each assigned edge is oriented away from that vertex. Necessity follows by counting outgoing edges from .
An cut of a flow network partitions a flow network into , with source and sink . Its cut capacity is the sum of capacities of arcs directed from to ; a minimum cut minimizes this sum.
Use the suggested nodes. Give capacity , each capacity , and each capacity . By the max-flow min-cut theorem, a flow of value exists once every cut capacity is at least .
Consider a cut of a flow network containing no crossing arc of capacity , and let be the intersections on the sink side. Every street incident to must also be on that side, or its arc to an endpoint in would cross the cut of a flow network. Hence at least source-to-street arcs cross, as do the intersection-to-sink arcs from the other intersections. Therefore its cut capacity is at least
A cut of a flow network crossing a capacity- arc has still larger capacity. The cut of a flow network just before the sink has capacity , proving the maximum flow value is exactly .
The integral max-flow theorem supplies an integral maximum flow. Every intersection sends units to the sink; each street can supply at most one unit, assigned to one endpoint. Orient each assigned street away from its assigned endpoint. Orient unassigned streets arbitrarily. Then each vertex has at least outgoing streets. An Ford-Fulkerson algorithm with integer capacities constructs this flow and therefore the street directions. Notice that the condition also is necessary: outgoing streets from vertices in are distinct edges incident to , so . This is an outdegree orientation criterion.
A cut is a partition of the vertices with the source in and sink in ; its capacity is the sum of capacities of directed edges from to . The max-flow min-cut theorem says that maximum flow value equals minimum cut capacity. With integral capacities, there is an integral max-flow theorem attaining the maximum.
Construct a bipartite graph with one vertex for each row and column and an edge whenever . Add source-to-row and column-to-sink edges of capacity , and give row-to-column edges infinite capacity. An integral flow is precisely a set of independent s, so its maximum value is the largest such set.
A finite-capacity cut places some rows on the sink side and some columns on the source side; these lines cover every , since an uncovered row-to-column edge would cross the cut with infinite capacity. Its capacity is the number of selected lines. Conversely every line cover defines such a cut. Max-flow min-cut therefore proves the maximum number of independent s equals the minimum number of covering lines, the matrix form of König's theorem for bipartite matching.