How is the greatest possible flow through a directed network found, and why does the smallest cut decide it?
Solve network flow problems, including finding the maximum flow using the maximum-flow minimum-cut theorem
A focused answer to the HSC Maths Standard 2 dot point on network flow. Sources and sinks, edge capacities, saturated edges, finding the maximum flow by inspection, cuts and cut capacity, the maximum-flow minimum-cut theorem, and multiple sources or sinks via a super-source and super-sink, with worked water, traffic and data examples.
Reviewed by: AI editorial process; not yet individually human-reviewed
Have a quick question? Jump to the Q&A page
What this dot point is asking
NESA gives you a directed network (a graph whose edges carry arrows). It has one starting vertex, the source, and one finishing vertex, the sink. Each edge has a capacity: the most it can carry. Your job is to find the maximum flow, the greatest amount that can pass from source to sink at once. You confirm that maximum using cuts and the maximum-flow minimum-cut theorem. If a network has more than one source or sink, you add a super-source and super-sink.
The capacity can be anything that moves through a one-way channel: water in kilolitres per minute through pipes, cars per hour along one-way roads, or data in megabits per second across links. The method is identical in each case; only the units change.
The answer
The vocabulary you must use
A flow network is a directed graph (the edges carry arrows), so flow only travels the way the arrow points. The pieces have precise names, and exam questions expect them:
- Source. The single vertex where everything starts. Here it is . The source is the analogue of the "start" in critical path analysis.
- Sink. The single vertex where everything ends. Here it is , the analogue of the "finish".
- Capacity. The weight on an edge: the most that edge can carry. Pipe - has capacity , meaning at most kilolitres per minute can pass along it.
- Flow. The amount actually travelling along an edge. The flow on an edge can be anything from up to its capacity, never more.
- Saturated edge. An edge whose flow equals its capacity. It is full and cannot carry any more, so it is a candidate bottleneck.
- Excess (spare) capacity. Capacity minus current flow: the room still left on an edge. This is the flow-network cousin of float time in critical path analysis.
The single most important fact is the first rule of capacity: the flow on any edge can never exceed that edge's capacity. Everything that follows is a consequence of squeezing flow through edges that each have a ceiling.
Flow must be conserved at every vertex
At every vertex except the source and the sink, whatever flows in must flow out. Water does not pile up at a junction or appear from nowhere. So if kilolitres per minute arrive at vertex , then must leave . This is conservation of flow, and it is why a single narrow edge anywhere along a route throttles the whole route: the flow that squeezes through the narrow edge is all that can continue past it.
Finding the maximum flow by inspection
For a small network you can find the maximum flow by eye, building it from paths:
- Trace a path from source to sink and read off its bottleneck. The flow you can push along a single path is the smallest capacity on it (the series rule). Send that much, and mark each edge on the path as carrying that flow.
- Reduce the capacities you have used. Subtract the flow you just sent from every edge on that path. Some edge becomes saturated (drops to spare); that is the bottleneck that limited the path.
- Find another path that still has spare capacity and repeat, adding its flow to the running total.
- Stop when no path from source to sink has spare capacity left. The running total is the maximum flow.
Step 2 is the part that trips students, and textbooks gloss over it. If two paths share an edge, you cannot just add their separate bottlenecks. The shared edge can only carry its own capacity in total. So you must subtract used capacity as you go, which stops a shared edge from being over-committed (asked to carry more than it can). The traffic worked example below is built to expose this trap.
Cuts: a cleaner way to pin the maximum
On a bigger network, inspection becomes error-prone: it is hard to be sure you have not missed a better combination of paths. Cuts give a check that does not rely on finding the right paths.
A cut is an imaginary line drawn right across the network. It completely separates the source from the sink, so every route from source to sink is cut. Think of it as a set of pipes you could close to stop all flow getting through. Because a cut blocks every route, the flow can never beat the total capacity of the pipes it crosses. That fact leads straight to the theorem.
The capacity of a cut is the sum of the capacities of the edges crossing it, but only those running from the source side to the sink side. This direction rule is the part most often got wrong:
- An edge pointing from the source side to the sink side is counted: flow uses it to cross, so it limits the cut.
- An edge pointing from the sink side back to the source side is not counted: it carries flow the wrong way across the cut, so it does not help flow get from source to sink and is ignored entirely.
In the cut shown, the dashed line puts , and on the source side and , , on the sink side. The three pipes crossing it from source side to sink side are - (), - () and - (), so the cut capacity is . Notice it does not count -, - or the internal pipe -, because those stay entirely on the source side and never cross the line.
The maximum-flow minimum-cut theorem
Every cut is a complete barrier, so the flow can never beat the capacity of any single cut. The tightest barrier, the minimum cut, is therefore the true ceiling, and the theorem says that ceiling is always reached.
In our network the minimum cut is the one drawn above, with capacity , so the maximum flow from to is kilolitres per minute. The bottleneck is the middle layer of pipes, not the source pipes (which together carry ) nor the pipes into the sink (which carry ). That is the lesson the theorem makes vivid: the constriction can sit anywhere in the network, and the minimum cut finds it for you.
Why the two numbers must agree
You can see why a flow can never beat a cut without any algebra. Picture any cut as a line across all the pipes. Every drop that reaches the sink had to start at the source. So it had to cross that line somewhere, along a source-to-sink pipe. The total crossing the line can therefore be no more than the total capacity of those pipes, which is the cut capacity. This holds for every cut, so the flow is at most the smallest cut. The theorem also claims you can always set up a flow that exactly equals the smallest cut, so the two values meet. In Standard 2 you use the result, not its proof, but the picture is what makes it clear.
Multiple sources or multiple sinks
Some networks have more than one source (say two reservoirs feeding a town) or more than one sink (say two ocean outlets). The trick is to reduce the problem to the single-source single-sink case you already know:
- Add one super-source: a new vertex joined by an edge to every real source.
- Add one super-sink: a new vertex joined by an edge from every real sink.
- Give each artificial edge a capacity at least as large as everything that source can emit or that sink can receive (a safe choice is the sum of the real pipes at that vertex), so the artificial edges never become the bottleneck themselves.
Now find the maximum flow from the super-source to the super-sink exactly as before. Because the artificial edges are never the constriction, the answer is the genuine maximum total flow through the original network. The stormwater worked example below carries this out in full.
How exam questions ask about network flow
The wording shifts with the context, but each version maps onto the same toolkit. Learn to translate it:
- "Find the maximum flow from to ." Either build it up by inspection (paths, bottlenecks, subtracting used capacity) or, more reliably, find the minimum cut and quote the theorem. State the value with units.
- "Find the capacity of cut / each of the cuts shown." Sum the capacities of the edges crossing in the source-to-sink direction only; ignore any edge crossing the other way.
- "Use the maximum-flow minimum-cut theorem" or "verify your answer with a cut." They want both: a flow that achieves a value, and a cut of the same capacity confirming nothing larger is possible.
- "Which edges are saturated at maximum flow?" Name the edges whose flow equals their capacity. The saturated edges of a minimum cut are exactly the bottleneck.
- "A pipe / road is upgraded (or closed)." Change that one capacity, then re-find the minimum cut. Upgrading a pipe that is not on the minimum cut changes nothing; only relieving the bottleneck raises the maximum flow.
- "There are two sources / two sinks." Add a super-source and super-sink, then solve the single-source single-sink problem.
- "Find one example of how the maximum flow can be achieved." Give an actual flow on each edge (not just the total) that sums to the maximum and never exceeds any capacity.
A distinction worth a mark: maximum flow is about pushing the most through a directed network from one vertex to another, and is not the same as a minimum spanning tree (connect every vertex as cheaply as possible) or a shortest path (the single cheapest route between two vertices). Read the directed arrows and the word "capacity" as your signal that it is a flow problem.
Exam-style practice questions
Practice questions written in the style of NESA exam questions on this dot point, with worked answer explainers. The year tag is the paper they imitate, not the source.
2022 HSC-style4 marksWater flows through a network of pipes from source to sink . The capacities, in kilolitres per minute, are - , - , - , - , - , - , - . All pipes are one-way from towards . Find the maximum flow from to , justifying your answer with a cut.Show worked answer →
Find the maximum flow by locating the minimum cut. A cut is an imaginary line that completely separates from ; its capacity is the sum of the capacities of the edges crossing it in the source-to-sink direction only.
Test cuts that separate more and more of the network from the sink:
- Cut on the source side: crossings - and -, capacity .
- Cut : crossings -, -, -, capacity .
- Cut : crossings -, -, -, capacity .
- Cut : crossings -, -, capacity .
The smallest cut capacity is , so by the maximum-flow minimum-cut theorem the maximum flow is kilolitres per minute. The bottleneck is the pair of pipes feeding .
Markers reward identifying several cuts, summing only the source-to-sink crossings, choosing the minimum, and quoting the theorem to convert the minimum cut into the maximum flow, with units.
2023 HSC-style5 marksStorm water enters a pipe network at Dunlop North () or Dunlop South () and leaves at Outlet 1 () or Outlet 2 (). Capacities in kilolitres per minute are - , - , - , - , - , - , - , - . Find the maximum total rate at which water can leave the network at the two outlets.Show worked answer →
There are two sources and two sinks, so add a super-source joined to both real sources and a super-sink joined from both real sinks. Give each artificial pipe a capacity equal to the total capacity of the pipes at that source or sink, so the artificial pipes never become the bottleneck: -, -, -, -.
Now it is a single-source single-sink problem from to . Find the minimum cut. The maximum flow works out to kilolitres per minute, and a cut achieving it crosses - , - , - and - , which sum to .
Markers reward the super-source and super-sink construction, reducing two sources and two sinks to one of each, finding the maximum flow with a confirming cut, and stating the total rate with units.
Practice questions
Original practice questions graded from foundation to exam level, each with a full worked solution. Try them before revealing the solution.
foundation2 marksWater flows in kilolitres per minute through two pipes joined in series: source to junction with capacity , then to sink with capacity . Every pipe is one-way from towards . Find the maximum flow from to .Show worked solution →
- Read the path
- There is one route, to to , with the two pipes joined in series (one after the other).
- Apply the bottleneck (series) rule
- Flow on a series path is limited by its smallest capacity. The smaller of and is , so at most can pass. The wide pipe - then carries only and has kilolitres per minute of spare capacity, while - is saturated.
- Confirm with a cut
- Put just on the source side. The only pipe crossing source-to-sink is -, so the cut capacity is . No cut can be smaller than the single pipe leaving , so by the maximum-flow minimum-cut theorem the maximum flow is .
- Check
- The flow equals the cut , and and respect both capacities. The maximum flow is kilolitres per minute.
foundation2 marksA network carries cars per hour along one-way roads from source to sink by two separate routes that share no road. Route 1 is -- with capacities then . Route 2 is -- with capacities then . Find the maximum traffic flow from to .Show worked solution →
- Find each route's bottleneck
- On a series route the flow is capped by the smallest capacity. Route 1 is limited by . Route 2 is limited by .
- Add the routes
- The two routes share no road, so their flows are independent and add: cars per hour.
- Confirm with a cut
- Take the source side . The pipes crossing source-to-sink are - () and - (), giving cut capacity . This matches the flow, so by the maximum-flow minimum-cut theorem is the maximum.
- Check
- Flow equals the cut ; sending via and via breaks no capacity. The maximum flow is cars per hour.
foundation3 marksWater flows in kilolitres per minute through one-way pipes from source to sink : - , - , - , - . (a) Find the capacity of the cut that puts only on the source side. (b) Find the maximum flow from to , justifying it with a cut.Show worked solution →
(a) Cut around the source. With only on the source side, the pipes crossing source-to-sink are - () and - (). The cut capacity is .
(b) Test more cuts. A cut is a line separating from ; sum only the source-to-sink crossings.
- Source side : crossings -, -, capacity .
- Source side : crossings - (), - (), capacity .
- Source side : crossings - (), - (), capacity .
- Source side : crossings - (), - (), capacity .
Take the minimum. The smallest is , so by the maximum-flow minimum-cut theorem the maximum flow is kilolitres per minute.
Check. A flow of along -- and along -- totals and breaks no capacity, matching the minimum cut .
foundation3 marksA water network has one-way pipes measured in kilolitres per minute: - , - , - , - , - . Every route from source to sink passes through the single pipe -. Find the maximum flow from to .Show worked solution →
- Spot the shared final pipe
- Both routes (--- and ---) funnel through the one pipe -, which has capacity only . No flow can pass to faster than .
- Confirm with a cut
- Put and on the sink side and , , on the source side. The only pipe crossing source-to-sink is - (), so the cut capacity is . No cut can be smaller than the single pipe every drop must use.
- Read the theorem
- By the maximum-flow minimum-cut theorem the maximum flow equals this minimum cut, so it is kilolitres per minute. Upstream the network is wider (the pipes into carry ), but - throttles everything.
- Check
- A flow of via and via gives into and out along -, respecting every capacity and matching the cut .
core4 marksA pipe network carries water in kilolitres per minute with one-way pipes - , - , - , - , - . Note the internal pipe - runs from to . Find the maximum flow from to , justifying it with a cut.Show worked solution →
Test the cut into the sink. Put , , on the source side and only on the sink side. The crossings are - () and - (), so this cut has capacity .
Check it is the minimum. Compare other cuts so is not beaten:
- Source side : crossings - (), - (), capacity .
- Source side : crossings - (), - (), - (), capacity .
- Source side : crossings - (), - (), capacity .
The smallest is .
Read the theorem. By the maximum-flow minimum-cut theorem the maximum flow is kilolitres per minute.
Check with an actual flow. Send - , - , - , - , - . Vertex takes in and sends out ; vertex takes in and sends out . The total into is , matching the cut.
core4 marksData flows in megabits per second across one-way links - , - , - , - , - , - , - . Find the maximum flow from source to sink , and name the links that are saturated when the flow is at its maximum.Show worked solution →
Test the cut into the sink. Put everything except on the source side. The crossings are - () and - (), so this cut has capacity .
Check it is the minimum. Try other cuts:
- Source side : crossings - (), - (), capacity .
- Source side : crossings - (), - (), capacity .
Neither beats , so the minimum cut is .
- Read the theorem
- By the maximum-flow minimum-cut theorem the maximum flow is megabits per second.
- Find a flow and its saturated links
- Send - , - , - , - , - , - , - . Conservation holds at every junction, and the total into is . The links carrying their full capacity are - () and - (), which are exactly the minimum-cut bottleneck.
- Check
- Flow equals cut , confirming the answer; the saturated links are - and -.
core4 marksCars per hour travel one-way roads - , - , - , - , - , - , - from source to sink . Find the maximum traffic flow from to by computing cut capacities.Show worked solution →
Test several cuts. Sum only the source-to-sink crossings.
- Source side : crossings - (), - (), capacity .
- Source side : crossings - (), - (), - (), capacity .
- Source side (all but the sink): crossings - (), - (), capacity .
- Take the minimum
- The smallest cut found is , the pair of roads feeding .
- Read the theorem
- By the maximum-flow minimum-cut theorem the maximum flow is cars per hour.
- Check with an actual flow
- Send - , - , - , - , - , - , - . At : in , out . At : in , out . The total into is , matching the minimum cut .
core5 marksWater flows in kilolitres per minute through one-way pipes - , - , - , - , - from source to sink . (a) Find the maximum flow. (b) The council upgrades pipe - to capacity . Find the new maximum flow. (c) Explain why the increase is not the full amount - was widened.Show worked solution →
- (a) Find the original minimum cut
- Put , , , on the source side. The only crossing is - (), so that cut is . The cut gives - () plus - () , and gives - () plus - () , both larger. The minimum is , so the maximum flow is kilolitres per minute.
- (b) Re-find the minimum cut after the upgrade
- Now - has capacity , so the cut is . The other cuts are unchanged: is , and the cut gives - () plus - () . The new minimum is , so the new maximum flow is kilolitres per minute.
- (c) Explain the size of the gain
- Widening - from to moved the bottleneck off that pipe and onto the pipes feeding and on into : the cut , crossing - () and - (), now caps the flow at . The flow rose by only , not , because once a different cut becomes the minimum, further widening of - adds nothing.
- Check
- A flow of - , - , - , - , - gives into and out, matching the new minimum cut .
exam5 marksData flows in megabits per second across one-way links - , - , - , - , - , - , - , - . Note the link - points from to . (a) Find the capacity of the cut with source side . (b) Find the maximum flow from to .Show worked solution →
(a) Apply the direction rule. With source side and sink side , the links crossing source-to-sink are - () and - (). The link - crosses the other way (sink side to source side), so it is not counted. The cut capacity is .
(b) Test more cuts. Sum only the source-to-sink crossings.
- Source side : crossings - (), - (), capacity .
- Source side : crossings - (), - (), capacity .
- Source side : crossings - (), - (), capacity .
- Take the minimum
- The smallest is , from .
- Read the theorem
- By the maximum-flow minimum-cut theorem the maximum flow is megabits per second.
- Check
- A flow of - , - , - , - , - , - , - sends into and obeys every capacity, matching the cut .
exam6 marksStorm water enters at Dunlop North () and Dunlop South () and drains to the ocean at Outlet 1 () and Outlet 2 () through junctions and . Capacities in kilolitres per minute are - , - , - , - , - , - , - , - . Find the maximum total rate at which water leaves the network.Show worked solution →
- Add a super-source and super-sink
- Two sources and two sinks reduce to one of each. Add super-source feeding and , and super-sink fed from and . Give each artificial pipe the total capacity at that vertex so it is never the bottleneck: -, -, -, -.
- Test the cut just before the outlets
- Put everything except , , on the source side. Crossings - (), - (), - (), - () give .
- Test a mixed cut
- Put , , , on the source side. The crossings are - (), - (), - () and - (), giving . Note - and - stay inside the source side and are not counted.
- Take the minimum
- The smaller is , and no cut is smaller, so the minimum cut is . By the maximum-flow minimum-cut theorem the maximum total flow is kilolitres per minute.
- Check
- A flow with - , - , - , - , - , - , - , - delivers to and to , a total of leaving the network, matching the minimum cut.
exam6 marksWater flows in kilolitres per minute through one-way pipes - , - , - , - , - , - , - , - from source to sink . By testing several cuts, find the maximum flow from to and state the minimum cut that achieves it.Show worked solution →
Test cuts that move more of the network to the sink side. Sum only the source-to-sink crossings.
- Source side : crossings - (), - (), capacity .
- Source side : crossings - (), - (), - (), capacity .
- Source side (all but the sink): crossings - (), - (), capacity .
- Source side : crossings - (), - (), capacity .
- Take the minimum
- The smallest is , from the cut versus , crossing - () and - (). Note - runs from the sink side back to the source side, so it is not counted.
- Read the theorem
- By the maximum-flow minimum-cut theorem the maximum flow is kilolitres per minute.
- Check
- A flow of - , - , - , - , - , - , - sends into and obeys every capacity, matching the minimum cut .
exam7 marksCars per hour travel one-way roads - , - , - , - , - , - , - , - , - from source to sink . (a) Find the maximum flow from to . (b) State a minimum cut whose capacity equals it. (c) Give one example of a flow on each road that achieves the maximum.Show worked solution →
(a) Test cuts to locate the bottleneck. Sum only the source-to-sink crossings.
- Source side : crossings - (), - (), capacity .
- Source side : crossings - (), - (), - (), - (), capacity .
- Source side : crossings - (), - (), - (), capacity .
- Source side : crossings - (), - (), - (), capacity .
The smallest found is . By the maximum-flow minimum-cut theorem the maximum flow is cars per hour.
- (b) State the minimum cut
- The cut with source side and sink side has capacity - () plus - () plus - () . The bottleneck is a mix of middle and final roads, not one clean layer.
- (c) Give an achieving flow
- Send - , - , - , - , - , - , - , - , - . Conservation holds: at , in , out ; at , in , out . The total into is .
- Check
- The flow equals the minimum cut and the three cut roads -, -, - are all saturated, confirming the maximum.
Related dot points
- Use network terminology including vertex, edge, weight, degree, path, cycle and directed graph to describe and analyse networks
A focused answer to the HSC Maths Standard 2 dot point on network terminology. Vertices, edges, weights, degree and the handshake result, walks, paths and cycles, connected graphs, trees and the n minus 1 edges fact, traversability with the even-degree test for Eulerian trails, and worked Australian examples for transport networks and project schedules.
- Find a minimum spanning tree for a weighted graph using Prim's or Kruskal's algorithm
A focused answer to the HSC Maths Standard 2 dot point on minimum spanning trees. Definition of a spanning tree and minimum spanning tree, step-by-step Prim's and Kruskal's algorithms, and worked examples for utility networks and rural Australian infrastructure planning.
- Find the shortest path between two vertices in a weighted network by inspection or by systematic labelling
A focused answer to the HSC Maths Standard 2 dot point on shortest paths. Inspection for small networks, systematic labelling (Dijkstra-style) for larger ones, a stage-by-stage walkthrough, ties and verification edge cases, and worked road and Sydney transport examples.
- Construct an activity network from a precedence table, identify the critical path and find the minimum project duration
A focused answer to the HSC Maths Standard 2 dot point on critical path analysis. Building an activity network from a precedence table, identifying paths through the network, and determining the minimum project duration via the critical (longest) path with worked Australian construction examples.
- Perform forward and backward scanning to find earliest start, latest start, earliest finish, latest finish times and float for each activity
A focused answer to the HSC Maths Standard 2 dot point on forward and backward scanning. Computing earliest start, latest start, earliest finish, latest finish and float for each activity in a project network, with worked Australian construction and renovation examples.