Part II · The Classic Theory

Connectivity

Created by

A network survives any two node failures exactly when every pair of its nodes has three routes that never collide. After this chapter you will know why those two statements are the same statement, and you will be able to build every 2-connected and 3-connected graph from scratch.

Why connectivity deserves a chapter

Chapter 1 defined \(k\)-connected by what you cannot do to a graph. A graph is \(k\)-connected if it has more than \(k\) vertices and stays in one piece however you delete fewer than \(k\) of them. That is a negative description: it lists a kind of damage the graph resists. It says nothing about what the graph offers you while it is intact.

Here is the positive description. Suppose every two vertices of your network are joined by \(k\) routes sharing nothing except their two endpoints. Any \(k-1\) failures spoil at most \(k-1\) of those routes, so one always survives and the network stays connected. Route redundancy implies damage resistance in two lines.

The surprise is that the implication runs the other way too. If no set of \(k-1\) vertices can break your network apart, then the \(k\) non-colliding routes really are there, between every pair. Nothing in the definition of \(k\)-connectedness mentions paths, and yet the paths exist. That equivalence is Menger's theorem of 1927, and it is why "connectivity" names a useful quantity rather than a bookkeeping convention.

The practical reading is immediate. "How much punishment can this network take?" is a question about deletions, awkward to check because there are astronomically many vertex sets to try. "How many independent routes join these two nodes?" is a question about construction, which an algorithm answers by building routes one at a time. Menger's theorem says the two questions have the same numerical answer, so compute whichever side is convenient and certify the other.

A hand-drafted network diagram titled ARPANET Logical Map, March 1977, with named sites joined by straight lines and labelled boxes listing computer models beside each site.
Plate 3.A. The whole ARPANET on one sheet, March 1977, with a printed warning at the foot that no claim can be made for the map's accuracy. Circles, squares and triangles are the switches, the boxes hanging off them are host computers, and a zigzag is a satellite circuit. Cover any one switch with a finger and ask whether what is left is still in one piece: that is the chapter. Advanced Research Projects Agency, 1977. Wikimedia Commons, public domain.

The chapter has four more jobs beyond Menger. It gives build recipes: every 2-connected graph is a cycle with paths glued on one at a time, and every 3-connected graph grows out of \(K^4\), the complete graph on four vertices, by simple local moves. It decomposes merely connected graphs into blocks, the largest chunks with no internal single point of failure, which hang together in a tree. It counts paths that begin and end on one chosen set. And it asks the hardest routing question here: can you insist that path number one join this specific pair? Graphs where you always can are called \(k\)-linked, and they are strictly rarer than \(k\)-connected graphs.

Of the two directions linking route redundancy and damage resistance, which one is the easy one, provable in two lines?

  1. \(k\) independent routes between every pair means \(k-1\) failures can never disconnect the graph
  2. No \(k-1\) deletions disconnecting the graph means \(k\) independent routes exist between every pair
  3. Neither direction can be proved without Menger's theorem
  4. Both directions follow straight from the definition of \(k\)-connected
Answer: A. Any \(k-1\) failures spoil at most \(k-1\) of the \(k\) routes, so one always survives. Option B is the surprising converse: nothing in the definition mentions paths, and supplying them is exactly what Menger's theorem does.

New notation in this chapter

Thirteen symbols are new here; the rest are recalled from Chapter 1 and re-explained the first time they appear. If set language such as \(X \subseteq V(G)\) ("X is a subset of the vertices of G") is still unfamiliar, Chapter 0 is the bootstrap.

SymbolRead it asMeaningTiny example
\(G \mathbin{\dot{-}} e\)"G delete-and-suppress e"Delete the edge \(e\), then erase any end of \(e\) left with exactly two edges, fusing that vertex's two edges into a single edge.Applied to the right edge of \(K_{3,3}\) it gives \(K^4\) (Figure 3.5).
\(k(G, A, B)\)"the separator number of A and B"The fewest vertices whose deletion destroys every path from the vertex set \(A\) to the vertex set \(B\). The deleted vertices are allowed to lie in \(A\) or \(B\).If \(G\) has no edges, \(k(G,A,B) = |A \cap B|\).
\(\mathcal{P}, \mathcal{Q}\)"the path system P"A script letter naming a set of paths, here always a set of pairwise disjoint \(A\)–\(B\) paths.\(\mathcal{P} = \{P_1, P_2\}\): two disjoint routes.
\(V[\mathcal{P}]\)"the vertices of the system P"Every vertex lying on some path of \(\mathcal{P}\), collected into one set.For \(\mathcal{P} = \{abc,\; de\}\): \(V[\mathcal{P}] = \{a,b,c,d,e\}\).
\(E[\mathcal{P}]\)"the edges of the system P"Every edge used by some path of \(\mathcal{P}\).Same system: \(E[\mathcal{P}] = \{ab, bc, de\}\).
\(C^n * K^1\)"the wheel with an n-rim"A cycle on \(n\) vertices (the rim) plus one extra vertex (the hub) joined to every rim vertex.\(C^3 * K^1 = K^4\), the smallest wheel.
\(A\)-path"an A-path"A path with at least one edge whose two ends lie in the set \(A\) and none of whose interior vertices lies in \(A\).In a triangle with \(A\) all three vertices, each of the 3 edges is an \(A\)-path.
\(H\)-path"an H-path"For a subgraph \(H\): a path that touches \(H\) exactly in its two end vertices and is not itself an edge of \(H\).A detour that leaves \(H\), travels outside, and comes back.
\(\kappa_H(G)\)"kappa sub H of G"The fewest vertices, all taken outside \(H\), that between them meet every \(H\)-path.If every \(H\)-path runs through one of two hubs, \(\kappa_H(G) \le 2\).
\(\lambda_H(G)\)"lambda sub H of G"The fewest edges that between them meet every \(H\)-path.If every \(H\)-path crosses one bridge, \(\lambda_H(G) = 1\).
\(\partial C\)"the boundary of C"Those vertices of a piece \(C\) that still send an edge out to the world beyond \(C\).If \(C\) is the single edge \(uv\) and only \(u\) looks outward, \(\partial C = \{u\}\).
\(M_H(G)\)"Mader's bound"The cheapest score of a mixed blockade of the \(H\)-paths: the number of blocking vertices, plus \(\lfloor \frac{1}{2}|\partial C|\rfloor\) for each cluster \(C\) of blocking edges.If 3 vertices alone block everything and nothing scores lower, \(M_H(G) = 3\).
\(\|U\|^+\)"the outward edge count of U"How many edges have at least one end in the vertex set \(U\). Edges leaving \(U\) are counted.A single vertex \(u\) of degree 5 gives \(\|\{u\}\|^+ = 5\).
\(\kappa(G)\), \(\lambda(G)\)"the connectivity", "the edge-connectivity"(Chapter 1.) The largest \(k\) for which \(G\) is \(k\)-connected, respectively \(k\)-edge-connected.\(\kappa(K^4) = 3\).
\(K^n\)"the complete graph on n vertices"(Chapter 1.) Every pair of the \(n\) vertices joined. Diestel writes \(K^n\) where many other books write \(K_n\); this course follows Diestel.\(K^4\) has 4 vertices and 6 edges.
\(\delta(G)\), \(d(G)\), \(\varepsilon(G)\)"min degree", "average degree", "edge density"(Chapter 1.) Smallest number of edges at a vertex; average number; and \(\varepsilon(G) = \|G\|/|G|\), edges per vertex. Always \(d(G) = 2\varepsilon(G)\).\(K^4\): \(\delta = 3\), \(d = 3\), \(\varepsilon = 6/4 = 1.5\).
\(G/e\)"G contract e"(Chapter 1.) Merge the two ends of the edge \(e\) into a single vertex, which inherits all their other neighbours.Contracting any edge of \(K^4\) leaves a triangle.
\(TK^r\)"a subdivision of K r"(Chapter 1.) A copy of \(K^r\) with each edge stretched into a path. The \(r\) original vertices are its branch vertices.\(K_{3,3}\) contains a \(TK^4\) (Figure 3.5, read backwards).
\(A\)–\(B\) path"an A to B path"(Chapter 1.) A path whose first vertex is its only vertex in \(A\) and whose last vertex is its only vertex in \(B\).A single vertex lying in both \(A\) and \(B\) counts as an \(A\)–\(B\) path of length 0.
\(\lfloor x \rfloor\)"floor of x"Round \(x\) down to a whole number.\(\lfloor 5/2 \rfloor = 2\).

