Definition
A simple graph is called bipartite if its vertex set can be partitioned into two disjoint sets and such that every edge in the graph connects a vertex in and a vertex in (so that no edge in connects either two vertices in or two vertices in ). When this condition holds. we call the pair a bipartition of the vertex set of .
A simple graph is bipartite if and only if it is possible to assign one of two different color to each vertex of the graph so that no two adjacent vertices are assigned the same color.
Matching
A matching in a simple graph is a subset of the set of edges of the graph such that no two edges are incident with the same vertex. In other words, a matching is a subset of edges such that if and are distinct edges of the matching, the and are distinct.
A vertex that is the endpoint of a matching is said to be matched in ; otherwise it is said to be unmatched. A maximum matching is a matching with the largest number of edges.
We say that a matching in a bipartite graph with bipartition is a complete matching from to if every vertex in is the endpoint of an edge in the matching, or equivalently, if .
Hall's Marriage Theorem
The bipartite graph with bipartition has a complete matching from to if and only if for all subsets of , where denotes the neighborhood of .
Complete Bipartite Graphs
A complete bipartite graph is a graph that has its vertex set partitioned into two subsets of and vertices, respectively with an edge between two vertices if and only if one vertex is in the first subset ant the other vertex is the second subset.