Skip to main content

König's Theorem

König's Theorem says that in a bipartite graph, the size of the maximum matching equals the size of the minimum vertex cover. In Combinatorics, it links pairing problems to covering problems.

Last updated July 2026•Fiveable Content Team

What is König's Theorem?

König's Theorem is the bipartite graph fact that the largest possible matching has the same size as the smallest possible vertex cover. A matching is a set of edges with no shared endpoints, so it models as many non-overlapping pairings as you can make. A vertex cover is a set of vertices that touches every edge, so it models the smallest set of vertices needed to "watch" all connections.

That equality is the whole punchline. If you can find a matching with 7 edges in a bipartite graph, then any vertex cover must use at least 7 vertices, and König's Theorem says there is a cover of exactly 7. The graph has two sides, and edges only go across the sides, which is what makes the theorem work. This restriction matters, because the statement is not true for arbitrary graphs.

A good way to picture it is with tasks and workers, or jobs and machines. Each edge is a possible assignment. A maximum matching gives the most assignments with no person or job reused. A minimum vertex cover tells you the smallest set of workers or jobs you need to inspect so that every possible assignment is touched by at least one chosen endpoint.

The theorem is often paired with augmenting paths. When you try to improve a matching, you look for a path that alternates between unmatched and matched edges. If such a path exists, you can flip the status of its edges and make the matching bigger. The structure you get from this process also helps identify a minimum vertex cover.

A common mistake is to confuse vertex cover with independent set. They are related, but not the same task. In a bipartite graph, the complement of a minimum vertex cover is a maximum independent set, which is another reason this theorem is so useful in combinatorics and optimization. It turns one hard-looking graph problem into a pair of equivalent counting targets.

Why König's Theorem matters in COMBINATORICS

König's Theorem shows up whenever a Combinatorics problem asks you to compare pairings with coverage. Instead of treating matching and covering as separate ideas, you can move between them and use whichever one is easier to find. That is especially useful in bipartite graphs, where the left-right structure makes assignment-style problems cleaner than they first look.

It also gives you a fast check on your work. If you find a matching of size 5, you already know no vertex cover can be smaller than 5. If you then build a cover with 5 vertices, you have proved both are optimal. That kind of two-sided confirmation is a big deal in optimization problems, because it saves you from guessing whether your answer is truly best.

The theorem connects directly to maximum flow and minimum cut ideas in the same unit. Many flow problems are built from bipartite matching networks, so König's Theorem becomes a bridge between graph theory and network optimization. When a problem is disguised as scheduling, resource allocation, or pairing under constraints, this theorem often gives you the cleanest route to the answer.

Keep studying COMBINATORICS Unit 14

Official unit cheatsheet

open one-pager

How König's Theorem connects across the course

Bipartite Graph

König's Theorem only applies when the graph is bipartite, meaning the vertices split into two groups and every edge goes across the split. That structure is what makes matching and vertex cover line up so neatly. If the graph is not bipartite, the theorem does not automatically hold, so checking the graph type is your first move.

Maximum Matching

A maximum matching gives the largest set of non-overlapping edges you can choose. König's Theorem says its size matches the size of a minimum vertex cover in bipartite graphs. So if a problem asks for an optimal matching, you can often use a matching argument to pin down the best possible cover size too.

Vertex Cover

Vertex cover is the other half of the theorem. Instead of choosing edges, you choose vertices so every edge is incident to at least one chosen vertex. König's Theorem turns this into an optimization equality in bipartite graphs, which is why a cover problem can often be solved by first finding a matching.

Ford-Fulkerson Method

The Ford-Fulkerson Method is one way matching problems get translated into flow networks. In a bipartite graph, you can build a network whose maximum flow corresponds to a maximum matching. That flow setup is one of the cleanest routes to seeing why König's Theorem connects pairings, covers, and optimization.

Is König's Theorem on the COMBINATORICS exam?

A problem set question will usually give you a bipartite graph and ask for a maximum matching, a minimum vertex cover, or both. Your job is to identify the graph as bipartite, find a largest set of disjoint edges, and then use König's Theorem to confirm the cover size or construct a cover of the same size. If the graph is small, you may do this by inspection and alternating paths. If it is built from a network or assignment story, translate the words into vertices and edges first, then check which side of the bipartition each vertex belongs to. A common quiz move is to ask for the size relationship, not just the actual sets, so know that those two optimum values are equal here.

König's Theorem vs Vertex Cover

Vertex cover is the object you are trying to find, while König's Theorem is the result that connects it to maximum matching in bipartite graphs. If you mix them up, you may describe the theorem as if it were the cover itself. A good shortcut is: vertex cover is a graph set, König's Theorem is the equality that links that set to matchings.

Key things to remember about König's Theorem

  • König's Theorem says that in a bipartite graph, maximum matching size equals minimum vertex cover size.

  • The theorem only works for bipartite graphs, so check the graph structure before using it.

  • A matching chooses disjoint edges, while a vertex cover chooses vertices that touch every edge.

  • If you find one optimal set, the theorem lets you infer the size of the other optimal set.

  • The result is a bridge between graph theory and network flow, especially in assignment-style problems.

Frequently asked questions about König's Theorem

What is König's Theorem in Combinatorics?

König's Theorem says that for a bipartite graph, the size of the maximum matching is equal to the size of the minimum vertex cover. It is one of the main links between pairing problems and covering problems in graph theory. That equality is what makes it so useful in optimization.

Does König's Theorem work for any graph?

No, it is specific to bipartite graphs. If the graph is not bipartite, the equality between maximum matching and minimum vertex cover can fail. That is why the first step is always to check whether the graph can be split into two parts with edges only crossing between them.

How do you use König's Theorem on a problem?

First find a maximum matching, often by inspecting disjoint edges or using augmenting paths. Then use the theorem to know the minimum vertex cover must have the same size. In many problems, you can reverse the process too, building a cover of that size to prove your matching is optimal.

Is König's Theorem related to maximum flow?

Yes. Bipartite matching problems can be turned into flow networks, and that makes König's Theorem connect naturally to maximum flow and minimum cut ideas. In practice, this means a graph problem can sometimes be solved by drawing a source, sink, and directed edges, then reading the matching from the flow.