How should you read \(\|U\|^+\)?

  1. The number of edges with both ends inside \(U\)
  2. The number of edges with at least one end in \(U\)
  3. The number of vertices of \(U\) that send an edge out of \(U\)
  4. The number of edges leaving \(U\), those with exactly one end in \(U\)
Answer: B. The raised plus says the outgoing edges are counted too, which is why one vertex of degree 5 gives \(\|\{u\}\|^+ = 5\). Option A is the usual slip: it throws away precisely the edges the plus was added to keep.

Building every 2-connected graph out of ears

Start at the bottom of the scale. What does a 2-connected graph look like? The definition says only that it has at least three vertices and no cutvertex, meaning no single vertex whose deletion splits the graph. That is a prohibition, and prohibitions are hard to work with. We want a recipe.

The recipe uses one move. Take a graph \(H\) you have already built and glue on an \(H\)-path: a path whose two end vertices lie in \(H\) and whose interior lies entirely outside \(H\). Such a path is called an ear, attached to a head at two points. An ear may be long, or a single new edge between two vertices of \(H\) with no interior at all.

Theorem — ear decomposition (Proposition 3.1.1)

A graph is 2-connected if and only if it can be constructed from a cycle by repeatedly adding \(H\)-paths to the graph \(H\) built so far.[1]

Proof idea. Gluing an ear never creates a cutvertex, since the survivors of any deletion stay tied together through the old graph, which had none either. So everything built this way is 2-connected. Conversely, in a 2-connected \(G\) let \(H\) be the largest subgraph the recipe can build. Any edge of \(G\) between two vertices of \(H\) is itself a legal ear, so \(H\) contains those; and if \(H\) missed a vertex, 2-connectedness would supply a path from it back into \(H\), another legal ear. Either way \(H\) was not maximal. Diestel §3.1 has the details.[1]

start: a cycle glue on the ear a-e-c glue on the ear b-d a b c d a b c d e a b c d e
Figure 3.1. Two ear-gluings. The violet ear \(a\,e\,c\) has one interior vertex, the new vertex \(e\); the gold ear \(b\,d\) is a bare edge with no interior. Each intermediate graph is 2-connected, and Proposition 3.1.1 says every 2-connected graph is reachable this way.
Intuition

A cycle is the minimal shape with no single point of failure: cut one point and traffic goes the long way round. An ear adds a bypass between two places already reachable from each other, so it cannot introduce a new bottleneck. The theorem says bypasses are the only building material you ever need.

The recipe pays off at once. Any statement about all 2-connected graphs can be proved by induction along the construction: check it for a cycle, then check that gluing an ear preserves it. One example: in a 2-connected graph any two vertices lie on a common cycle, which is the case \(k=2\) of Menger's theorem obtained without Menger's theorem.

Which graph cannot be produced by starting from a cycle and repeatedly gluing on ears?

  1. \(K^4\), the complete graph on four vertices
  2. A four-cycle with one chord added
  3. The wheel with a five-vertex rim
  4. Two triangles sharing exactly one vertex
Answer: D. Everything the recipe builds is 2-connected, and the shared vertex here is a cutvertex. Option A is tempting to rule out but is reachable: from the triangle \(abc\), glue the ear \(a\,d\,b\), then the bare edge \(dc\).

Blocks: the pieces a connected graph falls into

Most real networks are not 2-connected. They have weak joints. The right response is not to give up but to chop the graph at its weak joints and study the pieces, which are 2-connected or trivially small. Those pieces are called blocks.

Definition — block

A block of a graph \(G\) is a maximal connected subgraph of \(G\) that has no cutvertex of its own. Concretely, every block is one of three things: a maximal 2-connected subgraph, or a bridge together with its two ends, or an isolated vertex. In plain terms, a block is a largest possible chunk that cannot be broken by deleting one of its own vertices.[1]

Why "no cutvertex" rather than the cleaner-sounding "2-connected"? Because a decomposition should cover everything. Bridges and isolated vertices are not 2-connected, and excluding them would leave parts of the graph in no block at all. The chosen wording lets them in, so every edge of \(G\) lies in exactly one block.

One piece of fine print trips up nearly everyone: a block may contain a cutvertex of the whole graph. The condition is only that it has no cutvertex of its own, judged inside the block. In Figure 3.2 the triangle \(abc\) is a block and \(c\) is a cutvertex of the whole graph, yet deleting \(c\) from the triangle leaves the connected edge \(ab\).

a b c d e f g h B1 B2 B3 B4
Figure 3.2. Four blocks in one graph. \(B_1\) is the violet triangle \(abc\); \(B_2\) is the green bridge \(cd\); \(B_3\) is the gold square \(defg\); \(B_4\) is the plain pendant edge \(gh\). The ringed vertices \(c\), \(d\) and \(g\) are the cutvertices, and each of them is shared by exactly two blocks. Note that \(B_2\) and \(B_4\) are single edges, not 2-connected, yet they are blocks.

Three facts organise the picture, all proved in Diestel §3.1.[1] The first says the decomposition loses nothing about cycles or minimal cuts. Recall from Chapter 1 that a cut is the set of edges between the two sides of a vertex partition, and a bond is a minimal such set.

Theorem — cycles and bonds live inside blocks (Lemma 3.1.2)

The cycles of \(G\) are exactly the cycles of its blocks, and the bonds of \(G\) are exactly the bonds of its blocks. No cycle and no minimal cut ever straddles a block boundary.[1]

Proof idea. A cycle is connected and has no cutvertex, so it enters the "maximal connected without cutvertex" competition and sits inside whichever block wins. For bonds, two vertices joined by an edge of a block \(B\) cannot be connected through anything but \(B\), since a path leaving and returning would build a bigger cutvertex-free subgraph. So a cut made inside \(B\) already separates them in all of \(G\).

Theorem — one relation, three descriptions (Lemma 3.1.3)

For two distinct edges \(e\) and \(f\) of a graph, the following say the same thing: they lie in a common block; they lie on a common cycle; they lie in a common bond.[1]

Proof idea. Inside one block the ear construction produces a cycle through any two edges. Given such a cycle, deleting \(e\) and \(f\) splits it into two arcs; grow each arc into one side of a vertex partition, and the crossing edges form a bond containing both. A common bond forces a common block by the previous lemma. The value of this is that it identifies blocks without mentioning maximality: two edges share a block precisely when some loop runs through both.

Definition — the block graph

Let \(\mathcal{A}\) be the set of cutvertices of \(G\) and \(\mathcal{B}\) the set of its blocks. The block graph of \(G\) is the bipartite graph on \(\mathcal{A} \cup \mathcal{B}\) in which a cutvertex \(a\) is joined to a block \(B\) whenever \(a\) belongs to \(B\). In plain terms, it is a map recording which blocks meet at which joints.[1]

Theorem — the block graph is a tree (Lemma 3.1.4)

The block graph of a connected graph is a tree.[1]

Proof idea. A cycle in the block graph would tie several blocks together into one connected subgraph with no cutvertex of its own, bigger than any block it was made from, contradicting maximality. So the block graph has no cycles; since \(G\) is connected it is connected too, hence a tree.

B1 B2 B3 B4 c d g squares are blocks, circles are cutvertices
Figure 3.3. The block graph of Figure 3.2. Here it is a path, which is a tree with no branching; a graph whose blocks fanned out from one joint would give a star instead. Reading it left to right recovers the coarse shape of the original graph while forgetting everything inside each block.
Common mistake

Blocks partition the edges, not the vertices. A cutvertex belongs to several blocks at once, which is why the block graph has anything to record. Two further slips: a block need not be 2-connected, since bridges and isolated vertices qualify, and "no cutvertex" is judged inside the block.

In the real world

Cutvertices are the single points of failure of a network, and the block tree maps them. In a road or power network a cutvertex is a junction whose loss splits the region in two, while the blocks keep talking to themselves regardless. Planners deciding where to add redundancy read the block tree first: a new link inside a block buys nothing against disconnection, whereas a link between two blocks merges them and removes a joint. By Lemma 3.1.2, any algorithm concerned only with cycles or minimal cuts can also be run block by block and the answers reassembled.[1]

How many blocks does the path \(a\,b\,c\,d\) have?

  1. One: the whole path, since it contains no cycle
  2. Two: one for each cutvertex, \(b\) and \(c\)
  3. Three: each edge together with its two ends
  4. Four: one for each vertex
Answer: C. A bridge together with its ends is a block, and every edge lies in exactly one block, so three edges give three blocks. Option A fails because \(b\) is a cutvertex of the path, so the path is not cutvertex-free.

The block graph of a connected graph is always a tree. What would a cycle in it have to mean?

  1. Several blocks merge into one bigger connected subgraph with no cutvertex of its own
  2. Some block contains a cutvertex of the whole graph
  3. Some block is a bridge rather than a 2-connected chunk
  4. The original graph is disconnected
