In graph theory, a maximally matchable edge in a graph is an edge that is included in at least one maximum-cardinality matching in the graph. An alternative term is allowed edge. A fundamental problem in matching theory is: given a graph G, find the set of all maximally matchable edges in G. This is equivalent to finding the union of all maximum matchings in G (this is different than the simpler problem of finding a single maximum matching in G). Several algorithms for this problem are known.
Motivation Consider a matchmaking agency with a pool of men and women. Given the preferences of the candidates, the agency constructs a bipartite graph where there is an edge between a man and a woman if they are compatible. The ultimate goal of the agency is to create as many compatible couples as possible, i.e., find a maximum-cardinality matching in this graph. Towards this goal, the agency first chooses an edge in the graph, and suggests to the man and woman on both ends of the edge to meet. Now, the agency must take care to only choose a maximally matchable edge. This is because, if it chooses a non-maximally matchable edge, it may get stuck with an edge that cannot be completed to a maximum-cardinality matching.
Definition Let G = (V,E) be a graph, where V are the vertices and E are the edges. A matching in G is a subset M of E, such that each vertex in V is adjacent to at most a single edge in M. A maximum matching is a matching of maximum cardinality. An edge e in E is called maximally matchable (or allowed) if there exists a maximum matching M that contains e.
Algorithms for general graphs Currently, the best known deterministic algorithm for general graphs runs in time O ( V E ) {\displaystyle O(VE)} . There is a randomized algorithm for general graphs in time O ~ ( V 2.376 ) {\displaystyle {\tilde {O}}(V^{2.376})} .
Algorithms for bipartite graphs
In bipartite graphs, if a single maximum-cardinality matching is known, it is possible to find all maximally matchable edges in linear time - O ( V + E ) {\displaystyle O(V+E)} . If a maximum matching is not known, it can be found by existing algorithms. In this case, the resulting overall runtime is O ( V 1 / 2 E ) {\displaystyle O(V^{1/2}E)} for general bipartite graphs and O ( ( V / log V ) 1 / 2 E ) {\displaystyle O((V/\log V)^{1/2}E)} for dense bipartite graphs with E = Θ ( V 2 ) {\displaystyle E=\Theta (V^{2})} .
Bipartite graphs with a perfect matching The algorithm for finding maximally matchable edges is simpler when the graph admits a perfect matching. Let the bipartite graph be G = ( X + Y , E ) {\displaystyle G=(X+Y,E)} , where X = ( x 1 , … , x n ) {\displaystyle X=(x_{1},\ldots ,x_{n})} and Y = ( y 1 , … , y n ) {\displaystyle Y=(y_{1},\ldots ,y_{n})} . Let the perfect matching be M = { ( x 1 , y 1 ) , … , ( x n , y n ) } {\displaystyle M=\{(x_{1},y_{1}),\ldots ,(x_{n},y_{n})\}} . Theorem: an edge e is maximally matchable if-and-only-if e is included in some M-alternating cycle - a cycle that alternates between edges in M and edges not in M. Proof:
… excerpt ends here. Continue reading the full article.


