Definition · The parameterised problemVertex cover, parameterised by solution size: given a graph and an integer k, is there a vertex cover with at most k vertices? The parameter is k, chosen by whoever asks the question, and the algorithm's running time is allowed to depend on it in any way at all provided the dependence on the graph is polynomial.
Theorem · The bounded search tree is correct, and its depth is kThe branching algorithm returns a cover of size at most k if one exists and reports failure otherwise, and it opens at most 2^(k+1) nodes.
For correctness, induct on the budget. With budget 0 the algorithm succeeds exactly when no edge is uncovered, which is right. With budget b > 0, if no edge is uncovered the current set is already a cover. Otherwise pick an uncovered edge uv; every cover of size at most b more contains u or v, so one of the two recursive calls sees a sub-problem with a solution whenever the current node has one, and by induction finds it.
For the size, the recursion branches into two children and decreases the budget by one, so the tree has depth at most k and at most 2^(k+1) - 1 nodes. The work at each node is a scan for an uncovered edge, which is linear in the number of edges, so the whole search costs O(2^k · m).
□
What the lab counted
The loaded graph is the cycle on six vertices with k = 3. The panel reports a cover of size 3 — vertices 1, 3 and 5 — an exhaustive optimum of 3, the answer correct, 9 nodes opened, a tree bound of 16, and 2^k · n = 48 against 2^n = 64. Moving the budget down one at a time gives the shape of the search: k = 0 fails in 1 node, k = 1 fails in 3, k = 2 fails in 7, and k = 3 succeeds in 9.
Two of those numbers are worth pausing on. At k = 2 the search opens 7 nodes against a bound of 8 and fails, which is the bound almost exactly attained: when there is no cover the tree is explored in full. At k = 3 it opens 9 against a bound of 16, because it stops at the first cover it finds and does not enumerate the rest. Success is cheaper than failure here, and that is typical of a search with no bound to prune with.
Example · A budget that settles a graph of any sizeLoad the star on eight vertices with k = 1. The hub covers every edge, so one unit of budget suffices, and the panel reports 3 nodes against 2^k · n = 16 and 2^n = 256. A star with forty leaves would open the same 3 nodes, because the tree's depth is the budget and the graph enters only through the scan — though that is an argument rather than a measurement, since the panel's parser stops at eight vertices. That is the whole promise of parameterising, on the instance where it is most visible.
And the instance where it does not pay
Load the two disjoint triangles with k = 4. Each triangle needs two vertices covered, so 4 is the smallest budget that works, and 4 is large relative to the graph's 6 vertices. The panel prints 2^k · n = 96 against 2^n = 64: the parameterised bound is worse than checking every subset. The search still only opens 9 nodes, which is the honest measurement, but the two work figures are the ones that generalise and one of them is losing.
This is the same reading discipline as the previous page in a new costume. 2^k · n and 2^n are expressions evaluated at the instance on screen; they are not measurements, and the panel labels them as the expressions they are. The node count is the measurement. Neither is a claim about the other, and the interesting cases are exactly the ones where they disagree.
One thing this course does not build: kernelisation, where the instance itself is shrunk to a size depending only on k before any search begins. A vertex of degree above k must be in any cover of size k, which is the first reduction rule, and there are others that leave a graph with O(k^2) edges. It is the other half of parameterised algorithms and it is named here rather than demonstrated.