Answer: A. That merged subgraph would beat the blocks it was made from, and blocks are maximal, so no such cycle exists. Option B is not a contradiction at all: in Figure 3.2 the block \(abc\) contains the cutvertex \(c\).

The structure of 3-connected graphs

One level up, the same question returns. What does a 3-connected graph look like? Again we want a recipe rather than a prohibition, and again there is one, in fact two. Both start from the same seed.

Definition — wheel

A wheel is a graph of the form \(C^n * K^1\): a cycle on \(n\) vertices, called the rim, plus one extra vertex, the hub, joined to every rim vertex. The smallest wheel is \(C^3 * K^1\), a triangle with a hub, which is the same graph as \(K^4\).[2]

K4 = the smallest wheel the wheel with a 5-rim 1 2 3 4 a b c d e h
Figure 3.4. Wheels, with hub and spokes in violet. Left: \(C^3 * K^1\), which is \(K^4\), the seed of both construction theorems below. Right: \(C^5 * K^1\). Every wheel is 3-connected: deleting any two vertices still leaves the rest joined, because the rim survives in pieces that the hub reconnects, or the hub survives and reaches every remaining rim vertex.

Now the reduction move. Deleting an edge from a 3-connected graph usually ruins 3-connectedness for a silly reason: it can leave a vertex of degree 2, and a vertex of degree 2 is always killed by deleting its two neighbours. The repair is to smooth such a vertex away.

Definition — suppressing a vertex, and the operation \(G \mathbin{\dot{-}} e\)

To suppress a vertex \(x\) that has exactly two edges, going to \(a\) and \(b\), delete \(x\) and put in the single edge \(ab\). Now define \(G \mathbin{\dot{-}} e\) to be the graph obtained from \(G - e\) by suppressing any end of \(e\) whose degree in \(G - e\) has dropped to 2. Read aloud: delete the edge, then smooth out its endpoints if they have become mere corners.[2]

Common mistake

\(G \mathbin{\dot{-}} e\) is not \(G - e\), and it is not \(G/e\) either. Forgetting the suppression step is the standard error here. In full generality the operation can also create two parallel edges, which is why Diestel works with multigraphs; whenever the result is 3-connected, parallel edges cannot occur.

Two lemmas bracket the operation. The first says the move is safe to undo, the second says the move is always available.

Theorem — undoing the move is safe (Lemma 3.2.1)

If \(G \mathbin{\dot{-}} e\) is 3-connected, then \(G\) is 3-connected.[2]

Proof idea. Suppose \(G\) had a separator of two vertices. Push it down into \(G \mathbin{\dot{-}} e\), replacing any suppressed vertex by the edge it used to subdivide; the two sides of the split survive the translation. That gives a two-vertex separator in a graph that has none.

Theorem — a reducible edge always exists (Lemma 3.2.2)

Every 3-connected graph \(G\) other than \(K^4\) has an edge \(e\) for which \(G \mathbin{\dot{-}} e\) is again 3-connected.[2]

Proof idea. Among the subgraphs of \(G\) that are subdivisions of a 3-connected graph, and \(G\) contains a subdivided \(K^4\) so there is one, pick the one with most edges. If it is not all of \(G\), 3-connectedness supplies an \(H\)-path joining two different subdivided edges, and adding it yields a subdivision of a larger 3-connected graph, contradicting the choice.[2]

Put the two lemmas together and you get a complete generative description.

Theorem — growing 3-connected graphs from \(K^4\) (Tutte, 1966)

A graph \(G\) is 3-connected if and only if there is a sequence \(G_0, G_1, \dots, G_n\) with \(G_0 = K^4\) and \(G_n = G\), where each \(G_i\) is obtained from its successor by the delete-and-suppress move: \(G_i = G_{i+1} \mathbin{\dot{-}} e\) for some edge \(e\). Every graph in such a sequence is 3-connected.[2]

Read the sequence forwards and it is a growth rule: each step adds one edge whose ends may be existing vertices, or new vertices planted in the middle of existing edges, or one of each. Every 3-connected graph is reachable from \(K^4\), and Lemma 3.2.1 guarantees that no wrong turn leaves the 3-connected world. Figure 3.5 runs one step backwards.

the graph K3,3 after deleting xy and suppressing 1 2 y 3 4 x 1 2 3 4
Figure 3.5. One reduction step, and one growth step read backwards. Left: \(K_{3,3}\), with parts \(\{1,2,y\}\) and \(\{3,4,x\}\); the gold vertices \(x\) and \(y\) sit on the violet edge \(xy\). Delete \(xy\): now \(x\) has only the neighbours 1 and 2, and \(y\) has only 3 and 4, so both are suppressed, restoring the gold edges 12 and 34. The result on the right is \(K^4\). So \(K_{3,3} \mathbin{\dot{-}} xy = K^4\), which is one step of Tutte's 1966 theorem.

The second recipe uses contraction rather than deletion. Recall \(G/e\) from Chapter 1: merge the two ends of \(e\) into one vertex that inherits all their other neighbours.

Theorem — a contractible edge always exists (Lemma 3.2.4)

Every 3-connected graph \(G\) other than \(K^4\) has an edge \(e\) with \(G/e\) again 3-connected.[2]

Proof idea, by infinite descent. If no edge works then for every edge \(xy\) the graph \(G/xy\) has a two-vertex separator including the merged vertex, so \(G\) has a three-vertex separator \(\{x, y, z\}\). Among all such triples pick one whose leftovers include a smallest component \(C\); contracting an edge from \(z\) into \(C\) and repeating the reasoning yields a strictly smaller component. Components cannot shrink forever.

Theorem — vertex splitting generates 3-connectedness (Tutte, 1961)

A graph \(G\) is 3-connected if and only if there is a sequence \(G_0, \dots, G_n\) with \(G_0 = K^4\) and \(G_n = G\), where each \(G_i = G_{i+1}/x y\) for an edge \(xy\) whose two ends both have degree at least 3. All graphs in such a sequence are 3-connected.[2]

Forwards, the move is vertex splitting: pick a vertex, split it into two adjacent vertices, and share out its old neighbours so that each new vertex keeps at least two. The degree condition stops you splitting off a vertex of degree 2, which would destroy 3-connectedness for the silly reason met earlier. This is the core of what Tutte called the wheel theorem, and vertex splitting is the standard way to induct over all 3-connected graphs. Chapter 4 reuses Lemma 3.2.4 inside the proof of Kuratowski's planarity theorem.

Common mistake

Both theorems promise that some edge works, never that every edge works. Contracting or delete-and-suppressing a badly chosen edge can absolutely destroy 3-connectedness. The theorems are existence statements that make induction possible; they are not licences to reduce greedily.

The section ends with a result of a different flavour, algebraic rather than constructive. Recall the cycle space \(\mathcal{C}(G)\) from Chapter 1: the collection of edge sets that split into disjoint cycles, where adding two sets means keeping the edges that lie in exactly one of them, so shared edges cancel.

Definition — non-separating induced cycle

A cycle \(C\) in \(G\) is induced if no edge of \(G\) joins two non-consecutive vertices of \(C\), that is, the cycle has no shortcut across it. It is non-separating if \(G - C\), the graph left after deleting the cycle's vertices, is still connected. A non-separating induced cycle is a loop with no chords whose removal does not shatter what is left.[2]

Theorem — chordless cycles generate everything (Tutte, 1963)

The cycle space of every 3-connected graph is generated by its non-separating induced cycles.[2]

Proof idea. Among the cycles that are not such sums, pick one, \(C\), whose largest leftover component is as large as possible. If \(C\) covers every vertex, split it across a chord into two shorter cycles, both leaving strictly larger leftovers and so both good. Otherwise a well-chosen path across \(C\) writes it as a sum of two or three cycles, again with strictly larger leftovers. Either way the extremal choice is contradicted.

add two triangles: the shared spoke cancels add all five: only the rim survives a b c d e h a b c d e h
Figure 3.6. Tutte's theorem on the 5-wheel. Each of the five triangles \(hab, hbc, hcd, hde, hea\) is induced and non-separating. Left: adding \(hab\) (violet) and \(hbc\) (green) cancels the shared gold spoke \(hb\) and leaves the 4-cycle \(a\,b\,c\,h\). Right: adding all five cancels every spoke, since each spoke lies in exactly two triangles, and leaves precisely the rim \(a\,b\,c\,d\,e\). The rim is itself a non-separating induced cycle, and this exhibits it as a sum of the five triangles.

