Unit content
Bipartite graphs and matchings
A graph is bipartite when its vertices can be divided into two sets $L$ and $R$ so that every edge joins one side to the other.
Equivalently, a graph is bipartite exactly when it contains no odd cycle.
A matching is a set of edges that share no endpoints. It represents pairings in which each vertex can participate at most once.
A matching is perfect when every vertex is matched. More generally, a maximum matching contains as many edges as possible.
Bipartite matchings model assignment problems such as workers to tasks, students to projects or resources to requests. The graph defines which pairings are allowed; the matching selects a mutually compatible subset.