[{"@context":"http:\/\/schema.org\/","@type":"BlogPosting","@id":"https:\/\/wiki.edu.vn\/en\/wiki19\/maximally-matchable-edge-wikipedia\/#BlogPosting","mainEntityOfPage":"https:\/\/wiki.edu.vn\/en\/wiki19\/maximally-matchable-edge-wikipedia\/","headline":"Maximally-matchable edge – Wikipedia","name":"Maximally-matchable edge – Wikipedia","description":"before-content-x4 In graph theory, a maximally-matchable edge in a graph is an edge that is included in at least one","datePublished":"2017-02-16","dateModified":"2017-02-16","author":{"@type":"Person","@id":"https:\/\/wiki.edu.vn\/en\/wiki19\/author\/lordneo\/#Person","name":"lordneo","url":"https:\/\/wiki.edu.vn\/en\/wiki19\/author\/lordneo\/","image":{"@type":"ImageObject","@id":"https:\/\/secure.gravatar.com\/avatar\/c9645c498c9701c88b89b8537773dd7c?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/c9645c498c9701c88b89b8537773dd7c?s=96&d=mm&r=g","height":96,"width":96}},"publisher":{"@type":"Organization","name":"Enzyklop\u00e4die","logo":{"@type":"ImageObject","@id":"https:\/\/wiki.edu.vn\/wiki4\/wp-content\/uploads\/2023\/08\/download.jpg","url":"https:\/\/wiki.edu.vn\/wiki4\/wp-content\/uploads\/2023\/08\/download.jpg","width":600,"height":60}},"image":{"@type":"ImageObject","@id":"https:\/\/wikimedia.org\/api\/rest_v1\/media\/math\/render\/svg\/60c9aa966bee3a2a9bfe780f23fd724dfb528bbd","url":"https:\/\/wikimedia.org\/api\/rest_v1\/media\/math\/render\/svg\/60c9aa966bee3a2a9bfe780f23fd724dfb528bbd","height":"","width":""},"url":"https:\/\/wiki.edu.vn\/en\/wiki19\/maximally-matchable-edge-wikipedia\/","wordCount":5508,"articleBody":" (adsbygoogle = window.adsbygoogle || []).push({});before-content-x4In 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.[1] An alternative term is allowed edge.[2][3] (adsbygoogle = window.adsbygoogle || []).push({});after-content-x4A 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.Table of Contents (adsbygoogle = window.adsbygoogle || []).push({});after-content-x4Motivation[edit]Definition[edit]Algorithms for general graphs[edit]Algorithms for bipartite graphs[edit]Bipartite graphs with a perfect matching[edit]Bipartite graphs without a perfect matching[edit]References[edit]Motivation[edit]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.[1]Definition[edit]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[edit]Currently, the best known deterministic algorithm for general graphs runs in time (adsbygoogle = window.adsbygoogle || []).push({});after-content-x4O(VE){displaystyle O(VE)} .[2]There is a randomized algorithm for general graphs in time O~(V2.376){displaystyle {tilde {O}}(V^{2.376})} .[4]Algorithms for bipartite graphs[edit]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)}.[1]If a maximum matching is not known, it can be found by existing algorithms. In this case, the resulting overall runtime is O(V1\/2E){displaystyle O(V^{1\/2}E)} for general bipartite graphs and O((V\/log\u2061V)1\/2E){displaystyle O((V\/log V)^{1\/2}E)} for dense bipartite graphs with E=\u0398(V2){displaystyle E=Theta (V^{2})}.Bipartite graphs with a perfect matching[edit]The algorithm for finding maximally-matchable edges is simpler when the graph admits a perfect matching.[1]:\u200asub.2.1\u200aLet the bipartite graph be G=(X+Y,E){displaystyle G=(X+Y,E)}, where X=(x1,\u2026,xn){displaystyle X=(x_{1},ldots ,x_{n})} and Y=(y1,\u2026,yn){displaystyle Y=(y_{1},ldots ,y_{n})}. Let the perfect matching be M={(x1,y1),\u2026,(xn,yn)}{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:If e is in an alternating cycle, then either e is in M, or – by inverting the cycle – we get a new perfect matching that contains e. Hence, e is maximally-matchable.Conversely, if e is maximally-matchable, then it is in some perfect matching N. By taking the symmetric difference of M and N, we can construct an alternating cycle that contains e.Now, consider a directed graph H=(Z,E){displaystyle H=(Z,E)}, where Z=(z1,\u2026,zn){displaystyle Z=(z_{1},ldots ,z_{n})} and there is an edge from zi{displaystyle z_{i}} to zj{displaystyle z_{j}} in H iff i\u2260j{displaystyle ineq j} and there is an edge between xi{displaystyle x_{i}} and yj{displaystyle y_{j}} in G (note that by assumption such edges are not in M). Each M-alternating cycle in G corresponds to a directed cycle in H. A directed edge belongs to a directed cycle iff both its endpoints belong to the same strongly connected component. There are algorithms for finding all strongly-connected components in linear time. Therefore, the set of all maximally-matchable edges can be found as follows:Given the undirected bipartite graph G=(X+Y,E){displaystyle G=(X+Y,E)} and the perfect matching M, mark every edge (xi,yi){displaystyle (x_{i},y_{i})} in M as maximally-matchable.Construct the directed graph H=(Z,E){displaystyle H=(Z,E)} as above.Find all strongly-connected components in H.For each i, j such that (zi,zj){displaystyle (z_{i},z_{j})} are in the same component, mark the edge (xi,yj){displaystyle (x_{i},y_{j})} as maximally-matchable.Mark all remaining edges as not maximally-matchable.Bipartite graphs without a perfect matching[edit]Let the bipartite graph be G=(X+Y,E){displaystyle G=(X+Y,E)}, where X=(x1,\u2026,xn){displaystyle X=(x_{1},ldots ,x_{n})} and Y=(y1,\u2026,yn\u2032){displaystyle Y=(y_{1},ldots ,y_{n’})} and n\u2264n\u2032{displaystyle nleq n’}. Let the given maximum matching be M={(x1,y1),\u2026,(xt,yt)}{displaystyle M={(x_{1},y_{1}),ldots ,(x_{t},y_{t})}}, where t\u2264n\u2264n\u2032{displaystyle tleq nleq n’}. The edges in E can be categorized into two classes:Edges with both endpoints saturated by M. We call such edges M-upper.Edges with exactly one endpoint saturated by M. We call such edges M-lower.Note that there are no edges with both endpoints unsaturated by M, since this would contradict the maximality of M.Theorem: All M{displaystyle M}-lower edges are maximally-matchable.[1]:\u200asub.2.2\u200aProof: suppose e=(xi,yj){displaystyle e=(x_{i},y_{j})} where xi{displaystyle x_{i}} is saturated and yi{displaystyle y_{i}} is not. Then, removing e=(xi,yj){displaystyle e=(x_{i},y_{j})} from M{displaystyle M} and adding e=(xi,yj){displaystyle e=(x_{i},y_{j})} yields a new maximum-cardinality matching.Hence, it remains to find the maximally-matchable edges among the M-upper ones.Let H be the subgraph of G induced by the M-saturated nodes. Note that M is a perfect matching in H. Hence, using the algorithm of the previous subsection, it is possible to find all edges that are maximally-matchable in H. Tassa[1] explains how to find the remaining maximally-matchable edges, as well as how to dynamically update the set of maximally-matchable edges when the graph changes.References[edit] (adsbygoogle = window.adsbygoogle || []).push({});after-content-x4"},{"@context":"http:\/\/schema.org\/","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"item":{"@id":"https:\/\/wiki.edu.vn\/en\/wiki19\/#breadcrumbitem","name":"Enzyklop\u00e4die"}},{"@type":"ListItem","position":2,"item":{"@id":"https:\/\/wiki.edu.vn\/en\/wiki19\/maximally-matchable-edge-wikipedia\/#breadcrumbitem","name":"Maximally-matchable edge – Wikipedia"}}]}]