The payoff is geometric. In a 3-connected planar graph the non-separating induced cycles are exactly the boundaries of the faces you see when you draw it, so Tutte's theorem supplies a combinatorial stand-in for "face" with no drawing involved. That is the engine of Tutte's planarity criterion in Chapter 4. The paper it came from is titled "How to draw a graph", and its spring-embedding idea is the ancestor of the force-directed layouts that visualisation tools still run.[2]

In \(K_{3,3}\) you form \(K_{3,3} \mathbin{\dot{-}} xy\). After the edge \(xy\) is deleted, what happens?

  1. Nothing more; the result is \(K_{3,3}\) with one edge missing
  2. \(x\) and \(y\) each keep two neighbours, so both are suppressed and the result is \(K^4\)
  3. \(x\) and \(y\) are merged into a single vertex, giving \(K^4\)
  4. \(x\) and \(y\) are both deleted, giving the four-cycle on \(1, 2, 3, 4\)
Answer: B. Suppressing a degree-2 vertex replaces it by one edge between its two neighbours, restoring \(12\) and \(34\) and leaving \(K^4\). Option C is contraction, \(G/e\), which is a different operation with a different result.

In the 5-wheel you add all five triangles \(hab, hbc, hcd, hde, hea\) in the cycle space. What survives?

  1. All ten edges of the wheel
  2. Nothing: every edge lies in two triangles and cancels
  3. The five spokes, since each rim edge lies in two triangles
  4. The rim only, since each spoke lies in two triangles and cancels
Answer: D. Adding sets keeps the edges in exactly one of them; each spoke sits in two neighbouring triangles, each rim edge in only one. Option C reverses which edges are shared, so it keeps precisely the wrong half.

Menger's theorem

This is the result the chapter is built around. Before stating it, three words have to be separated, because confusing them wrecks nearly every statement that follows.

Definition — disjoint, independent, edge-disjoint

Two paths are disjoint if they share no vertex at all. They are independent if they share no vertex except possibly their two end vertices. They are edge-disjoint if they share no edge, while vertices may be shared freely. For two paths running between the same two vertices \(a\) and \(b\), full disjointness is impossible, so independence is the right currency there; between two sets \(A\) and \(B\), full disjointness makes sense and is what Menger's theorem counts.[3]

independent: only a and b shared edge-disjoint but not independent a u v b a u v m w z b
Figure 3.7. The distinction that matters. Left: \(a\,u\,b\) and \(a\,v\,b\) meet only at \(a\) and \(b\), so they are independent. Right: \(a\,u\,m\,w\,b\) and \(a\,v\,m\,z\,b\) use eight different edges, so they are edge-disjoint, but they both run through the gold vertex \(m\), so they are not independent. Deleting \(m\) alone kills both routes on the right; on the left, no single deletion kills both.

Now fix two vertex sets \(A\) and \(B\) inside a graph \(G\). They may overlap, and either may be a single vertex or the whole graph. An \(A\)–\(B\) path starts on one shore, ends on the other, and touches neither shore in between.

Definition — separator, and the number \(k(G,A,B)\)

A vertex set \(X \subseteq V(G)\) separates \(A\) from \(B\) if every \(A\)–\(B\) path contains a vertex of \(X\). Picture guards posted on vertices: no route from \(A\) to \(B\) gets past them. Write \(k(G, A, B)\) for the smallest number of guards that does the job. The guards are allowed to stand on vertices of \(A\) or of \(B\); indeed a vertex lying in both \(A\) and \(B\) is by itself an \(A\)–\(B\) path of length 0, so every separator must contain it.[3]

Common mistake

Separators are not required to live strictly "between" the two sets. Assuming they do breaks the theorem outright in the edgeless case, where the only separators are the ones containing all of \(A \cap B\), and it breaks the induction in the standard proof.

One direction of the theorem is free, and worth extracting because it is the part people mistake for the whole result. Suppose you have \(m\) pairwise disjoint \(A\)–\(B\) paths. Every separator must contain at least one vertex of each of them, and since the paths share no vertices, that is \(m\) distinct guards. So the number of disjoint paths never exceeds the number of guards:

\[ \max(\text{disjoint } A\text{--}B \text{ paths}) \;\le\; k(G, A, B). \]

Menger's theorem is the statement that this inequality is never strict.

Theorem — Menger's theorem (Menger, 1927)

For any graph \(G\) and any vertex sets \(A, B \subseteq V(G)\), the minimum number of vertices separating \(A\) from \(B\) equals the maximum number of pairwise disjoint \(A\)–\(B\) paths.[3]

A coarse black and white halftone photograph of an older man with swept-back wavy hair, in a dark suit, white shirt and striped tie, facing the camera.
Plate 3.B. Karl Menger in the January 1970 bulletin of Shimer College, forty-three years after the theorem above. He published it in 1927, and later moved from Vienna to Chicago, where he spent the second half of his working life. The same name is attached to the Menger sponge and to a theory of dimension, so a reader meeting it in three places is meeting one person. Shimer College, 1970. Wikimedia Commons, public domain.
Intuition

The cheapest roadblock equals the biggest convoy. If you cannot stop the traffic with fewer than \(k\) guards, then \(k\) convoys that never collide genuinely exist and can be driven at once. Read one way it is a promise about capacity; read the other way it is a promise about certificates. Whichever quantity you compute, you get a proof that the other one has the same value, and the proof is short: exhibit the paths, or exhibit the guards.

A B a1 a2 m1 m2 b1 b2
Figure 3.8. Menger in miniature, with \(A = \{a_1, a_2\}\) and \(B = \{b_1, b_2\}\). Every route from left to right passes through the gold set \(X = \{m_1, m_2\}\), so 2 guards suffice, and 1 does not: deleting either \(m\) alone leaves the other as a working corridor. On the other side, the violet path \(a_1 m_1 b_1\) and the green path \(a_2 m_2 b_2\) are disjoint, so 2 paths exist. A third path is impossible, because it would need a third middle vertex. Minimum guards = maximum paths = 2.
Worked example

Verify both sides of Figure 3.8 by hand. Guards: every single vertex fails. Deleting \(m_1\) leaves \(a_1 m_2 b_2\); deleting \(m_2\) leaves \(a_1 m_1 b_1\); deleting \(a_1\) leaves \(a_2 m_1 b_1\); deleting \(b_1\) leaves \(a_1 m_2 b_2\). So \(k(G,A,B) \ge 2\), and \(\{m_1, m_2\}\) achieves 2. Paths: \(a_1 m_1 b_1\) and \(a_2 m_2 b_2\) share nothing, giving 2. Both sides equal 2. Now the trap that makes the theorem hard: grab \(a_1 m_1 b_2\) greedily first and the only remaining route, \(a_2 m_2 b_2\), collides at \(b_2\), so you would report 1 as the maximum. Greedy path-picking genuinely fails, which is why the proofs must reroute.

Diestel gives three complete proofs, which is unusual and deliberate: each one generalises in a different direction.[3] Here are their ideas in plain terms.

Proof one, by contraction. Induct on the number of edges. Pick an edge \(e = xy\) and squash it, forming \(G/e\). If the squashed graph still needs \(k\) guards, induction hands you \(k\) disjoint paths there, and unsquashing turns them into \(k\) disjoint paths of \(G\). Otherwise the squashed graph has a cheap separator, and pulling it back gives a separator \(X\) of \(G\) containing both \(x\) and \(y\), with exactly \(k\) vertices. Apply induction twice inside \(G - e\): once between \(A\) and \(X\), once between \(X\) and \(B\). Splice the two families at \(X\) and you have \(k\) disjoint \(A\)–\(B\) paths. This is Halin's argument, and its style, cut the graph at a bottleneck and recurse on both sides, recurs throughout the book.

Proof two, by augmentation. Prove something stronger: any system \(\mathcal{P}\) of fewer than \(k\) disjoint paths can be exceeded. To exceed \(\mathcal{P}\) means to find another disjoint system \(\mathcal{Q}\) that uses strictly more of \(A\) as starting points and strictly more of \(B\) as ending points, so in particular \(|\mathcal{Q}| \ge |\mathcal{P}| + 1\). The extra demand on both shores is what makes the induction close: merely having one more path is too weak a target to recurse on. The construction follows a fresh \(A\)–\(B\) path until it first collides with the old system, then reruns the argument on a graph whose far shore has been enlarged to include the collision zone, and reassembles the pieces. This is due to Böhme, Göring and Harant.

