Follow your curiosity

What discovery has been shared with you?

Start with one fact. Explore it, go deeper, then follow whichever branch catches your imagination.

Choose subjects for a surprise

Exploring any topic

Begin your discovery

Your next discovery is one click away.

Choose one or more subjects above, or leave Any Topic selected and let curiosity decide.

Mathematics

Bipartite Graphs and Matching Theory

Quick fact

A graph is bipartite exactly when it has no odd-length cycles. This simple property makes many hard-seeming problems, like finding the largest set of non-conflicting pairs, solvable efficiently.

Why this is interesting

You have 3 workers and 4 tasks, each worker can only do certain tasks. How many tasks can you get done? What if you had to assign every worker? This is the classic job-assignment puzzle, and its solution lies in a simple but deep mathematical structure.

Read the full explanation

Understanding Bipartite Graphs and Matching Theory

Think of a bipartite graph as two groups of people—say, workers and tasks—where connections only go from one group to the other. You can visualize it with two columns of dots, and lines connecting dots only across the columns. This is a fundamental model for any situation where you pair items from two distinct sets: cars to parking spots, students to internships, or men to women in a matchmaking scenario. Now, a 'matching' is a set of these lines with no shared dots. For example, if you match worker 1 to task A, you cannot match worker 1 to task B in the same matching. The goal is often to find the largest possible matching—that is, to pair up as many as you can. The magic of bipartite graphs is that this seemingly simple problem has a very elegant solution. There is a simple condition, called Hall's condition, that tells you exactly when you can achieve a perfect matching—one that covers every dot on one side. It says: for any group of workers, the number of tasks they can collectively do must be at least as large as the group size. If that holds for every possible subset of workers, then a perfect matching exists.

A deeper explanation

Why does cutting a graph into two groups make things so much easier? Let's dive into the mechanics. First, bipartite graphs are precisely graphs with no odd cycles. This means you can always 2-color the vertices (think of painting them red and blue) so that no two adjacent vertices share a color. This property is not just a curiosity; it's what enables the efficient algorithms. The core algorithm for finding a maximum matching is based on 'augmenting paths'. Start with any matching, perhaps empty. Then look for a path that starts at an unmatched vertex on the left, alternates between non-matching and matching edges, and ends at an unmatched vertex on the right. If you find such a path, you can 'flip' it: turn non-matching edges into matching edges and vice versa. This increases the size of the matching by 1. If no such path exists, you have a maximum matching. This is exactly how the Hungarian algorithm for assignment problems works. But there's a deeper realization: the size of a maximum matching is equal to the size of a minimum vertex cover—a set of vertices that touches every edge. This is Kőnig's theorem, a beautiful example of duality in combinatorics. It also gives a polynomial-time check for perfect matchings via Hall's condition. So, bipartite matching is not just a practical tool; it's a showcase of how structure (bipartiteness) yields efficient solutions and deep theorems, in stark contrast to general graphs where matching is still solvable but much more complex.

Keep FACTREE close

Internet access is required. Updates arrive when you reopen or reload the app. You may need to sign in again in the installed app.