Proof three, by alternating walks. This one is modelled on the augmenting-path proof of König's theorem in Chapter 2, and it is the version that survives into infinite graphs. Fix a system \(\mathcal{P}\) of disjoint \(A\)–\(B\) paths. An alternating walk starts at an unused vertex of \(A\) and moves forward through free territory, but whenever it steps onto an edge already used by \(\mathcal{P}\) it must travel that edge backwards, toward \(A\). It may repeat a vertex only if the vertex lies on the path system, and each time it touches a path of \(\mathcal{P}\) it must arrive or leave along that path. Two lemmas then split the world in half.

Theorem — the alternating-walk dichotomy (Lemmas 3.3.2 and 3.3.3)

If some alternating walk reaches a vertex of \(B\) that no path of \(\mathcal{P}\) uses, then some system of disjoint \(A\)–\(B\) paths exceeds \(\mathcal{P}\). If no alternating walk reaches such a vertex, then \(G\) has an \(A\)–\(B\) separator consisting of exactly one vertex from each path of \(\mathcal{P}\).[3]

Proof idea. In the first case, overlay the walk on the path system and keep the edges used by exactly one of them. Counting edges at each vertex shows the overlay falls apart into \(A\)–\(B\) paths, one more than before: riding backwards is exactly what lets the walk cancel a badly chosen stretch and re-route around it. In the second case, take on each path the last vertex alternating walks can still reach and collect those into a set \(X\). A path dodging all of \(X\) would let a walk reach further, contradicting the choice. So \(X\) is a separator with one guard per path, forcing \(k(G,A,B) \le |\mathcal{P}|\), which with the free inequality closes the theorem.

Intuition

The third proof explains why the easy half is easy and the hard half is hard. Guards and paths are both cheap to verify, but a bad set of paths tells you nothing. The alternating walk is a machine that takes a suboptimal path system and either improves it or certifies that it was already optimal. That "improve or certify" loop has the same shape as the augmenting-path loop for matchings, and as every algorithm that computes these numbers in practice.

Common mistake

"Menger's theorem lets me build the paths greedily." It does not. Figure 3.8's worked example shows a greedy first choice cutting the achievable number in half. The theorem tells you the number; getting the paths requires the rerouting machinery.

Two \(a\)–\(b\) paths run through the same middle vertex \(m\) but share no edge. What are they?

  1. Disjoint
  2. Independent
  3. Edge-disjoint but not independent
  4. Independent but not edge-disjoint
Answer: C. Independence permits sharing only the two endpoints, and \(m\) is neither, so they fail it; sharing no edge is exactly edge-disjointness. Option A is impossible here, since paths with the same ends already share \(a\) and \(b\).

In Figure 3.8 you greedily take \(a_1 m_1 b_2\) as your first path. What then happens?

  1. You still reach two disjoint paths, just in a different order
  2. The only route left, \(a_2 m_2 b_2\), collides at \(b_2\), so you report 1 instead of 2
  3. The set \(\{m_1, m_2\}\) stops being a separator
  4. Nothing goes wrong, since Menger's theorem guarantees the maximum is reached
Answer: B. With \(m_1\) already spent, every route out of \(a_2\) has to finish at \(b_2\), which the first path took, so the greedy count undershoots the true maximum of 2. Option D misreads the theorem: it names the number without handing you the paths.

What Menger's theorem gives you

The set-to-set version is the general one, and the useful special cases follow from it by small tricks. Each trick is worth learning on its own, because the same tricks reappear whenever an edge problem or a single-vertex problem needs to be turned into a vertex-set problem.

Definition — fan

For a vertex \(a\) and a vertex set \(B\) not containing \(a\), an \(a\)–\(B\) fan is a set of \(a\)–\(B\) paths, any two of which meet only in \(a\). Picture the ribs of a hand fan spreading from one pivot. Full disjointness is impossible at \(a\), so we relax exactly there and nowhere else.[3]

Theorem — the fan version (Corollary 3.3.4)

The minimum number of vertices other than \(a\) needed to separate \(a\) from \(B\) equals the maximum number of paths in an \(a\)–\(B\) fan.[3]

Proof idea, one line: delete \(a\) and apply Menger's theorem in \(G - a\) with the left shore taken to be \(N(a)\), the vertices joined to \(a\) by an edge. Every route out of \(a\) starts at one of them, so disjoint \(N(a)\)–\(B\) paths reattach to \(a\) as fan ribs.

B a u v w b1 b2 b3
Figure 3.9. A fan of three ribs from \(a\) into \(B = \{b_1, b_2, b_3\}\). The three paths meet only at \(a\), which is what "fan" allows and "disjoint" would not. Matching this, three guards are needed to cut \(a\) off from \(B\): \(\{u, v, w\}\) does it, and no two vertices can, since each rib would still need its own guard.

Next, the version people usually quote, between two named vertices.

Theorem — the two-vertex versions (Corollary 3.3.5)

Let \(a\) and \(b\) be distinct vertices of \(G\). (i) If \(ab\) is not an edge, the minimum number of vertices other than \(a, b\) separating \(a\) from \(b\) equals the maximum number of independent \(a\)–\(b\) paths. (ii) With no restriction, the minimum number of edges whose removal separates \(a\) from \(b\) equals the maximum number of edge-disjoint \(a\)–\(b\) paths.[3]

Proof idea for (i): delete \(a\) and \(b\), then apply Menger's theorem with \(A := N(a)\) and \(B := N(b)\). For (ii): move to the line graph \(L(G)\) from Chapter 1, whose vertices are the edges of \(G\), two of them joined when they share an end. There, edge-disjoint paths of \(G\) become disjoint paths and edge cuts become vertex separators, so the vertex theorem applies and translates back. Turning an edge problem into a vertex problem this way is a reusable pattern.

A drafted network diagram titled ARPA Network, Logical Map, September 1973, with boxed switches joined by straight lines and two zigzag links at the far left and far right.
Plate 3.C. Bolt Beranek and Newman's logical map of the ARPA Network, September 1973. Two links leave the continent and both are drawn as zigzags: a satellite hop out to Hawaii on the left, and a transatlantic one through NORSAR to London on the right. Each is a lone edge, so one cut takes a whole region off the network. Bolt Beranek and Newman, 1973. Wikimedia Commons, public domain.
Common mistake

Part (i) genuinely needs \(a\) and \(b\) non-adjacent. With the edge \(ab\) present, no vertex set separates \(a\) from \(b\) at all, since no guard on a third vertex can touch that edge. Anyone who quotes "minimum vertex cut between \(a\) and \(b\) equals maximum independent paths" without the caveat is saying something false.

Finally, the payoff promised at the start of the chapter. This is the version that converts the negative definition of \(k\)-connectedness into a positive one.

Theorem — Global Version of Menger's theorem (Whitney, 1932)

(i) A graph is \(k\)-connected if and only if it contains \(k\) independent paths between every two of its vertices. (ii) A graph is \(k\)-edge-connected if and only if it contains \(k\) edge-disjoint paths between every two of its vertices.[3]

Proof idea. One direction is the two-line argument from the chapter opening: \(k\) independent routes cannot all be destroyed by \(k-1\) deletions. Conversely, suppose \(G\) is \(k\)-connected but some pair \(a, b\) has fewer than \(k\) independent paths. By Corollary 3.3.5 (i) that forces \(ab\) to be an edge, so delete it: the pair is now non-adjacent, giving a separator \(X\) of at most \(k-2\) vertices in \(G - ab\). Since \(G\) has more than \(k\) vertices, some vertex lies outside \(X \cup \{a,b\}\), and \(X\) plus whichever of \(a, b\) is on the far side separates \(G\) using at most \(k-1\) vertices, contradicting \(k\)-connectedness. That adjacent case is the fiddly part, and skipping it is a common gap.

Worked example

Take the wheel \(C^5 * K^1\) of Figure 3.4 and check \(\kappa = 3\) both ways. Cut resistance: deleting the hub and one rim vertex leaves the other four rim vertices in a path, still connected, and deleting two rim vertices leaves the hub reaching everything. So \(\kappa \ge 3\), while \(\kappa \le \delta = 3\) because each rim vertex has degree 3. Route redundancy: the rim vertices \(a\) and \(c\) are joined by \(a\,b\,c\), by \(a\,e\,d\,c\), and by \(a\,h\,c\) through the hub, three paths sharing only \(a\) and \(c\). The Global Version says the two computations had to agree, and they do.

In the real world

Menger's theorem is the combinatorial ancestor of the max-flow min-cut theorem, whose founding paper is Ford and Fulkerson's "Maximal Flow Through a Network" of 1956. Its origin was a practical question posed to the authors by T. Harris: find the maximum steady-state flow through a rail network joining two cities, where every link has a capacity.[6] Menger's version is the case of unit capacities sitting on vertices rather than links, and the answer has the same shape: the biggest thing you can push equals the cheapest thing you can cut. Chapter 6 develops flows properly, and they yield a fourth proof of Menger's theorem.

The duality does visible work in computer vision. To cut an object out of a photograph, build a graph with one vertex per pixel, edges between neighbouring pixels weighted by how similar they look, and two terminals standing for "object" and "background". A minimum cut separating the terminals traces the boundary along the cheapest seam. Boykov and Funka-Lea document that such cuts reach global optima efficiently and work in any number of dimensions, including three-dimensional medical scans.[7] The bottleneck the algorithm exposes is the outline of the tumour or the person.

The same picture underlies epidemic interdiction. Disease spread is a process on a contact network, and the standard susceptible-infective-removed models can be solved exactly on a wide range of network structures.[8] To stop every transmission chain between two populations you are looking for a minimum separator, and Menger's theorem certifies optimality: exhibit that many disjoint chains and no smaller barrier can exist.

A world outline map crossed by thin red and blue lines running between coastal points across the Atlantic, Pacific and Indian oceans, with none in the Arctic or Antarctic.
Plate 3.D. Undersea telecommunications cables as of 2007, sketched by a contributor rather than surveyed. Count the lines touching any one coast and you have the size of the cut that would take it off the network. West Africa hangs on a handful; the North Atlantic bundle would have to be cut many times over. Rarelibra, 2007. Wikimedia Commons, public domain.

Why must \(a\) and \(b\) be non-adjacent in the independent-path version of Corollary 3.3.5?

  1. Otherwise the paths would share more than their two endpoints
  2. Otherwise the edge \(ab\) itself counts as a path of length 0
  3. Otherwise the line graph translation used in the proof breaks down
  4. Otherwise no set of other vertices separates \(a\) from \(b\) at all
Answer: D. A guard on a third vertex cannot touch the edge \(ab\), so there is no separator to take a minimum over and the equality has nothing to say. Option C names the tool behind part (ii), the edge version, which needs no such caveat.

Counting round trips: A-paths and Mader's theorem

Menger's theorem counts paths that run between two shores. A different question counts paths that start and end on the same chosen set and go abroad in between. Think of \(A\) as a set of terminals and ask how many non-colliding round trips through the surrounding network you can run at once.

Definition — \(A\)-path and \(H\)-path

For a vertex set \(A\), an \(A\)-path is a path with at least one edge whose two ends lie in \(A\) and none of whose interior vertices lies in \(A\). For a subgraph \(H\), an \(H\)-path is an \(A\)-path for \(A = V(H)\) that is not itself an edge of \(H\): it leaves \(H\), travels outside, and returns, touching \(H\) only at its two ends. The clause "not an edge of \(H\)" stops the count from being inflated by \(H\)'s own edges.[4]

The first result is a packing-versus-covering statement of exactly the kind Chapter 2 trained you to expect: either the thing you want exists in quantity, or a small blocker exists.

Theorem — Gallai's theorem (Gallai, 1961)

For a vertex set \(A\) and an integer \(k \ge 1\), a graph either contains \(k\) disjoint \(A\)-paths, or it contains a set of at most \(2k-2\) vertices meeting every \(A\)-path.[4]

Notice the loss. In Menger's theorem the two numbers match exactly. Here, failing to pack \(k\) paths only buys you a blocker of size \(2k-2\) rather than \(k-1\), and the factor of roughly two is not slack in the proof. It is real, and the smallest complete graphs show why.

A is all three vertices 1 guard: vw escapes 2 guards: nothing escapes u v w u v w u v w
Figure 3.10. Why \(2k-2\) cannot be improved, shown for \(k = 2\) on the triangle \(K^3 = K^{2k-1}\) with \(A\) the whole vertex set. Since \(A\) is everything, an \(A\)-path can have no interior vertex, so the \(A\)-paths are exactly the three edges. Any two of them share a vertex, so at most 1 disjoint \(A\)-path exists, short of the target \(k = 2\). Gold vertices are guards: one guard always leaves the opposite edge free, while two guards meet all three edges. The blocker has size \(2 = 2k-2\), exactly the bound.

The general sharpness example is \(K^{2k-1}\) with \(A\) all of its vertices. Disjoint \(A\)-paths are then disjoint edges, and \(2k-1\) vertices cannot host \(k\) of those, so packing maxes out at \(k-1\). Blocking every edge takes \(2k-2\) guards, since two unguarded vertices leave the edge between them free. Both halves of Gallai's statement are tight at once.

Gallai's theorem is an inequality. The exact answer was found seventeen years later by Mader, and getting it exact required changing what counts as a blockade.

Definition — mixed blockade, and the number \(M_H(G)\)

Let \(H\) be an induced subgraph of \(G\). A mixed blockade of the \(H\)-paths is a pair \((X, F)\) where \(X\) is a set of vertices outside \(H\) and \(F\) is a set of edges avoiding \(H\) and \(X\), such that every \(H\)-path either passes through a vertex of \(X\) or uses an edge of \(F\). Score such a blockade as \(|X|\) plus, for each connected cluster \(C\) formed by the edges of \(F\), the quantity \(\lfloor \frac{1}{2}|\partial C|\rfloor\), where \(\partial C\) is the set of vertices of \(C\) that still send an edge outward. Then \(M_H(G)\) is the smallest score over all mixed blockades.[4]

Why the strange scoring? A cluster of cut edges is worth less than the number of edges in it. Any \(H\)-path crossing the cluster \(C\) enters and leaves through different boundary vertices, and independent paths cannot reuse one, so the cluster is crossed at most \(\lfloor \frac{1}{2}|\partial C|\rfloor\) times. That makes the score a valid upper bound; counting \(|X| + |F|\) would also be valid but wasteful.

Theorem — Mader's theorem (Mader, 1978)

For every graph \(G\) with an induced subgraph \(H\), the maximum number of independent \(H\)-paths in \(G\) is exactly \(M_H(G)\).[4]

Diestel states this theorem without proving it. The book explains why \(M_H(G)\) is an upper bound, the part you can check by hand, then points to Schrijver's proof for the equality.[4] This course follows the book: take the equality on trust, and spend your effort on why the refined score is the right thing to minimise. The result swallows two earlier theorems whole, since Gallai's theorem follows from it and so does Tutte's 1-factor theorem from Chapter 2.

Two clean consequences avoid the heavy machinery. Recall \(\kappa_H(G)\), the fewest vertices outside \(H\) that meet every \(H\)-path, and \(\lambda_H(G)\), the fewest edges that do.

Theorem — the half bounds (Corollary 3.4.3)

With \(H\) induced in \(G\), there are always at least \(\frac{1}{2}\kappa_H(G)\) independent \(H\)-paths, and at least \(\frac{1}{2}\lambda_H(G)\) edge-disjoint \(H\)-paths. The factor \(\frac{1}{2}\) cannot be improved.[4]

Proof idea. Turn an optimal mixed blockade into a pure vertex blockade by keeping \(X\) and adding, for each edge cluster, all but one of its boundary vertices. That at most doubles the score, so \(\kappa_H(G) \le 2 M_H(G)\) and Mader's equality does the rest; the edge version follows by the line graph trick. Whatever it costs to block every round trip with vertices alone, you can run at least half that many, and the factor of two is the price of banning mixed blockades.

Common mistake

Two rules keep this section honest. Guards must stay off \(H\), since posting them on \(H\) makes blocking trivial and the numbers meaningless. And \(M_H(G)\) is not the minimum of \(|X| + |F|\): the per-cluster term is genuinely smaller than the cluster's edge count, and only the refined score is attained exactly.

In a mixed blockade, why is a cluster \(C\) of blocking edges scored \(\lfloor \frac{1}{2}|\partial C|\rfloor\) rather than by its number of edges?

  1. Because edges are cheaper to remove from a network than vertices
  2. Because each \(H\)-path crossing \(C\) spends two boundary vertices, and independent paths cannot reuse one
  3. Because one well-chosen edge of \(C\) always blocks the whole cluster
  4. Because the floor sign is needed to keep the score a whole number
Answer: B. Two boundary vertices go per crossing, so the cluster is crossed at most \(\lfloor \frac{1}{2}|\partial C|\rfloor\) times and charging its edge count would be wasteful. Option D explains the floor symbol but not the halving, which is where the idea lives.

Linking prescribed pairs

Every theorem so far counted paths without caring which endpoint went with which: Menger hands you \(k\) disjoint routes and you take the pairing you are given. Now make the problem harder. You have \(k\) calls to place, call \(i\) running from \(s_i\) to \(t_i\), and the pairing is not negotiable. Can the network carry them all at once without collisions?

Definition — linked set, \(k\)-linked graph

A vertex set \(X\) is linked in \(G\) if for every choice of distinct vertices \(s_1, \dots, s_\ell, t_1, \dots, t_\ell\) in \(X\) there are disjoint paths \(P_1, \dots, P_\ell\), where \(P_i\) runs from \(s_i\) to \(t_i\) and has no interior vertex in \(X\). A graph \(G\) is \(k\)-linked if \(|G| \ge 2k\) and every set of at most \(2k\) vertices is linked. Equivalently, for any \(2k\) distinct vertices \(s_1, \dots, s_k, t_1, \dots, t_k\) there are disjoint paths joining \(s_i\) to \(t_i\) for each \(i\).[5]

The clause forbidding interior vertices in \(X\) earns its place: the leftover vertices of \(X\), the ones not currently serving as terminals, stay untouched and available inside a bigger argument. Stated in the second form, with exactly \(2k\) terminals named, that condition takes care of itself.

Every \(k\)-linked graph is \(k\)-connected, for the same free reason as before: if fewer than \(k\) vertices could separate the graph, pick terminals on both sides and no linkage could cross. The converse fails, and it fails at the smallest possible size.

two demands, drawn dashed any s1-t1 route eats s2 or t2 s1 s2 t1 t2 s1 s2 t1 t2
Figure 3.11. The 4-cycle is 2-connected but not 2-linked. Left: the two demands \(s_1 \to t_1\) (violet) and \(s_2 \to t_2\) (gold) are drawn dashed, since they are requests rather than edges. Right: the only two routes from \(s_1\) to \(t_1\) are \(s_1 s_2 t_1\) and \(s_1 t_2 t_1\), and each swallows one endpoint of the other demand. Interleaved terminals around a cycle cannot be routed.

So \(k\)-linked is strictly stronger than \(k\)-connected. The question of the section is how much stronger. Does high connectivity eventually force linkedness, and if so how high?

The first answer, from 1970, is yes with an appalling constant. Its engine is a result whose proof Diestel postpones to the extremal graph theory chapter: there is a function \(h\) such that any graph whose average degree is at least \(h(r)\) contains a subdivision \(TK^r\), meaning \(r\) branch vertices joined pairwise by internally disjoint paths.[5]

Theorem — connectivity forces linkedness (Jung, 1970; Larman & Mani, 1970)

There is a function \(f\) such that every \(f(k)\)-connected graph is \(k\)-linked. The proof gives \(f(k) = h(3k) + 2k\).[5]

Proof idea. High connectivity forces high average degree, which produces a subdivided complete graph \(TK^{3k}\) inside \(G\). Its branch vertices form a switchboard in which every pair of ports already owns a private corridor. Menger's theorem carries the \(2k\) terminals into that switchboard along disjoint paths, chosen to use as few outside edges as possible; the economy leaves \(k\) ports spare, one per demand, so each pair \(s_i, t_i\) is stitched through its own spare port.

Intuition

The switchboard is the whole idea. In a subdivided complete graph any pairing of the ports can be realised, since every pair already owns a dedicated corridor. The routing problem then splits in two: get the terminals to the switchboard without collisions, which is a Menger problem, then let the switchboard do the pairing. That is also why the first bound was astronomical: the connectivity had to guarantee a large switchboard.

Thirty-five years later the constant came down to something usable. The improvement replaces "find an enormous switchboard" with "find a small dense one", which needs far less connectivity but does need the graph to be genuinely edge-rich.

Theorem — the linear bound (Thomas & Wollan, 2005)

If \(G\) is \(2k\)-connected and has edge density \(\varepsilon(G) \ge 8k\), that is at least \(8k|G|\) edges, then \(G\) is \(k\)-linked. Since \(2\varepsilon(G) = d(G) \ge \delta(G) \ge \kappa(G)\), every \(16k\)-connected graph satisfies both hypotheses, so the function \(f\) above may be taken to be \(f(k) = 16k\).[5]

Proof idea, in outline. The statement as written is too rigid to induct on, so it is replaced by a flexible claim: if the territory outside the terminal set \(X\) is edge-rich, and every bottleneck cutting a piece away from \(X\) cuts away only an edge-poor piece, then \(X\) is linked. Diestel calls edge-rich sets heavy and edge-poor sets light, measuring \(\|U\|^+\) against \(8k|U|\). The gain is that "everything cut off is light" survives edge deletion and contraction, whereas \(2k\)-connectedness does not.

The induction runs on graph size and on the number of edges outside \(X\). A bottleneck whose far side can itself route any pairing of the interface acts as a black box, and Menger's theorem finishes at once, so assume none exists. Contracting or deleting an edge outside \(X\) then either preserves the hypotheses, letting induction apply, or squeezes the smallest outside degree into a narrow window, where a minimum-degree vertex and its neighbours form a small dense graph.

Theorem — dense small graphs contain a switchboard (Lemma 3.5.4)

Any graph \(H\) with \(\delta(H) \ge 8k \ge |H|/2\), that is, at most \(16k\) vertices and every vertex having at least \(8k\) neighbours, contains a \(k\)-linked subgraph.[5]

With that local switchboard in hand, Menger's theorem applies one last time: either it links \(X\) to the switchboard by \(|X|\) disjoint paths, finishing the argument, or it produces exactly the bottleneck already ruled out. The Notes record refinements: edge density \(5k\) is enough, and for graphs of large girth, meaning no short cycles, \(2k\)-connectedness alone suffices.[5]

In the real world

Prescribed-pair routing is the daily problem of circuit layout. A chip or board says which terminals must be wired to which, and the wires must not contend for the same physical resource, which is the engineering form of "disjoint paths for prescribed pairs". Lengauer's monograph on integrated circuit layout treats the pipeline that turns a circuit description into geometry, from partitioning and placement through global and detailed routing to compaction, with graph algorithms throughout the routing stages.[9] The theory here explains the shape of the difficulty: connectivity alone buys many routes, but prescribing which route joins which pair costs a constant factor more.

What job does the subdivided complete graph \(TK^{3k}\) do in the Jung and Larman–Mani proof?

  1. It supplies the \(2k\) terminals that have to be linked
  2. It certifies that no \(2k-1\) vertices can separate the graph
  3. It is a switchboard: every pair of its branch vertices already owns a private corridor
  4. It forces the average degree of \(G\) up to \(h(3k)\)
Answer: C. Menger's theorem carries the terminals to the switchboard along disjoint paths, and the switchboard then realises whichever pairing you were handed. Option D reverses the logic: high average degree is what produces the subdivision, not the reverse.

What to carry forward

Four things from this chapter deserve permanent residence.

First, the min-max habit in its most quoted form: a quantity defined by destruction, the cheapest way to break something, equals a quantity defined by construction, the largest number of non-colliding routes. Whenever you meet a hard combinatorial minimum, ask what maximum it might secretly equal.

Second, the build recipes. Two-connected means cycle plus ears; three-connected means \(K^4\) plus vertex splittings, or \(K^4\) plus edge additions with subdivisions. A property defined by a prohibition becomes one you can generate, and generation is what makes induction possible.

Third, the three flavours of non-collision: disjoint paths share nothing, independent paths share only their two endpoints, edge-disjoint paths may share vertices freely. Menger's theorem is stated for disjoint paths between sets, and its two-vertex corollaries split into an independent-path version, needing non-adjacent endpoints, and an edge version, which does not.

Fourth, the gap between counting and prescribing. Getting \(k\) routes is a connectivity question; getting \(k\) routes that join the pairs you named is strictly harder, and bringing that gap under a linear bound took from 1970 to 2005.

The threads continue. Menger's theorem returns as the unit-capacity ancestor of max-flow min-cut in Chapter 6, which supplies another proof of it. The alternating-walk lemmas are reused word for word in Chapter 8 for infinite graphs. The block tree becomes the tree-decompositions of Chapter 12. And the planarity arguments of Chapter 4 lean on the 3-connected recipes proved here.

The first thing the chapter tells you to carry forward is a habit of mind. Which one?

  1. Meeting a hard combinatorial minimum, ask which maximum it secretly equals
  2. Meeting a graph that resists deletion, try deleting more vertices at once
  3. Once a minimum and a maximum agree, greedy construction becomes safe
  4. Any property defined by a prohibition is generated by one single build move
Answer: A. Cheapest destruction equalling largest construction is the shape shared by Menger's theorem and by Mader's. Option C is exactly the trap Figure 3.8 disproves: the two numbers agree there, yet greedy path-picking still undercounts.

Check your understanding

In this chapter, what does \(G \mathbin{\dot{-}} e\) mean?

  1. Delete the edge \(e\) and both of its endpoints
  2. Delete the edge \(e\), then suppress any endpoint left with degree 2, replacing that vertex and its two edges by a single edge
  3. Contract the edge \(e\), merging its two endpoints into one
  4. Delete the edge \(e\) and nothing else
Answer: B. The operation is \(G - e\) followed by the suppression step, and it is the reduction move in Tutte's 1966 characterisation. Option D is plain \(G - e\), which usually leaves a degree-2 vertex and so cannot be 3-connected; option C is \(G/e\).

What does \(k(G, A, B)\) denote?

  1. The number of components of \(G\) after removing \(A \cup B\)
  2. The maximum number of disjoint \(A\)–\(B\) paths
  3. The minimum number of vertices whose removal destroys every \(A\)–\(B\) path
  4. The number of edges running between \(A\) and \(B\)
Answer: C. That is the definition. By Menger's theorem this number happens to equal the quantity in option B, but the symbol names the separator minimum, and the equality is the theorem rather than the definition.

For an induced subgraph \(H\) of \(G\), the quantity \(\kappa_H(G)\) is:

  1. The fewest vertices outside \(H\) needed to meet every \(H\)-path in \(G\)
  2. The connectivity of the subgraph \(H\)
  3. The fewest edges needed to meet every \(H\)-path in \(G\)
  4. The number of \(H\)-paths in \(G\)
Answer: A. Guards for \(H\)-paths must stand outside \(H\), otherwise the problem collapses. The edge version described in option C is \(\lambda_H(G)\).

Two different blocks of a graph \(G\) can share:

  1. At most one edge
  2. Nothing at all: blocks are always vertex-disjoint
  3. Any number of vertices, provided they share no edge
  4. At most one vertex, and that vertex is always a cutvertex of \(G\)
Answer: D. Maximality forces distinct blocks to overlap in at most one vertex, and such a shared vertex must be a cutvertex. This is also why every edge lies in exactly one block while a vertex may lie in several, and why the block graph has anything to record.

In some graph the minimum number of vertices separating a set \(A\) from a set \(B\) is 3. What does Menger's theorem let you conclude?

  1. There are at most 2 disjoint \(A\)–\(B\) paths
  2. There are exactly 3 disjoint \(A\)–\(B\) paths, and no more
  3. There are at least 4 edge-disjoint \(A\)–\(B\) paths
  4. Every \(A\)–\(B\) path has length 3
Answer: B. The maximum number of disjoint \(A\)–\(B\) paths equals the minimum separator size, which is 3. More than 3 is impossible for the free reason: each disjoint path spends one separator vertex.

According to the Global Version of Menger's theorem, a graph is \(k\)-connected if and only if:

  1. Every vertex has at least \(k\) neighbours
  2. It contains \(k\) edge-disjoint paths between any two vertices
  3. It contains \(k\) paths between any two vertices that pairwise share no vertex at all
  4. It contains \(k\) independent paths, sharing only their two endpoints, between any two vertices
Answer: D. Option A is necessary but not sufficient: two copies of \(K^{k+1}\) glued at a single vertex have minimum degree \(k\) and connectivity 1. Option B characterises \(k\)-edge-connectedness. Option C is impossible, since paths between the same two vertices always share those two vertices.

Tutte's contraction characterisation builds every 3-connected graph from \(K^4\). Which reduction step does it use?

  1. Deleting any vertex of minimum degree
  2. Contracting any edge whatsoever
  3. Contracting an edge \(xy\) whose two ends both have degree at least 3, so the result is again 3-connected
  4. Deleting an edge together with both of its endpoints
Answer: C. The sequence requires \(G_i = G_{i+1}/xy\) with \(d(x), d(y) \ge 3\), and every graph in the sequence is then 3-connected. Option B fails: contracting a badly chosen edge can destroy 3-connectedness, and the theorem only promises that some suitable edge exists.

Take the cycle on four vertices labelled in cyclic order \(s_1, s_2, t_1, t_2\). Which statement is true?

  1. It is 2-linked, because every 2-connected graph is 2-linked
  2. It is not 2-connected
  3. It is 2-connected but not 2-linked: the pairs \((s_1, t_1)\) and \((s_2, t_2)\) cannot be joined by disjoint paths
  4. It is 2-linked but not 2-connected
Answer: C. Cycles are 2-connected, yet every route from \(s_1\) to \(t_1\) passes through \(s_2\) or \(t_2\) (Figure 3.11), so the two demands collide. This is the gap that Section 3.5 measures.

Let \(G = K^5\) and let \(A\) be all five of its vertices. What is the maximum number of disjoint \(A\)-paths, and what does Gallai's theorem with \(k = 3\) then promise?

  1. 2 disjoint \(A\)-paths; and some set of at most \(2k - 2 = 4\) vertices meets every \(A\)-path
  2. 3 disjoint \(A\)-paths; no covering statement applies
  3. 5 disjoint \(A\)-paths; and a single vertex meets every \(A\)-path
  4. 1 disjoint \(A\)-path; and two vertices meet every \(A\)-path
Answer: A. Since \(A\) is every vertex, an \(A\)-path can have no interior, so \(A\)-paths are single edges and disjoint ones form a matching; five vertices host at most 2 disjoint edges. As \(2 < 3\), Gallai's alternative applies and promises a blocker of size at most 4, which is also exactly what \(K^5 = K^{2k-1}\) requires.

Which pair of hypotheses does the Thomas and Wollan theorem use to force a graph \(G\) to be \(k\)-linked?

  1. \(G\) is \(k\)-connected and has at least \(8k\) vertices
  2. \(G\) is \(2k\)-connected and \(\varepsilon(G) \ge 8k\), that is, \(G\) has at least \(8k|G|\) edges
  3. \(G\) has minimum degree \(16k\), with no connectivity assumption at all
  4. \(G\) contains a subdivided complete graph \(TK^{3k}\)
Answer: B. Connectivity \(2k\) plus edge density \(8k\). Because \(2\varepsilon(G) \ge \delta(G) \ge \kappa(G)\), connectivity \(16k\) alone implies both, giving the linear bound. Option D is the mechanism of the older exponential-bound proof, not a hypothesis here; option C fails, since a dense graph can still be barely connected.

Sources and further reading

  1. R. Diestel, Graph Theory, 6th ed., Springer GTM 173 (2024), §3.1 (ear decomposition, Proposition 3.1.1; blocks and the block graph; Lemmas 3.1.2, 3.1.3 and 3.1.4).
  2. R. Diestel, Graph Theory, 6th ed., Springer GTM 173 (2024), §3.2 (the operation \(G \mathbin{\dot{-}} e\); Lemmas 3.2.1 and 3.2.2; Tutte's construction theorem 3.2.3, 1966; Lemma 3.2.4; Tutte's vertex-splitting theorem 3.2.5, 1961; Tutte's cycle-space theorem 3.2.6, 1963).
  3. R. Diestel, Graph Theory, 6th ed., Springer GTM 173 (2024), §3.3 (Menger's theorem 3.3.1, 1927, with three proofs; alternating-walk Lemmas 3.3.2 and 3.3.3; fan version, Corollary 3.3.4; two-vertex versions, Corollary 3.3.5; Global Version 3.3.6, Whitney 1932).
  4. R. Diestel, Graph Theory, 6th ed., Springer GTM 173 (2024), §3.4 (Gallai's theorem 3.4.1, 1961; Mader's theorem 3.4.2, 1978, stated there without proof, with a pointer in the Notes to Schrijver's proof; Corollary 3.4.3).
  5. R. Diestel, Graph Theory, 6th ed., Springer GTM 173 (2024), §3.5 (linked sets and \(k\)-linked graphs; Lemma 3.5.1, proved in §7.2; Theorem 3.5.2, Jung 1970 and Larman & Mani 1970; Lemma 3.5.4; Theorem 3.5.3, Thomas & Wollan 2005; Notes on the refinements).
  6. L. R. Ford Jr., D. R. Fulkerson, "Maximal Flow Through a Network", Canadian Journal of Mathematics 8 (1956), 399–404. cambridge.org.
  7. Y. Boykov, G. Funka-Lea, "Graph Cuts and Efficient N-D Image Segmentation", International Journal of Computer Vision 70 (2006), 109–131. springer.com.
  8. M. E. J. Newman, "Spread of epidemic disease on networks", Physical Review E 66, 016128 (2002). arXiv:cond-mat/0205009.
  9. T. Lengauer, Combinatorial Algorithms for Integrated Circuit Layout, Vieweg+Teubner (1990). springer.com.