„Matching (Graphentheorie)“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen
[gesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
0g1o2i3k4e5n6 (Diskussion | Beiträge)
+sw
0g1o2i3k4e5n6 (Diskussion | Beiträge)
anfang für einen neuschrieb
Zeile 1: Zeile 1:
{{Dieser Artikel|Behandelt Matchings in der Graphentheorie. Andere Matchingprobleme in der Mathematik sind:<br/>
Eine '''Paarung''' ('''Matching''') ist in der [[Graphentheorie]] eine [[Teilmenge]] der [[Kante (Graphentheorie)|Kanten]] eines [[Graph (Graphentheorie)|Graphen]], in der keine zwei Kanten einen gemeinsamen [[Knoten (Graphentheorie)|Knoten]] besitzen. Paarungen haben innerhalb der [[Graphentheorie]] einen weiten Anwendungsbereich.
* Matchings in der Statistik, siehe ''[[Matching (Statistik)]]''.
*Matchings regulärer Ausdrücke, siehe ''[[Pattern Matching]]''.}}
Die Theorie um das Finden von '''Matchings''' in Graphen ist in der [[diskrete Mathematik|diskreten Mathematik]] ein umfangreiches Teilgebiet, das in die [[Graphentheorie]] eingeordnet wird.


Folgende Situation wird dabei betrachtet: Gegeben eine Menge von Dingen und zu diesen Dingen Informationen darüber, welche davon einander zugerodnet werden könnten. Ein Matching (in der Literatur manchmal auch ''Paarung'') ist dann als eine solche Auswahl aus den möglichen Zuordnungen definiert, die kein Ding mehr als einmal zuordnet.
== Definitionen ==


Die am häufigsten gestellten Fragen in dieser Situation sind dann die Folgenden:
Sei ''G''=(''V'',''E'') ein [[Ungerichteter Graph|ungerichteter]] [[Graph ohne Mehrfachkanten]] und ''M'' eine [[Teilmenge]] von ''E''. Man bezeichnet ''M'' als '''Paarung''', '''Matching''', '''Zuordnung''' oder '''unabhängige Kantenmenge''' von ''G'', wenn je zwei beliebige verschiedene [[Kante (Graphentheorie)|Kanten]] ''e''<sub>1</sub> und ''e''<sub>2</sub> [[disjunkt]] sind, d.h. mit verschiedenen [[Knoten (Graphentheorie)|Knoten]] [[Inzidenz (Graphentheorie)|inzident]] sind. Ist ein Knoten von <math>G</math> in einer Kante einer Paarung enthalten, so nennt man ihn von der Paarung '''überdeckt'''. Alternativ werden auch die Begriffe '''saturiert''' und '''gepaart''' verwendet.
# Wie finde ich ein Matching, das eine maximale Anzahl<ref group="A">Beachte den Unterschied zwischen einem [[maximales Element|maximalen Element]] und einem [[größtes Element|Maximum]]. Bei der [[#Formalisierung|Formalisierung]] wird darauf genauer eingegangen.</ref> an Dingen einander zuordnet?<br/>Dieses Problem ist das ''klassische Matchingproblem''.
# Gibt es ein Matching, das alle Dinge zuordnet? Wenn ja, wie viele?<br/>Solche Matchings heißen ''perfektes Matching''. Die Anzah der perfekten Matchings in einem Graphen <math>G</math> wird meistens mit <math>\Phi(G)</math> notiert.
# Angenommen, ich könnte quantifizieren „wie wichtig“ (oder „teuer“) mir die einzelnen Zuordnungen wären: Wie finde ich ein dann ein Matching, das eine maximale Zahl von Dingen zuordnet und dabei ein möglichst großes (oder kleines) Gewicht hat?<br/>Dieses Problem heißt ''gewichtetes Matchingproblem''. Zwischen einer Maximierungs- und einer Minimierungsaufgabe wird hier oftmals nicht unterschieden: Indem ich bei allen Gewichten (Kosten) das Vorzeichen vertausche kann ich beide Probleme ohne nennenswerten Aufwand ineinander überführen.
# Angenommen, ich hätte genau zwei Klassen von Dingen und angenommen, ich wüsste, dass es ausschließlich zwischen diesen Klassen mögliche Zuordnungen gibt. Werden die Probleme 1-3 dadurch einfacher?<br/>Dises Problem heißt ''[[Glossar_Graphentheorie#Bipartiter Graph|Bipartites]] (gewichtetes) Matchingproblem'' und ist ein viel diskutierter Spezialfall.
# Kann ich anderes Wissen, das ich über die Struktur der möglichen Zuordnungen habe, ähnlich wie in 4 geschickt benutzen, um die Probleme 1-3 effizienter zu lösen?


Die Theorie um die Matchings untersucht möglichst effiziente Lösungsverfahren dieser Probleme, klassifiziert diese nach ihrer „Schwierigkeit“ mit den Methoden der [[Komplexitätstheorie]] und stellt Beziehungen dieser Probleme zueinander und zu anderen Problemen in der Mathematik her.
Eine Paarung ''M'' von ''G'' nennt man '''maximal''' oder '''nicht erweiterbar''', wenn man keine weitere Kante ''e'' aus ''E'' zu ''M'' hinzufügen kann, so dass ''M'' zusammen mit ''e'' eine Paarung ist. Die folgenden drei Graphen sind Beispiele für maximale Paarungen:


== Formalisierung ==
:[[Datei:Maximal-matching.svg]]
<gallery class="float-right">
datei:maximal-simple.svg|Ein einfacher Graph mit einem maximalen Matching
datei:perfect-simple.svg|Der selbe Graph mit einem perfekten Matching
</gallery>
Das oben beschriebene Problem lässt sich wie folgt formalisieren. Gegeben ein endlicher, ungerichteter Graph <math>G=(V,E)</math>. Ein gültiges Matching ist dann eine Menge <math>M\subseteq E</math> derart, dass für alle Knoten <math>v\in V</math> gilt: <math>\operatorname{d}elta(v)\cap M \le 1</math>. (<math>\operatorname{d}elta(v)</math> notiert die Menge der zu <math>v</math> inzidenten Kanten aus <math>E</math>) Ein gültiges Matching heißt …
;maximal: falls es keine Kante <math>e\in E</math> derart gibt, dass <math>a\cup M</math> ein gültiges Matching ist. Maximale Matchings sind im Vergleich zu den folgenden Begriffen sehr einfach zu berechnen.
;maximum: falls <math>M</math> als Menge eine maximale Kardinalität unter allen gültigen Matchings von <math>G</math> hat. Maximum Matchings sind maximal. Die Mächtigkeit eines maximum Matchings wird ''Matchingzahl'' genannt und mit <math>\nu(G)</math> notiert.
;perfekt: falls für alle <math>v\in V</math> gilt: <math>\operatorname{d}elta(v)\cap M = 1</math>. Perfekte Matchings sind Maximum Matchings. (und damit auch maximal.) Perfekte Matchings können als ''[[graph Faktor|1-Faktoren]]'' eines Graphen, das heißt 1-reguläre aufspannende Teilgraphen, aufgefasst werden. Dieser Auffassung folgend sprechen manche Personen auch von ''faktorisierbaren Graphen'', wenn sie Graphen meinen, die einen 1-Faktor besitzen. Beide Sprechweisen sind etwa gleich weit verbreitet.<ref>[[#Yu & Liu|Yu & Liu]] ''4''</ref>


Für das gewichtete Matchingproblem spielt eine Kostenfunktion <math>c: E\to \mathbb{R}</math> eine Rolle. Ein gültiges Matching heißt dann …
Gibt es in ''G'' keine Paarung, die mehr Elemente als ''M'' enthält, so nennt man ''M'' '''größte Paarung''' oder '''Maximum-Matching'''. Die folgenden drei Graphen sind Beispiele für größte Paarungen:
;von maximalen Gewicht: falls <math>c(M) := \sum_{e\in M} c(e)</math> maximal unter allen gültigen Matchings von <math>G</math> ist.
;minimal maximum: falls <math>c(M)</math> minimal unter allen maximum Matchings ist.


== Historisches ==
:[[Datei:Maximum-matching-labels.svg]]
[[Datei:Sylvester counter.svg|thumb|[[James Joseph Sylvester|Sylvester]] gab für Aussage (2) ein Beispiel an, das zeigt, dass sie für Graphen mit drei oder mehr Brücken nicht mehr stimmt: Ein 3-regulärer Graph mit 16 Knoten, drei Brücken und keinem perfekten Matching.]]
Als eine der frühesten<ref>[[#Lovász & Plummer|Lovász & Plummer]] ''xi''</ref><ref>[[#Yu & Liu|Yu & Liu]] ''3''</ref> systematischen Untersuchungen von Matchings wird ein Artikel von [[Julius Peter Christian Petersen|Petersen]] angeführt, der 1891 über ''Die Theorie de reguldren Graphen''<ref>{{Cite journal
| volume = 15
| pages = 193-220
| last = Petersen
| first = Julius Peter Christian
| title = Die Theorie de reguldren Graphen
| journal = Acta Mathematica
| date = 1891
}}</ref> schrieb. Er untersuchte ein Zerlegungsproblem aus der Algebra, das [[David Hilbert|Hilbert]] 1889<ref>{{Cite journal
| volume = 33
| issue = 2
| pages = 223–226
| last = Hilbert
| first = David
| title = Über die Endlichkeit des Invariantensystems für binäre Grundformen
| journal = Mathematische Annalen
| date = 1889
}}</ref> gestellt hatte, indem er es als Graphenproblem formulierte.<ref>[[#Lovász & Plummer|Lovász & Plummer]] ''xi''</ref> Letzlich bewies er darin folgendes:
:Für alle Zahlen <math>k\in \mathbb{N}</math> kann jeder <math>2k</math>-reguläre Graph in disjunkte <math>2</math>-Faktoren zerlegt werden. (1)
:Jeder <math>3</math>-reguläre, zusammenhängende Graph mit weniger als drei Brücken besitzt ein perfektes Matching. (2)
Die Tatsache (2) lässt sich auch als eine leichte Verallgemeinerung des [[Eulerkreisproblem]]s formulieren.<ref group="A">Es ist nicht bekannt, ob Petersen mit den Arbeiten von [[Leonard Euler|Euler]] 1736 zu diesem Problem vertraut war ([[#Lovász & Plummer|Lovász & Plummer]] ''xi'')</ref>


Rückblickend<ref>[[#Diestel|Diestel]] ''43''</ref> erscheinen Pettersens Argumente, mit denen er das Obige bewies, kompliziert und umständlich. Bei der weiteren Untersuchung etwa durch [[Henry Roy Brahana|Brahana]] 1917<ref>{{Cite journal
| doi = 10.2307/1967667
| issn = 0003-486X
| volume = 19
| issue = 1
| pages = 59-63
| last = Brahana
| first = Henry Roy
| title = A Proof of Petersen's Theorem
| journal = The Annals of Mathematics
| series = Second Series
| accessdate = 2011
| date = 1917
}}</ref>, [[Alfred Errera|Errera]] 1922<ref>{{Cite journal
| volume = 36
| pages = 56–61
| last = Errera
| first = Alfred
| title = Une demonstration du théorème de Petersen
| journal = Mathesis
| date = 1922
}}</ref> und [[Orrin Frink|Frink]] 1926<ref>{{Cite journal
| doi = 10.2307/1967699
| issn = 0003-486X
| volume = 27
| issue = 4
| pages = 491-493
| last = Frink
| first = Orrin
| title = A Proof of Petersen's Theorem
| journal = The Annals of Mathematics
| series = Second Series
| accessdate = 2011
| date = 1926
}}</ref> sowie zusammenfassend durch [[Dénes Kőnig|Kőnig]] 1936<ref>{{Cite book
| last = Kőnig
| first = Dénes
| title = Theorie der endlichen und unendlichen Graphen; kombinatorische Topologie der Streckenkomplexe.
| date = 1936
}}</ref> wurden aber viele Methoden der modernen Graphenheorie entwickelt oder zuerst systematisch formuliert. Petersens Denkansatz wurde dann von [[Fridolin Bäbler|Bäbler]] 1938<ref>{{Cite journal
| doi = 10.1007/BF01214296
| issn = 0010-2571
| volume = 10
| issue = 1
| pages = 275-287
| last = Bäbler
| first = Fridolin
| title = Über die Zerlegung regulärer Streckenkomplexe ungerader Ordnung
| journal = Commentarii Mathematici Helvetici
| accessdate = 2011
| date = 1938
}}</ref> 1952<ref>{{Cite journal
| issn = 0010-2571
| volume = 26
| pages = 117-118
| last = Bäbler
| first = Fridolin
| title = Bemerkungen zu einer Arbeit von Herrn R. Cantoni.
| journal = Commentarii Mathematici Helvetici
| accessdate = 2011
| date = 1952
| url = http://www.digizeitschriften.de/dms/img/?PPN=GDZPPN002055910
}}</ref> und 1954<ref>{{Cite journal
| doi = 10.1007/BF02566927
| issn = 0010-2571
| volume = 28
| issue = 1
| pages = 155-161
| last = Bäbler
| first = Fridolin
| title = Über den Zerlegungssatz von Petersen
| journal = Commentarii Mathematici Helvetici
| accessdate = 2011
| date = 1954
}}</ref> sowie von [[Tibor Gallai|Gallai]] 1950<ref>{{Cite journal
| issn = 0236-5294
| volume = 1
| pages = 133-153
| last = Gallai
| first = Tibor
| title = On factorization of graphs
| journal = Acta Mathematica Academiae Scientiarum Hungaricae
| date = 1950
}}</ref>, [[Hans-Boris Belck|Belck]] 1950<ref>{{Cite journal
| doi = 10.1515/crll.1950.188.228
| issn = 0075-4102
| volume = 1950
| issue = 188
| pages = 228-252
| last = Belck
| first = Hans-Boris
| title = Reguläre Faktoren von Graphen.
| journal = Journal für die reine und angewandte Mathematik (Crelles Journal)
| accessdate = 2011
| date = 1950
}}</ref> und schließlich Tutte auf andere reguläre Graphen übertragen.


In moderen Lehrbüchern und Vorlesungen tauchen Petersens ursprüngliche Resultate, wenn überhaupt, meist nur noch als Folgerungen aus den Resultaten von Tutte oder Hall auf.<ref group="A">In [[#Diestel|Diestel]] ''43'' folgt die erste Aussage Satz aus dem Heiratssatz von Hall. Die zweite Aussage wird auf ''45'' auf den Satz von Tutte zurückgeführt. Der Beweis von (2) geht dabei auf [[#Lovász & Plummer|Lovász & Plummer]] ''110'' zurück. [[#Jungnickel|Jungnickel]] und [[#Yu & Liu|Yu & Liu]] verfahren mit (1) wie Diestel. (''216'' resp. ''16'') Aussage (2) steht bei [[#Yu & Liu|Yu & Liu]] als Zitat ohne Beweis (''51'') und bei [[#Jungnickel|Jungnickel]] als Übungsaufgabe. (''389'') In [[#Schrijver|Schrijver]] sind (1) und (2) Übungsaufgaben (''81'' und ''43'')</ref>
Ist jeder Knoten von ''V'' Element einer Kante von ''M'' (also von ''M'' überdeckt), so nennt man ''M'' eine '''perfekte Paarung'''. Die Anzahl der Elemente einer größten Paarung nennt man '''Paarungszahl''' bzw. '''Matchingzahl'''.
== Bipartite Matchings ==
Eines dieser frühen Resultate betrifft [[glossar Graphentheorie#Bipartiter Graph|bipartite Graphen]], die sich in der Folge als ein sehr natürlicher und aus heutiger Sicht für die Praxis zentraler Spezialfall herausgestellt haben. Kőnig und Egerváry untersuchten beide unabhängig voneinander das bipartite Matchingproblem und das [[Knotenüberdeckungsproblem]] und fande dabei heraus, dass beide Probleme in dem folgenden Sinn äquivalent sind:
:Die Größe einer minimalen Knotenüberdeckung und eines maximum Matching stimmen auf bipartiten Graphen überein. (3)
Dieser Satz wird meistens Kőnig zugeschrieben oder ''Min-Max-Theorem'' bzw. ''Dualitätssatz'' geannt. Beide bewiesen die Aussage für endliche Graphen. [[Ron Aharoni|Aharoni]] bewies 1984 die Aussage für [[überabzählbar]] unendliche Graphen.<ref>{{Cite journal
| doi = 10.1112/jlms/s2-29.1.1
| issn = 0024-6107
| volume = s2-29
| issue = 1
| pages = 1-12
| last = Aharoni
| first = Ron
| title = Kőnig's Duality Theorem for Infinite Bipartite Graphs
| journal = Journal of the London Mathematical Society
| accessdate = 2011
| date = 1984
}}</ref> Ein elementarer Beweis von (3) findet sich in [[#Lovász & Plummer|Lovász & Plummer]] ''43'', der von den meisten Lehrbüchern übernommen wurde. [[#Bondy & Murty|Bondy & Murty]] ''200'' führt den Satz auf ein Resultat der [[lineares Programm|linearen Programmierung]] zurück: Ist <math>A</math> die [[Inzidenzmatrix]] des Graphen <math>G</math>, dann lassen sich maximum Matchings als Lösungen von folgendem ganzzahligen linearen Programm auffassen:
:<math>\max ex \text{ unter } Ax\le 1 \land x\ge 0</math>
Dabei ist <math>e</math> der Vektor aus lauter Einsen. Das Programm des Knotenüberdeckungsproblems hat folgende Gestalt:
:<math>\min ye \text{ unter } yA\ge 1 \land y\ge 0</math>
Diese Programme haben eine sogenannte ''primal-dual''-Gestalt. Für Programme von dieser Gestalt wird in der Theorie der linearen Programme gezeigt, dass sie in ihren Optima übereinstimmen. Für bipartite Graphen lässt sich außerdem leicht zeigen, dass <math>A</math> „[[total unimodular]]“ ist, was in der Theorie der ganzzahligen linearen Programme ein Kriterium für die Existenz einer optimalen Lösung der Programme mit Einträgen nur aus <math>\{0,1\}</math> ist, also genau solchen Vektoren, die auch für ein Matching bzw. für eine Knotenüberdeckung stehen können. Dieser Primal-Dual-Ansatz der linearen Programme scheint zunächst wenig mit der Matching-Theorie zu tun zu haben, stellt sich aber als einer der fruchtbarsten Ansätze zur effizienten Berechnung von Matchings, insbesondere im gewichteten Fall, heraus.


Es gibt eine ganze Vielzahl von Sätzen, die zum Satz von Kőnig äquivalent sind.<ref>[[#Lovász & Plummer|Lovász & Plummer]] ''5-40''</ref><ref>Notizen zu einem Vortrag von Robert D. Borgersen: ''[http://www.robertborgersen.info/Presentations/GS-05R-1.pdf Equivalence of seven major theorems in combinatorics]'' November 26, 2004</ref><ref>{{Cite journal
Einen ''k''-[[Regulärer Graph|regulären]] [[Teilgraph]]en von ''G'' (das ist ein Teilgraph, dessen sämtliche Knoten sowohl den Eingangs- wie auch den Ausgangsgrad ''k'' haben) nennt man einen '''k-Faktor''', wenn er alle Knoten von ''G'' enthält. Die Kantenmenge eines 1-Faktors ist also offensichtlich eine perfekte Paarung.
| pages = 103–141
| last = Jacobs
| first = K.
| title = Der Heiratssatz
| journal = Selecta Mathematica I
| date = 1969
}}</ref> Darunter der [[Satz von Birkhoff und von Neumann]], der [[Satz von Dilworth]] und das [[Max-Flow-Min-Cut-Theorem]] für bipartite Graphen. Für die Matchingtheorie am interessantesten ist folgende Bedingung, die [[Philip Hall|Hall]] 1935<ref>{{Cite journal
| volume = 10
| pages = 26-30
| last = Hall
| first = Philip
| title = On representatives of subsets
| journal = Journal of London Mathematics Society
| date = 1935
}}</ref> angab, um bipartite Graphen mit perfektem Matching zu charakterisieren. Dieser Charakterisierungssatz ist ebenfalls äquivalent zum Satz von Kőnig.
:Ein bipartiter Graph mit Knotenpartitionenen <math>S\dot{\cup} T</math> und [[o.B.d.A]] <math>|S|\ge |T|</math> hat [[bikonditional|genau dann]] ein perfektes Matching, wenn für jede Auswahl von Knoten <math>H\subseteq T</math> gilt: <math>|N(H)|\ge |T|</math>. Dabei ist <math>N(H)</math> die [[Nachbarschaftsmenge]] von <math>H</math>. (4)
Aus (4) folgt schnell, dass sich unter den bipartiten Grapgen genau alle regulären Graphen <math>1</math>-faktorisieren lassen<ref>[[#Jungnickel|Jungnickel]] ''216''</ref> und die Aussage (1) von Petersen lässt elegant auf diese Folgerung zurückführen.<ref>[[#Diestel|Diestel]] ''43</ref> Eine Verallgemeinerung dieses Resultats liefert eine Formel für die Größe eines maximum Matchings, die sogenannte ''Kőnig-Ore'' Formel:<ref>[[#Lui|Lui]] ''9''</ref><ref>[[#Bondy & Murty|Bondy & Murty]] ''422''</ref>
:<math>\nu(G)= |S| - \max_{H\subseteq S}\{|H|-|N(H)|\}</math>


<!--
In [[Kantengewichteter Graph|kantengewichteten Graphen]] definiert man die Größe einer Paarung über die Summe ihrer [[Kantengewicht]]e. Als '''größte gewichtete Paarung''' eines Graphen ''G'' bezeichnet man dann eine Paarung, die diesen Wert maximiert.
Für den Satz gibt es viele Anwendungen in der Kombinatorik, wo man einen Teil der elementaren [[Transversalentheorie]] darauf aufbauen kann.<ref>[[#Diestel|Diestel]] ''218 ff''</ref> Beispie
:Ist <math>\mathbf{A}=(A_1,A_2\dots, A_n)</math> eine [[Familie]] von Teilmengen von <math>S</math>, dann hat <math>G</math> genau dann eine Transversale, wenn für alle <math>J\subseteq T</math> gilt: <math>\bigcup_{j\in J} A_j</math>
-->
=== Lösungsverfahren ===
{|class="float-right" style="width:30%"|
|+'''Algorithmus (I)'''<br/>
|


'''Eingabe''' <math>G</math> mit einem beliebigen Matching <math>M</math>
In [[Gerichteter Graph|gerichteten]] Graphen und solchen mit [[Graph mit Mehrfachkanten|Mehrfachkanten]] werden Paarungen nicht betrachtet. Ersteres, weil es bei Paarungen nicht auf die Richtung der Kanten ankommt, Letzteres, weil von den [[Mehrfachkante]]n nur eine für eine Paarung in Frage kommt. Es spielt also keine Rolle, ob man den Graphen betrachtet, der entsteht, wenn man die Vielfachheiten von Mehrfachkanten auf 1 reduziert oder ob man den Originalgraph mit Mehrfachkanten betrachtet.
1. '''repeat'''
2. suche verbessenden Pfad <math>P</math>
3. Falls gefunden: Augmentiere <math>M</math> entlang <math>P</math>.
4. '''untill''' Suche nach verbesserndem Pfad war erfolglos
'''Ausgabe''' <math>G</math> mit maximum Matching <math>M</math>
|}
Viele der folgenden Konzepte spielen in fast allen Lösungsverfahren von Matchingproblemen eine Rolle. Ist ein Graph <math>G</math> mit einem Matching <math>M</math> gegeben, dann heißt ein Knoten von <math>G</math> ''frei'' (In der Literatur auch ''ungepaart'', ''exponiert'', ''verfügbar'' …) falls er zu keiner Kante in <math>M</math> inzident ist. Andernfalls heißt der Knoten ''gesättigt''. Ein Pfad <math>P</math> in <math>G</math> heißt ''alternierend'', falls dieser abwechselnd Kanten aus <math>M</math> und aus <math>M^c</math> enthält. Falls diser Pfad in einem freien Knoten beginnt und endet, heißt der Pfad ''verbessernd'' oder auch ''augmentierend''. Die letzte Bezeichnung kommt von der Tatsache, dass <math>P</math> durch <math>M\oplus P</math><ref group="A"><math>\oplus</math> notiert die [[symmetrische Differenz]]</ref> ein größeres Matching als <math>M</math> liefert. Folgendes grundlegendes Resultat von [[Claude Berge|Berge]]h 1957<ref>{{Cite journal
| volume = 43
| issue = 9
| pages = 842-844
| last = Berge
| first = Claude
| title = Two theorems in graph theory
| journal = Proceedings of the National Academy of Sciences of the United States of America
| date = 1957-09-15
| url = http://www.pnas.org/content/43/9/842.full.pdf
}}</ref> motiviert das Studium von augmentierenden Pfaden.
:Ein Matching ist genau dann maximum, wenn es keinen verbessernden Pfad in <math>G</math> bezüglich <math>M</math> gibt.
Diese Bezeichnungen entsprechen genau der Sprache, die auch bei der Behandlung von [[Flüsse und Schnitte in Netzwerken|Flüssen in Netzwerken]] gebraucht wird. Das ist kein Zufall, denn Matchingprobleme lassen sich in der Sprache der Netzwerktheorie formulieren und mit den dort entwickelten Verfahren lösen. Im bipartiten Fall ist diese Zurückführung, wie das folgende Beispiel zeigt, sogar fast trivial.
<gallery perrow="3" caption="Beispiele" widths="300%">
datei:aug.svg|Ein einfacher Graph mit einem maximalen Matching. Hier sind die Knoten mit den Labels <math>1</math> und <math>5</math> exponiert. Der Pfad <math>(1~3~2)</math> ist ein alternierender Pfad und <math>(1~3~2~4~6~5)</math> ist ein verbessernder Pfad.
datei:aug2.svg|Derselbe Graph, der entang <math>(1~3~2~4~6~5)</math> verbessert wurde hat jetzt ein perfektes Matching.
datei:bip2maxflow.jpg|Reduktion vom bipartiten Matchingproblem auf [[Max-Flow]]. Gegeben ein Graph <math>G</math> mit Knotenmenge <math>V(G)=S\dot{\cup}T</math>. Konstruiere ein [[Flüsse_und_Schnitte_in_Netzwerken#Netzwerk|Netzwerk]] <math>N=(G',u,\sigma,\tau)</math>. Dabei ist <math>V(G')=V(G) \cup \{\sigma,\tau \}</math> und <math>E(G')= E(G)\cup\{(\sigma,s) : s\in S\} \cup \{(t,\tau): t\in T\} </math>. Außerdem ist <math>u</math> die Fortsetzung von der Kostenfunktion <math>c</math>, die alle neuen Kanten mit <code>Inf</code><ref group="A">Programmiersprachen, die das Konzept <code>Inf</code> nicht unterstützen, können die künstlichen Kanten stattdessen mit einer absurd großen Zahl belegen. <math>\sum_{e\in E(G)} c(e)</math> genügt in jedem Fall.</ref> belegt.
</gallery>
Mit dem Satz von Berge lässt sich auch gleich ein Algorithmus (I) zum Finden von maximum Matchings angeben.<ref>Aus didaktischen Gründen sehr stark vereinfacht nach [[#Burkard, Dell’Amico & Martello|Burkard, Dell’Amico & Martello]] ''38''. In der Referenz ist die Methode zum Finden eines verbessernden Pfades wesentlich detaillierter angegeben.</ref> Weil jeder verbessernde Pfad ein zu einem gegebenen Matching einen weiteren Knoten matcht und maximal <math>\frac{n}{2}</math> Knoten zu matchen sind, [[asymptotische Laufzeit|beschränkt sich die Zahl der Schleifendurchläufe asymptotisch]] durch <math>\mathcal{O}(n)</math>. Eine sehr Naïve Methode zum Finden verbessernder Pfade stellen sogenante [[Suchverfahren in Graphen|Graph Scan]]s dar, etwa eine Breitensuche (BFS) mit einer Laufzeit von <math>\mathcal{O}(n+m)</math>. Ferner ist <math>m\in \mathcal{O}(n^2)</math>, weil der Graph bipartit ist und damit ist die angegebene Methode in <math>\mathcal{O}(n^3)</math>
Einer der frühesten Beiträge zum berechnen von maximum Matchings, der über die oben angeführte naïve Methode hinausgeht, war der [[Algorithmus von Hopcroft und Karp]] 1973.<ref>{{Cite journal
| doi = 10.1137/0202019
| issn = 00975397
| volume = 2
| issue = 4
| pages = 225-231
| last = Hopcroft
| first = John E.
| coauthors = Richard M. Karp
| title = An <math>n^{5/2}</math> Algorithm for Maximum Matchings in Bipartite Graphs
| journal = SIAM Journal on Computing
| accessdate = 2011
| date = 1973
}}</ref> Die Grundidee folgt dem [[Algorithmus von Dinic]], der in jeder Phase, wo der Algorithmus nach einem verbessernden Pfad sucht, (Zeile 2) möglichst kurze Pfade und nach Möglichkeit „mehrere gleichzeitig“ sucht.


Alt, Blum, Mehlhorn & Paul 1991<ref>{{Cite journal
Die nachfolgenden Definitionen dienen dem Verständnis der unten gegebenen Aussagen und Sätze.
| doi = 16/0020-0190(91)90195-N
| issn = 0020-0190
| volume = 37
| issue = 4
| pages = 237-240
| last = Alt
| first = H.
| coauthors = N. Blum, K. Mehlhorn, M. Paul
| title = Computing a maximum cardinality matching in a bipartite graph in time <math>\mathcal{O}(n^{1.5\sqrt{m/\log n}}</math>)
| journal = Information Processing Letters
| accessdate = 2011
| date = 1991
}}</ref> schlagen eine Verbesserung von Hopcroft & Karp vor, indem sie ein Scanningverfahren für [[Adjazenzmatrizen]] nach Cheriyan, Hagerup, and Mehlhorn 1990<ref>{{Cite book
| publisher = Springer-Verlag
| isbn = 3-540-52826-1
| volume = 443
| pages = 235-248
| last = Cheriyan
| first = Joseph
| coauthors = Torben Hagerup, Kurt Mehlhorn
| title = Automata, Languages and Programming
| chapter = Can a maximum flow be computed in <math>\mathcal{O}(nm)</math> time?
| location = Berlin/Heidelberg
| date = 1990
}}</ref> anwenden. Eine einfache Beschriebung der Methode findet sich auch in [[#Burkard, Dell’Amico & Martello|Burkard, Dell’Amico & Martello]] ''47 ff''. Feder und Motwani 1991<ref>Kann nicht dargestellt werden {{vorlage|cite conference}} ist kaputt.<!--{{Cite conference
| publisher = ACM
| doi = 10.1145/103418.103424
| isbn = 0-89791-397-3
| pages = 123–133
| last = Feder
| first = Tomás
| coauthors = Rajeev Motwani
| title = Clique partitions, graph compression and speeding-up algorithms
| booktitle = Proceedings of the twenty-third annual ACM symposium on Theory of computing
| location = New York
| date = 1991
}}--></ref> haben eine Methode vorgeschlagen, die auf der Zerlegung von <math>G</math> in bipartite [[Clique (Graphentheorie)|Cliquen]] beruht und erreichen damit eine asymptotische Laufzeit von <math>\mathcal{O}( \sqrt{n} m \log(n^2 /m)/ \log n)</math>. Eine Methode die ''nicht'' auf der Idee augmentierender Pfade beruht, sondern sogenannte „starken [[Spannbaum|Spannbäume]]“ benutzt, haben Balinski & Gonzalez 1991<ref>{{Cite journal
| doi = 10.1002/net.3230210203
| issn = 1097-0037
| volume = 21
| issue = 2
| pages = 165-179
| last = Balinski
| first = M. L
| coauthors = J. Gonzalez
| title = Maximum matchings in bipartite graphs via strong spanning trees
| journal = Networks
| date = 1991
}}</ref> vorgeschlagen und erreichen damit eine Laufzeit von <math>\mathcal{O}(n^3)</math>,


[[Datei:Augmenting path.svg|thumb|left|200px|Ein Verbesserungspfad (blau) bezüglich eines Matchings (dicke Kanten).]]
Ein '''alternierender Pfad''' bezüglich einer Paarung ist ein [[Wege, Pfade, Zyklen und Kreise in Graphen|Pfad]], dessen Kanten abwechselnd zur Paarung und nicht zur Paarung gehören. Auf eine Kante der Paarung folgt also immer eine Kante, die nicht zur Paarung gehört und umgekehrt. Manche Autoren setzen zusätzlich voraus, dass ein alternierender Pfad mit einem Knoten beginnt, der von der Paarung nicht überdeckt wird. Beginnt und endet ein alternierender Pfad in unterschiedlichen Knoten, die von der Paarung nicht überdeckt werden, so spricht man von einem '''augmentierenden Pfad''' oder '''Verbesserungspfad'''.


== Allgemeiner Fall ==
Bezeichnet ''q''(''G'') die Anzahl der [[Zusammenhang von Graphen|Zusammenhangskomponenten]] mit ungerader Anzahl Knoten in einem Graphen ''G''=(''V'',''E''), so nennt man ''def''(''G''):=''q''(''G''-''S'')-|''S''| für ein Teilmenge ''S'' von ''V'' '''Defekt''' von ''G'', falls ''q''(''G''-''U'')-|''U''|≥''q''(''G''-''S'')-|''S''| für jede andere Teilmenge ''U'' von ''V'' gilt. ''G''-''S'' bzw. ''G''-''U'' bezeichnet dabei den Graphen, der entsteht, wenn man die Knoten von ''S'' bzw. ''U'' und ihre inzidenten Kanten aus ''G'' löscht.
Während Charakterisierungen von Matchings und effiziente Algorithmen zum Bestimmen relativ schnell nach der Formulierung von Matchings als Problem gefunden wurden, dauerte es bis 1947 bis Tutte<ref name="tutte">{{Cite journal
| volume = 1
| issue = 2
| pages = 107
| last = Tutte
| first = W. T
| title = The factorization of linear graphs
| journal = Journal of the London Mathematical Society
| date = 1947
}}</ref> eine Charakterisierung für Matchings in allgemeinen Graphen formulieren und Beweisen konnte. Aus diesem tiefliegenden Resultat lassen sich alle bisher besrochenen vergleichsweise leicht herleiten.<ref>[[#Lovász & Plummer|Lovász & Plummer]] ''84''</ref> Tutte benutzt die einfache Tatsache, dass eine Komponente mit ungerader Knotenzahl in einem Graphen kein perfektes Matching haben kann. Wenn also eine Knotenmenge <math>S</math> gefunden so gefunden werden kann, dass <math>G-S</math> mehr ungerade Komponenten als <math>S</math> Knoten hat, dann müsste für ein perfektes Matching aus jeder solcher Komponente wenigstens ein Knoten mit einem Knoten aus <math>S</math> gematcht werden und das kann nicht sein. Es stellt sich heraus, dass die Existenz einer solchen Menge <math>S</math> graphen ohne perfektes Matching nicht nur beschreibt, sondern charakterisiert:


:Ein Graph <math>G</math> hat genau dann ein perfektes Matching, wenn für jede Menge <math>T\subseteq V(G)</math> gilt: <math>c(G-T) \le T</math>. (<math>c</math> gibt die Anzahl der ungeraden Komponenten eines Graphen an.) (5)
== Beispiel ==
[[Datei:Matching_Beispiel_Qualifikationen.png|framed|right|Abb. 1: Qualifikationen]]


Eine solche Menge <math>T</math> heißt ''Tutte-Menge'' und die Bedingung in (5) heißt ''Tutte-Bedingung''. Dass sie [[notwendige Bedingung|notwendig]] für die Existenz perfekter Matching ist, wurde schon skizziert und es gibt mitlerweile viele Beweise dafür, dass die Bedingung hinreichend ist: Tuttes ursprünglicher Beweis formulierte das Problem als ein Matrix-Problem und benutzte die Idee der [[pfaffsche Determinante|Pfaffschen Determinante]].<ref name="tutte"/> [[Elementare Mathematik|Elementar]]e Abzählargumente wurden relativ rasch danach veröffentlicht, wie in Maunsell 1952,<ref>{{Cite journal
Dem [[Arbeitsamt]] liegen vier Stellenangebote und ebenso viele Stellengesuche vor. Dabei haben einige Arbeitssuchende mehrere Berufe angegeben, für die sie qualifiziert sind. Zur Veranschaulichung der Ausgangssituation kann ein [[bipartiter Graph]] gezeichnet werden (Abb. 1): dabei steht jeder Knoten in der linken Teilmenge für einen Arbeitssuchenden und jeder in der rechten für eine offene Stelle. Ist ein Arbeitssuchender mit einem Stellenangebot mittels einer Kante verbunden, so bedeutet das, dass er für den entsprechenden Beruf qualifiziert ist. So ist z. B. Laura in der Lage, als Kellnerin oder Stewardess zu arbeiten; Eduard und Klaus sind beide gelernte Schlosser und konkurrieren um die offene Stelle.
| volume = 1
| issue = 1
| pages = 127
| last = Maunsell
| first = F. G.
| title = A note on Tutte's paper “The factorization of linear graphs”
| journal = Journal of the London Mathematical Society
| date = 1952
}}</ref> Tutte 1952,<ref>{{Cite journal
| pages = 164-178
| first = W. T.
| last = Tutte
| title = The factors of graphs
| journal = Classic Papers in Combinatorics
| date = 1987
}}</ref> Gallai 1963,<ref name="gallai">{{Cite journal
| volume = 8
| pages = 135–139
| last = Gallai
| first = T.
| title = Neuer Beweis eines Tutte’schen Satzes, Magyar Tud
| journal = Akad. Kutató Int. Közl
| date = 1963
}}</ref> Halton 1966<ref>{{Cite journal
| doi = 10.1017/S0305004100040342
| volume = 62
| issue = 04
| pages = 683-684
| last = Halton
| first = John H.
| title = A Combinatorial Proof of a Theorem of Tutte
| journal = Mathematical Proceedings of the Cambridge Philosophical Society
| accessdate = 2011
| date = 1966
}}</ref> oder Balinski 1970.<ref>{{Cite journal
| volume = 12
| pages = 570-572
| last = Balinski
| first = M. L.
| title = On perfect matchings
| journal = SIAM Review
| date = 1970
}}</ref> Andere Beweise, wie Gallai 1963,<ref name="gallai"/> Anderson 1971<ref>{{Cite journal
| volume = 10
| issue = 3
| pages = 183–186
| last = Anderson
| first = I.
| title = Perfect matchings of a graph
| journal = Journal of Combinatorial Theory, Series B
| date = 1971
}}</ref> oder Marder 1973<ref>{{Cite journal
| doi = 10.1007/BF01428195
| issn = 0025-5831
| volume = 201
| issue = 4
| pages = 269-282
| last = Mader
| first = W.
| title = 1-Faktoren von Graphen
| journal = Mathematische Annalen
| date = 1973-12
}}</ref> verallgemeinern den Satz (4) von Hall systematisch. Ferner gibt es Beweise aus der Perspektive der Graphentheorie, die die Struktur von Graphen betrachten, die selbst kein Perfektes Matching besitzen, doch falls eine Kante ergänzt wird hat der resultierende Graph ein solches. Diesen Ansatz verfolgen etwa Hetyei 1972<ref>{{Cite journal
| volume = 16
| pages = 3-6
| last = Hetyei
| first = G.
| title = A new proof of a factorization theorem
| journal = Acta Acad. Paedagog. Civitate Pécs Ser. 6 Math. Phys. Chem. Tech
| date = 1972
}}</ref> oder Lovász 1975.<ref>{{Cite journal
| volume = 19
| issue = 3
| pages = 269-271
| last = Lovasz
| first = L.
| title = Three short proofs in graph theory
| journal = Journal of Combinatorial Theory, Series B
| date = 1975
}}</ref>
[[File:Blossom Counter.svg|thumb|Es genügt nicht, ''erst'' alle Blüten zu suchen und zu kontrahieren und ''dann'' eine Breitensuche zu fahren. Die Priorität der Fallunterscheidungen spielt eine Rolle für die Korrektheit des Algorithmus'.<ref>[[#Jungnickel|Jungnickel]] ''409''</ref> In diesem Beispiel enthält der kontrahierte Graph keinen augmentierenden Pfad, wohl aber der Ausgangsgraph.]]
=== Algorithmus von Edmonds ===
Der erste [[Polynomialzeit]]algorithmus für das klassische Matchingproblem stammt von [[Edmonds' Matching Algorithmus|Edmonds 1965]]<ref>{{Cite journal
| doi = 10.4153/CJM-1965-045-4
| volume = 17
| issue = 3
| pages = 449-467
| last = Edmonds
| first = J.
| title = Paths, trees, and flowers
| journal = Canadian Journal of mathematics
| date = 1965
}}</ref>. Die Grundstruktur der Methode entspricht Algorithmus (I): Sie sucht verbessernde Pfade und gibt ein maximum Matching zurück, falls kein solcher gefunden werden kann. Einen verbessernden Pfad zu finden, stellt sich hier aber als ein schwieriger heraus als im bipartiten Fall, weil einige neue Fälle auftreten können. Edmonds Suchmethode konstruiert nach und nach einen ''alternierenden [[Wald (Graphentheorie)|Wald]]''; Das ist ein kreisfreier Graph <math>F</math> mit so vielen Zusammenhangskomponenten, wie es freie Knoten gibt. Jeder freie Knoten ist [[Wurzel (Graphentheorie)|Wurzel]] <math>r_i</math> eines [[Baum (Graphentheorie)|Baumes]] <math>T\subset F</math> und <math>F</math> ist so kostruiert, dass für alle anderen Knoten <math>v\in F</math> der eindeutig bestimmte <math>r_i</math>-<math>v</math>-Pfad ein alternierender Pfad ist. Ein Knoten in <math>v\in F</math> heißt dann ''innen'' oder ''gerade'', falls <math>\operatorname{d}(r_i,v)\equiv 1\mod 2</math> und andernfalls ''außen'' oder ''ungerade''. (<math>\operatorname{d}</math> sei hier die Distanzfunktion in <math>T</math>; gebe also die Länge des eindeutig bestimmten <math>r_i</math>-<math>v</math>-Pfades an)


Es genügt die Betrachtung auf die Konstruktion eines alternierenden Baumes zu reduzieren. Falls diese Konstruktion keinen augmentierenden Pfad findet, wird sie mit einem neuen freien Knoten reinitialisiert und alle bereits betrachteten Kanten werden Ignoriert. Falls kein freier Knoten mehr existiert, dann existiert auch kein augmentierender Pfad. Diesen alternierenden Baum konstruiert Edmonds, idnem er ausgehend von einem freien Knoten nach und nach alle Kanten hinzufügt oder ignoriert. Dabei können für eine neue Kante <math>e=uv</math> (<math>u</math> gehöre bereits zum Baum) folgende Fälle auftreten:
[[Datei:Matching.png|framed|left|Abb. 2: Paarung]]


# Wenn <math>u</math> ein innerer Knoten ist, können nur Kanten <math>e\in M</math> zu <math>T</math> hinzugefügt werden, weil <math>T</math> alternierend werden soll. Diese Kante ist eindeutig durch <math>(u~\operatorname{match}(u))</math> gegeben.
Die Vermittlung von möglichst vielen Jobs ist ein Paarungs-Problem. Erneut werden die Stellengesuche und -angebote als Knoten eines bipartiten Graphen aufgefasst, diesmal stehen die Kanten jedoch für zugewiesene Jobs. Es sollen nun möglichst viele Kanten aus Abb. 1 übernommen werden, dabei darf an jedem Knoten allerdings höchstens eine Kante anliegen, denn natürlich kann für jedes Stellenangebot nur ein Bewerber angenommen werden, und jeder kann nur einen Job ausführen.
# Falls <math>u</math> ein äußerer Knoten ist, dann kann <math>v</math> …
## frei sein und noch nicht in <math>T</math>. Dann ist der <math>r</math>-<math>v</math> Pfad augmentierend.
## gepaart sein und weder <math>v</math> noch <math>\operatorname{match}(v)</math> ist in <math>T</math>. Dann können <math>v</math> und <math>\operatorname{match}(v)</math> zu <math>T</math> hinzugefügt werden.
## bereits in <math>T</math> als äußerer Knoten enthalten sein. Damit schließt als <math>e</math> einen geraden Kreis. Diese Kanten können ignoriert werden.<ref>[[#Jungnickel|Jungnickel]] ''396</ref>
## bereits in <math>T</math> als ein innerer Knoten enthalten sein. Dann schließt <math>e</math> einen ungeraden alternienden Kreis <math>B</math>; eine sogenannte ''Blüte''. Edmonds zieht die Knoten in <math>B</math> zu einem Pseudoknoten <math>b</math> zusammen mit den Inzidenzen aller Knoten aus <math>B</math>. (Diese Operation lässt sich auch beschreiben als „Bildung des [[Quotientengraph]]en” <math>G'=G/B</math>) Er reinitialisiert dann die Suche in <math>G'</math> und gibt ein Verfahren an, einen dort gefundenen augmentierenden Pfad <math>P'</math> zu einem augmentierenden Pfad <math>P</math> in <math>G</math> zu liften.


Blüten könen, anders als Fall <math>3</math> weder nicht werden.<ref>Betrachte [[:commona:file:Blossoms can't be ignored.svg|dieses Beispiel]] nach [[#Jungnickel|Jungnickel]] ''398''</ref> Der Knoten der die Blüte mit dem Baum verbindet lässt sich in das Schema der inneren und äußeren Knoten nicht einordnen. Die naheliegende Idee, ihn als „sowohl innen als auch außen“ zu behandeln führt zu einem falschen Algorithmus.<ref>Diese Idee wurde in {{Cite book
Kann der Mitarbeiter des Arbeitsamtes nicht alle Stellengesuche und -angebote bearbeiten, weil ihm nicht genug Zeit zur Verfügung steht, so vermittelt er unter Umständen weniger Jobs, als möglich wären. Im Beispiel (Abb. 2) wurden nur zwei Jobs vermittelt, und zwar soll Eduard Schlosser werden und Laura Stewardess. Man spricht dennoch von einer Paarung (Matching), denn niemandem wurden zwei Jobs vermittelt, und keine Arbeitsstelle wurde zwei Bewerbern zugewiesen.
| isbn = 3486239112
<br style="clear:both" />
| pages = 103-114
| last = Pape
| first = U.
| coauthors = D. Conradt
| title = Ausgewählte Operations Research Software in FORTRAN
| chapter = Maximales Matching in Graphen
| location = Oldenbourg
| date = 1979
}} vorgeschlagen. [[#Jungnickel|Jungnickel]] ''399'' hat ein Gegenbeispiel, das auf Christian Fremuth-Paeger zurückgeht.</ref> Die Behandlung von Blüten mit Kontraktion ist neben dem Ansatz von Berge ''die'' zentrale Idee von Edmonds' Algorithmus und Grundlage vieler späterer Verfahren. Bipartite Graphen enthalten keine ungeraden Kreise und damit auch keine Blüten. Edmonds' Algorithmus reduziert sich daher im bipartiten Fall auf die Methode von Munkres.


Man kenn ablesen, dass die skizzierte Methode von Edmonds einen Aufwand von <math>\mathcal{O}(n^4)</math> hat. In Fall <math>2.4</math> reinitialisiert Edmods die Suche und verwirft damit den bereits geleisteten Suchaufwand. [[Harold N. Gabow|Gabow]] 1976<ref>{{Cite journal
[[Datei:Maximales Matching.png|framed|right|Abb. 3: Größte Paarung]]
| doi = 10.1145/321941.321942
| issn = 00045411
| volume = 23
| issue = 2
| pages = 221-234
| last = Gabow
| first = Harold N.
| title = An Efficient Implementation of Edmonds' Algorithm for Maximum Matching on Graphs
| journal = Journal of the ACM
| accessdate = 2011
| date = 1976-04
}}</ref> und [[#Lawler|Lawler]] haben eine naïve Implementierung vorgeschlagen, die den Suchaufwand nicht verwirft und eine Laufzeit von <math>\mathcal{O}(n^3)</math> erreicht. Das Beispiel folgt bereits dieser Methode.


<gallery perrow="4" caption="Beispiel zu Edmonds" widths="300%">
Doch auch wenn das Arbeitsamt alle Möglichkeiten berücksichtigt, ist es in diesem Fall nicht möglich, allen Arbeitssuchenden einen Job zu vermitteln. Die größte Paarung ist also in diesem Fall keine perfekte Paarung. Die Gründe dafür sind, dass die beiden gelernten Schlosser um eine einzige Stelle konkurrieren, während Maria entweder Taxifahrerin oder Kellnerin wird und somit eine Stelle offen bleibt. Dass eine perfekte Paarung nicht möglich ist, lässt sich mit dem Heiratssatz von Hall (siehe unten) beweisen.
Datei:Edmonds-example-0.svg|Sei folgender Graph <math>G</math> mit freien Knoten <math>1</math> und <math>9</math> gegeben.
Datei:Edmonds-example-t0.svg|Der Algorithmus startet beim freien Knoten <math>1</math> und mit dem alternierenden Baum, der nur diesen Knoten enthält.


Das Arbeitsamt kann sich nun etwa entscheiden, Eduard die Stelle als Schlosser und Maria die als Taxifahrerin zu vermitteln (Abb. 3). Hier sieht man, dass es in einem Graphen mehr als eine größte Paarung geben kann: eine andere größte Paarung würde z. B. so aussehen, dass Klaus den Schlosserjob bekommt.


Datei:Edmonds-example-0.svg|<math>G</math> bleibt unverändert.
[[Datei:Perfektes Matching.png|framed|left|Abb. 4: Perfekte Paarung]]
Datei:Edmonds-example-t1.svg|Betrachte Kante <math>(1~2)</math>. <math>1</math> ist ein innerer Knoten und weder <math>2</math> noch <math>3</math> liegen in <math>T</math> und werden nach Fall <math>2.2</math> hinzugefügt.


Datei:Edmonds-example-0.svg|<math>G</math> bleibt unverändert.
Nun kontaktiert das Arbeitsamt Klaus und berichtet ihm von dem Problem. Um nicht arbeitslos zu werden, erklärt dieser sich bereit, statt als Schlosser als Taxifahrer zu arbeiten. Dadurch ist es möglich, jedem Arbeitssuchenden eine Stelle zu vermitteln (Abb. 4). Graphentheoretisch betrachtet inzidiert also jeder Knoten mit genau einer Kante. Man spricht von einer perfekten Paarung. Eine perfekte Paarung ist nur dann möglich, wenn genauso viele Stellengesuche wie -angebote vorliegen, und, wie wir gesehen haben, selbst dann nicht immer.
Datei:Edmonds-example-t2.svg|<math>5</math> und <math>6</math> sowie <math>4</math> und <math>14</math> werden wie eben nach Fall <math>2.2</math> hinzugefügt. <math>(4~6)</math> schließt einen geraden Kreis und wird nach <math>2.3</math> ignoriert. Die Kante <math>(4~5)</math> kann nach Fall <math>1.1</math> ignoriert werden.
<br style="clear:both" />


Datei:Edmonds-example-0.svg|<math>G</math> bleibt unverändert.
== Wichtige Aussagen und Sätze ==
Datei:Edmonds-example-t3.svg|Erneut werden nach Fall <math>2.2</math> die Paare <math>13~12</math>, <math>10~11</math> und <math>7~6</math> hinzugefügt.


Datei:Edmonds-example-0.svg|<math>G</math> zieht eine Blüte zusammen.
Eine maximale Paarung eines Graphen <math>G</math> enthält höchstens so viele Kanten wie eine größte Paarung in <math>G</math> (jede größte Paarung ist auch eine maximale Paarung). Andererseits enthält eine größte Paarung in <math>G</math> höchstens doppelt so viele Kanten wie eine maximale Paarung.
Datei:Edmonds-example-t4.svg|<math>13~10</math> wird nach Fall <math>1.1</math> ignoriert und <math>12~10</math> nach Fall <math>2.3</math>. <math>12~11</math> schließt eine Blüte <math>B</math>.


Datei:Edmonds-example-1.svg|Der reduzierte Graph <math>G'=G/B</math>.
Von [[Claude Berge]] (1957) stammt ein Satz, der besagt, dass eine Paarung <math>M</math> eines Graphen <math>G</math> genau dann eine größte Paarung von <math>G</math> ist, wenn es keinen augmentierenden Pfad zu <math>M</math> gibt. Auf diesem Satz beruht der [[:en:Edmonds's matching algorithm|Algorithmus von Edmonds]], der zu einem gegebenen Graphen ein größtes Matching findet, indem er nach augmentierenden Pfaden in einem Graphen sucht.
Datei:Edmonds-example-t5.svg|<math>b~7</math> wird nach <math>2.3</math> ignoriert.


Datei:Edmonds-example-2.svg|<math>G'</math> mit einer weiteren Blüte <math>B'</math>.
Man kann zeigen, dass die [[Knotenüberdeckungszahl]] eines Graphen mindestens so groß ist, wie seine Paarungszahl, aber höchstens so groß wie das 2-fache seiner Paarungszahl. Für [[Bipartiter Graph|bipartite Graphen]] konnte [[Dénes Kőnig|König]] (1931) zeigen, dass die Paarungszahl genau der Knotenüberdeckungszahl entspricht (dies ist der sog. [[Satz von König (Graphentheorie)|Satz von König]]). Dies impliziert insbesondere polynomielle Algorithmen zur Bestimmung der Knotenüberdeckungszahl und in Folge auch der [[Stabilitätszahl]] eines bipartiten Graphen. Im allgemeinen sind diese Probleme [[NP-Schwere|NP-schwer]].
Datei:Edmonds-example-t5.svg|<math>b~8</math> schließt wieder eine Blüte <math>B'</math>. Blüten können auch Pseudoknoten enthalten.


Datei:Edmonds-example-3.svg|Der weiter reduzierte Graph <math>G''=G'/B'</math>
In Graphen mit ungerader Knotenzahl gibt es keine perfekten Paarungen, da jede Paarung eine gerade Anzahl Knoten überdeckt. Die [[Defektformel]] von Berge (1958) besagt jedoch, dass das 2-fache der Paarungszahl eines Graphen ''G'' der Anzahl Knoten von ''G'' abzüglich seines Defektes entspricht. Daraus leitet sich ein Satz von [[William T. Tutte|Tutte]] (1947) ab, der besagt, dass ein Graph ''G''=(''V'',''E'') genau dann eine perfekte Paarung besitzt, wenn für jede Teilmenge ''S'' von ''V'' gilt: ''q''(''G''-''S'')≤|''S''|. Ebenfalls folgt direkt der schon 1891 von Petersen damals sehr aufwändig bewiesene Satz, dass ein [[kubischer Graph]] mit höchstens zwei trennenden Kanten ein perfektes Matching besitzt.
Datei:Edmonds-example-t7.svg|Von <math>b'</math> wird der freie Knoten <math>9</math> gefunden, der nach Fall <math>2.1</math> in <math>G''</math> den augmentierenden Pfad <math>P''=(1~2~b'~9)</math> schließt. Die Liftung dieses Pfades liefert <math>P=(1~2~3~5~6~7~8~9)</math> zunächst in <math>G'</math>, der aber auch schon in <math>G</math> selbst liegt.

</gallery>
In Graphen mit sehr vielen Kanten (sog. [[Dichter Graph|dichte Graphen]]) gibt es meistens auch eine (fast) perfekte Paarung. Algorithmisch interessant ist der Spezialfall, dass der Graph viele (fast) perfekte Paarungen besitzt und das Rechenverfahren die Aufgabe hat, eine solche Paarung zu finden.

'''weitere Algorithmen:'''
* [[Ungarische Methode]]
* [[Algorithmus von Hopcroft und Karp]]
* Auktionsalgorithmus nach Bertsekas (besonders für Graphen mit wenigen Kanten)

== Paarungen in bipartiten Graphen ==

Eine wichtige Klasse von Graphen bilden im Zusammenhang mit Paarungen die [[Bipartiter Graph|bipartiten Graphen]]. Für sie sind eine Reihe spezieller Sätze und Algorithmen bekannt.

=== Algorithmus von Hopcroft und Karp ===
In [[Bipartiter Graph|bipartiten Graphen]] lässt sich mit dem [[Algorithmus von Hopcroft und Karp]] in <math>O(\sqrt{n}m)</math> eine größte Paarung finden. Der Algorithmus basiert auf der Idee, simultan mehrere Verbesserungspfade zu finden.

=== Satz von Hall (Heiratssatz) ===
Der so genannte '''Heiratssatz''' von [[Philip Hall]] (1935) besagt, dass in bipartiten Graphen <math>G</math> mit Bipartition <math>\{A,B\}</math> genau dann eine Paarung existiert, die jeden Knoten aus <math>A</math> überdeckt, falls für jede Teilmenge <math>S</math> von <math>A</math> gilt, dass ihre [[Nachbarschaft und Grad in Graphen|Nachbarschaft]] mindestens so groß ist wie <math>S</math> selbst. Der Name ''Heiratssatz'' rührt daher, dass es nach diesem Satz möglich ist, jede Frau zu verheiraten, falls es für jede Gruppe von Frauen mindestens ebensoviele Männer gibt, die sich für wenigstens eine der Frauen in der Gruppe interessieren.

Der Satz von Hall hat einige direkt ableitbare Konsequenzen. Da in [[Regulärer Graph|regulären]] bipartiten Graphen <math>|A|=|B|</math> gilt, ist die Heiratsbedingung <math>|N(S)| \geq |S|</math> für jede Teilmenge <math>S</math> von <math>A</math> oder <math>B</math> immer erfüllt, sodass jeder reguläre bipartite Graph eine perfekte Paarung besitzt. Diesen Satz konnte König schon 1916 beweisen (damals natürlich unabhängig vom Heiratssatz). Mit Induktion über <math>k</math> folgt dann auch, dass jeder <math>k</math>-reguläre bipartite Graph <math>k</math> disjunkte Paarungen besitzt, die zusammengenommen seine Kantenmenge ergeben. Hier wird der Sinn der Definition eines <math>k</math>-Faktors deutlich.

=== Zusammenhang zwischen größter Paarung und maximalem Fluss ===
In einem bipartiten Graphen lässt sich die Berechnung einer größten Paarung auf die Berechnung eines [[Maximaler Fluss|maximalen Flusses]] zurückführen. Dazu wird der bipartite Graph zu einem [[Glossar Graphentheorie#Netzwerk|Netzwerk]] erweitert und in diesem Netzwerk ein maximaler Fluss berechnet. Diejenigen Kanten des bipartiten Graphen, die im Netzwerk einen von Null verschiedenen Flusswert haben, bilden eine größte Paarung. Für die Berechnung eines maximalen Flusses stehen mehrere Algorithmen zur Verfügung, die im Artikel [[Flüsse und Schnitte in Netzwerken]] aufgeführt sind.

Ein bipartiter Graph <math>G = (A\ \dot{\cup}\ B, E)</math> wird durch die folgenden Schritte zu einem Netzwerk erweitert.
* Hinzufügen einer Quelle <math>s</math> mit Kanten <math>(s, a)</math> zu jedem Knoten von <math>A</math> und einer Senke <math>t</math> mit Kanten <math>(b, t)</math> von jedem Knoten aus <math>B</math>.
* Die ungerichteten Kanten werden durch gerichtete in Richtung der Senke ersetzt.
* Die Kapazität jeder Kante des Netzwerks ist 1.

Das folgende Beispiel zeigt den bipartiten Graphen und das zugehörige Netzwerk.

[[Datei:Maximale-paarung.png]]

Auf dem Netzwerk errechnet der [[Algorithmus von Dinic]] in Zeit <math>\mathcal O(|V| \cdot |E|)</math> einen maximalen Fluss, der genau die Größe der größten Paarung des ursprünglichen Graphen ist. Die lineare Laufzeit (gegenüber der im allgemeinen Fall quadratischen Laufzeit des Algorithmus von Dinic) ist hier auf die einheitlichen Kantengewichte zurückzuführen, die es dem Algorithmus ermöglichen, innerhalb einer Iteration alle Kanten gleichzeitig blockieren zu lassen.


== Literatur ==
== Literatur ==
{{Anker|Lovász & Plumer}}
*{{Cite book
| edition = 1
| publisher = Elsevier Science und Akadémiai Kiadó Budapest
| isbn = 0444879161
| last = Lovász
| first = L.
| coauthors = M. D Plummer
| title = Matching Theory
| location = Budapest
| series = Annals of Discrete Mathemetics
| date = 1986
}}{{Anker|Diestel}}
*{{Cite book
| edition = 3., neu bearb. und erw. A.
| publisher = Springer, Berlin
| isbn = 3540213910
| last = Diestel
| first = Reinhard
| title = Graphentheorie
| date = 2006
| url = http://diestel-graph-theory.com/german/index.html
}}{{Anker|Jungnickel}}
*{{Cite book
| edition = 3
| publisher = Springer
| isbn = 9783540727798
| volume = 5
| last = Jungnickel
| first = Dieter
| title = Graphs, Networks and Algorithms
| series = Algorithms and Computation in Mathematics
| date = 2007
}}{{Anker|Yu & Liu}}
*{{Cite book
| edition = 1
| publisher = Springer
| isbn = 3540939512
| last = Yu
| first = Qinglin Roger
| coauthors = Guizhen Liu
| title = Graph Factors and Matching Extensions
| location = Beijing
| date = 2009
}}{{Anker|Schrijver}}
*{{Cite book
| publisher = Springer
| isbn = 3540443894
| volume = A
| last = Schrijver
| first = Alexander
| title = Combinatorial Optimization – Polyherda and Efficiency
| location = Amsterdam
| series = Algorithms and Combinatorics
| date = 2003
}}{{Anker|Bondy & Murty}}
*{{Cite book
| publisher = Springer
| isbn = 1849966907
| last = Bondy
| first = Adrian
| coauthors = U.S.R. Murty
| title = Graph Theory
| series = Graduate Texts in Mathematics
| date = 2008
| url = http://blogs.springer.com/bondyandmurty/
}}{{Anker|Burkard, Dell’Amico & Martello}}
*{{Cite book
| publisher = Society for Industrial and Applied Mathematics
| isbn = 978-0-898716-63-4
| last = Burkard
| first = Rainer
| coauthors = Mauro Dell'Amico, Silvano Martello
| title = Assignment Problems
| location = Philadelphia
| date = 2009
| url = http://www.assignmentproblems.com/
}}{{Anker|Johnson}}
*{{Cite book
| publisher = American Mathematical Society
| isbn = 0821865986
| last = Johnson
| first = David S.
| title = Network Flows and Matching: First Dimacs Implementation Challenge
| date = 1993
}}{{Anker|Lawler}}
*{{Cite book
| publisher = Dover Publications
| isbn = 0030848660
| last = Lawler
| first = Eugene
| title = Combinatorial Optimization: Networks and Matroids
| location = Rocquencourt
| date = 1976
}}
;Historisch:{{Anker|Kőnig}}
*{{Cite book
| edition = 1. Auflage 1986
| publisher = Teubner Verlagsgesellschaft
| isbn = 3322003035
| last = Kőnig
| first = Dénes
| title = Theorie der endlichen und unendlichen Graphen – kombinatorische Topologie der Streckenkomplexe.
| location = Leipzig
| series = Teubner Archiv zur Mathematik
| date = 1936
}}{{Anker|Biggs, Lloyd & Wilson}}
*{{Cite book
| publisher = Oxford University Press, USA
| isbn = 0198539169
| last = Biggs
| first = Norman L.
| coauthors = E. Keith Lloyd, Robin J. Wilson
| title = Graph Theory 1736-1936
| date = 1999
}}


== Einzelnachweise ==
* Reinhard Diestel: ''[http://www.math.uni-hamburg.de/home/diestel/books/graphentheorie/ Graphentheorie.]'' 3. Auflage. Springer, Heidelberg 2005. ISBN 3-540-67656-2
<references/>

;Ankermungen
[[Kategorie:Graphentheorie]]
<references group="A"/>
{{Schreibwettbewerb}}
[[cs:Párování grafu]]
[[en:Matching (graph theory)]]
[[es:Matching]]
[[eu:Parekatze (grafo teoria)]]
[[fr:Couplage (théorie des graphes)]]
[[he:שידוך (תורת הגרפים)]]
[[ja:マッチング (グラフ理論)]]
[[ko:매칭]]
[[pl:Skojarzenie (teoria grafów)]]
[[pt:Acoplamento (teoria dos grafos)]]
[[ru:Паросочетание]]
[[sv:Matchning]]
[[zh:匹配 (图论)]]

Version vom 12. September 2011, 00:43 Uhr

Die Theorie um das Finden von Matchings in Graphen ist in der diskreten Mathematik ein umfangreiches Teilgebiet, das in die Graphentheorie eingeordnet wird.

Folgende Situation wird dabei betrachtet: Gegeben eine Menge von Dingen und zu diesen Dingen Informationen darüber, welche davon einander zugerodnet werden könnten. Ein Matching (in der Literatur manchmal auch Paarung) ist dann als eine solche Auswahl aus den möglichen Zuordnungen definiert, die kein Ding mehr als einmal zuordnet.

Die am häufigsten gestellten Fragen in dieser Situation sind dann die Folgenden:

  1. Wie finde ich ein Matching, das eine maximale Anzahl[A 1] an Dingen einander zuordnet?
    Dieses Problem ist das klassische Matchingproblem.
  2. Gibt es ein Matching, das alle Dinge zuordnet? Wenn ja, wie viele?
    Solche Matchings heißen perfektes Matching. Die Anzah der perfekten Matchings in einem Graphen wird meistens mit notiert.
  3. Angenommen, ich könnte quantifizieren „wie wichtig“ (oder „teuer“) mir die einzelnen Zuordnungen wären: Wie finde ich ein dann ein Matching, das eine maximale Zahl von Dingen zuordnet und dabei ein möglichst großes (oder kleines) Gewicht hat?
    Dieses Problem heißt gewichtetes Matchingproblem. Zwischen einer Maximierungs- und einer Minimierungsaufgabe wird hier oftmals nicht unterschieden: Indem ich bei allen Gewichten (Kosten) das Vorzeichen vertausche kann ich beide Probleme ohne nennenswerten Aufwand ineinander überführen.
  4. Angenommen, ich hätte genau zwei Klassen von Dingen und angenommen, ich wüsste, dass es ausschließlich zwischen diesen Klassen mögliche Zuordnungen gibt. Werden die Probleme 1-3 dadurch einfacher?
    Dises Problem heißt Bipartites (gewichtetes) Matchingproblem und ist ein viel diskutierter Spezialfall.
  5. Kann ich anderes Wissen, das ich über die Struktur der möglichen Zuordnungen habe, ähnlich wie in 4 geschickt benutzen, um die Probleme 1-3 effizienter zu lösen?

Die Theorie um die Matchings untersucht möglichst effiziente Lösungsverfahren dieser Probleme, klassifiziert diese nach ihrer „Schwierigkeit“ mit den Methoden der Komplexitätstheorie und stellt Beziehungen dieser Probleme zueinander und zu anderen Problemen in der Mathematik her.

Formalisierung

Das oben beschriebene Problem lässt sich wie folgt formalisieren. Gegeben ein endlicher, ungerichteter Graph . Ein gültiges Matching ist dann eine Menge derart, dass für alle Knoten gilt: . ( notiert die Menge der zu inzidenten Kanten aus ) Ein gültiges Matching heißt …

maximal
falls es keine Kante derart gibt, dass ein gültiges Matching ist. Maximale Matchings sind im Vergleich zu den folgenden Begriffen sehr einfach zu berechnen.
maximum
falls als Menge eine maximale Kardinalität unter allen gültigen Matchings von hat. Maximum Matchings sind maximal. Die Mächtigkeit eines maximum Matchings wird Matchingzahl genannt und mit notiert.
perfekt
falls für alle gilt: . Perfekte Matchings sind Maximum Matchings. (und damit auch maximal.) Perfekte Matchings können als 1-Faktoren eines Graphen, das heißt 1-reguläre aufspannende Teilgraphen, aufgefasst werden. Dieser Auffassung folgend sprechen manche Personen auch von faktorisierbaren Graphen, wenn sie Graphen meinen, die einen 1-Faktor besitzen. Beide Sprechweisen sind etwa gleich weit verbreitet.[1]

Für das gewichtete Matchingproblem spielt eine Kostenfunktion eine Rolle. Ein gültiges Matching heißt dann …

von maximalen Gewicht
falls maximal unter allen gültigen Matchings von ist.
minimal maximum
falls minimal unter allen maximum Matchings ist.

Historisches

Sylvester gab für Aussage (2) ein Beispiel an, das zeigt, dass sie für Graphen mit drei oder mehr Brücken nicht mehr stimmt: Ein 3-regulärer Graph mit 16 Knoten, drei Brücken und keinem perfekten Matching.

Als eine der frühesten[2][3] systematischen Untersuchungen von Matchings wird ein Artikel von Petersen angeführt, der 1891 über Die Theorie de reguldren Graphen[4] schrieb. Er untersuchte ein Zerlegungsproblem aus der Algebra, das Hilbert 1889[5] gestellt hatte, indem er es als Graphenproblem formulierte.[6] Letzlich bewies er darin folgendes:

Für alle Zahlen kann jeder -reguläre Graph in disjunkte -Faktoren zerlegt werden. (1)
Jeder -reguläre, zusammenhängende Graph mit weniger als drei Brücken besitzt ein perfektes Matching. (2)

Die Tatsache (2) lässt sich auch als eine leichte Verallgemeinerung des Eulerkreisproblems formulieren.[A 2]

Rückblickend[7] erscheinen Pettersens Argumente, mit denen er das Obige bewies, kompliziert und umständlich. Bei der weiteren Untersuchung etwa durch Brahana 1917[8], Errera 1922[9] und Frink 1926[10] sowie zusammenfassend durch Kőnig 1936[11] wurden aber viele Methoden der modernen Graphenheorie entwickelt oder zuerst systematisch formuliert. Petersens Denkansatz wurde dann von Bäbler 1938[12] 1952[13] und 1954[14] sowie von Gallai 1950[15], Belck 1950[16] und schließlich Tutte auf andere reguläre Graphen übertragen.

In moderen Lehrbüchern und Vorlesungen tauchen Petersens ursprüngliche Resultate, wenn überhaupt, meist nur noch als Folgerungen aus den Resultaten von Tutte oder Hall auf.[A 3]

Bipartite Matchings

Eines dieser frühen Resultate betrifft bipartite Graphen, die sich in der Folge als ein sehr natürlicher und aus heutiger Sicht für die Praxis zentraler Spezialfall herausgestellt haben. Kőnig und Egerváry untersuchten beide unabhängig voneinander das bipartite Matchingproblem und das Knotenüberdeckungsproblem und fande dabei heraus, dass beide Probleme in dem folgenden Sinn äquivalent sind:

Die Größe einer minimalen Knotenüberdeckung und eines maximum Matching stimmen auf bipartiten Graphen überein. (3)

Dieser Satz wird meistens Kőnig zugeschrieben oder Min-Max-Theorem bzw. Dualitätssatz geannt. Beide bewiesen die Aussage für endliche Graphen. Aharoni bewies 1984 die Aussage für überabzählbar unendliche Graphen.[17] Ein elementarer Beweis von (3) findet sich in Lovász & Plummer 43, der von den meisten Lehrbüchern übernommen wurde. Bondy & Murty 200 führt den Satz auf ein Resultat der linearen Programmierung zurück: Ist die Inzidenzmatrix des Graphen , dann lassen sich maximum Matchings als Lösungen von folgendem ganzzahligen linearen Programm auffassen:

Dabei ist der Vektor aus lauter Einsen. Das Programm des Knotenüberdeckungsproblems hat folgende Gestalt:

Diese Programme haben eine sogenannte primal-dual-Gestalt. Für Programme von dieser Gestalt wird in der Theorie der linearen Programme gezeigt, dass sie in ihren Optima übereinstimmen. Für bipartite Graphen lässt sich außerdem leicht zeigen, dass total unimodular“ ist, was in der Theorie der ganzzahligen linearen Programme ein Kriterium für die Existenz einer optimalen Lösung der Programme mit Einträgen nur aus ist, also genau solchen Vektoren, die auch für ein Matching bzw. für eine Knotenüberdeckung stehen können. Dieser Primal-Dual-Ansatz der linearen Programme scheint zunächst wenig mit der Matching-Theorie zu tun zu haben, stellt sich aber als einer der fruchtbarsten Ansätze zur effizienten Berechnung von Matchings, insbesondere im gewichteten Fall, heraus.

Es gibt eine ganze Vielzahl von Sätzen, die zum Satz von Kőnig äquivalent sind.[18][19][20] Darunter der Satz von Birkhoff und von Neumann, der Satz von Dilworth und das Max-Flow-Min-Cut-Theorem für bipartite Graphen. Für die Matchingtheorie am interessantesten ist folgende Bedingung, die Hall 1935[21] angab, um bipartite Graphen mit perfektem Matching zu charakterisieren. Dieser Charakterisierungssatz ist ebenfalls äquivalent zum Satz von Kőnig.

Ein bipartiter Graph mit Knotenpartitionenen und o.B.d.A hat genau dann ein perfektes Matching, wenn für jede Auswahl von Knoten gilt: . Dabei ist die Nachbarschaftsmenge von . (4)

Aus (4) folgt schnell, dass sich unter den bipartiten Grapgen genau alle regulären Graphen -faktorisieren lassen[22] und die Aussage (1) von Petersen lässt elegant auf diese Folgerung zurückführen.[23] Eine Verallgemeinerung dieses Resultats liefert eine Formel für die Größe eines maximum Matchings, die sogenannte Kőnig-Ore Formel:[24][25]

Lösungsverfahren

Algorithmus (I)
Eingabe  mit einem beliebigen Matching 
1. repeat
2.   suche verbessenden Pfad 
3.   Falls gefunden: Augmentiere  entlang .
4. untill Suche nach verbesserndem Pfad war erfolglos
Ausgabe  mit maximum Matching 

Viele der folgenden Konzepte spielen in fast allen Lösungsverfahren von Matchingproblemen eine Rolle. Ist ein Graph mit einem Matching gegeben, dann heißt ein Knoten von frei (In der Literatur auch ungepaart, exponiert, verfügbar …) falls er zu keiner Kante in inzident ist. Andernfalls heißt der Knoten gesättigt. Ein Pfad in heißt alternierend, falls dieser abwechselnd Kanten aus und aus enthält. Falls diser Pfad in einem freien Knoten beginnt und endet, heißt der Pfad verbessernd oder auch augmentierend. Die letzte Bezeichnung kommt von der Tatsache, dass durch [A 4] ein größeres Matching als liefert. Folgendes grundlegendes Resultat von Bergeh 1957[26] motiviert das Studium von augmentierenden Pfaden.

Ein Matching ist genau dann maximum, wenn es keinen verbessernden Pfad in bezüglich gibt.

Diese Bezeichnungen entsprechen genau der Sprache, die auch bei der Behandlung von Flüssen in Netzwerken gebraucht wird. Das ist kein Zufall, denn Matchingprobleme lassen sich in der Sprache der Netzwerktheorie formulieren und mit den dort entwickelten Verfahren lösen. Im bipartiten Fall ist diese Zurückführung, wie das folgende Beispiel zeigt, sogar fast trivial.

Mit dem Satz von Berge lässt sich auch gleich ein Algorithmus (I) zum Finden von maximum Matchings angeben.[27] Weil jeder verbessernde Pfad ein zu einem gegebenen Matching einen weiteren Knoten matcht und maximal Knoten zu matchen sind, beschränkt sich die Zahl der Schleifendurchläufe asymptotisch durch . Eine sehr Naïve Methode zum Finden verbessernder Pfade stellen sogenante Graph Scans dar, etwa eine Breitensuche (BFS) mit einer Laufzeit von . Ferner ist , weil der Graph bipartit ist und damit ist die angegebene Methode in

Einer der frühesten Beiträge zum berechnen von maximum Matchings, der über die oben angeführte naïve Methode hinausgeht, war der Algorithmus von Hopcroft und Karp 1973.[28] Die Grundidee folgt dem Algorithmus von Dinic, der in jeder Phase, wo der Algorithmus nach einem verbessernden Pfad sucht, (Zeile 2) möglichst kurze Pfade und nach Möglichkeit „mehrere gleichzeitig“ sucht.

Alt, Blum, Mehlhorn & Paul 1991[29] schlagen eine Verbesserung von Hopcroft & Karp vor, indem sie ein Scanningverfahren für Adjazenzmatrizen nach Cheriyan, Hagerup, and Mehlhorn 1990[30] anwenden. Eine einfache Beschriebung der Methode findet sich auch in Burkard, Dell’Amico & Martello 47 ff. Feder und Motwani 1991[31] haben eine Methode vorgeschlagen, die auf der Zerlegung von in bipartite Cliquen beruht und erreichen damit eine asymptotische Laufzeit von . Eine Methode die nicht auf der Idee augmentierender Pfade beruht, sondern sogenannte „starken Spannbäume“ benutzt, haben Balinski & Gonzalez 1991[32] vorgeschlagen und erreichen damit eine Laufzeit von ,


Allgemeiner Fall

Während Charakterisierungen von Matchings und effiziente Algorithmen zum Bestimmen relativ schnell nach der Formulierung von Matchings als Problem gefunden wurden, dauerte es bis 1947 bis Tutte[33] eine Charakterisierung für Matchings in allgemeinen Graphen formulieren und Beweisen konnte. Aus diesem tiefliegenden Resultat lassen sich alle bisher besrochenen vergleichsweise leicht herleiten.[34] Tutte benutzt die einfache Tatsache, dass eine Komponente mit ungerader Knotenzahl in einem Graphen kein perfektes Matching haben kann. Wenn also eine Knotenmenge gefunden so gefunden werden kann, dass mehr ungerade Komponenten als Knoten hat, dann müsste für ein perfektes Matching aus jeder solcher Komponente wenigstens ein Knoten mit einem Knoten aus gematcht werden und das kann nicht sein. Es stellt sich heraus, dass die Existenz einer solchen Menge graphen ohne perfektes Matching nicht nur beschreibt, sondern charakterisiert:

Ein Graph hat genau dann ein perfektes Matching, wenn für jede Menge gilt: . ( gibt die Anzahl der ungeraden Komponenten eines Graphen an.) (5)

Eine solche Menge heißt Tutte-Menge und die Bedingung in (5) heißt Tutte-Bedingung. Dass sie notwendig für die Existenz perfekter Matching ist, wurde schon skizziert und es gibt mitlerweile viele Beweise dafür, dass die Bedingung hinreichend ist: Tuttes ursprünglicher Beweis formulierte das Problem als ein Matrix-Problem und benutzte die Idee der Pfaffschen Determinante.[33] Elementare Abzählargumente wurden relativ rasch danach veröffentlicht, wie in Maunsell 1952,[35] Tutte 1952,[36] Gallai 1963,[37] Halton 1966[38] oder Balinski 1970.[39] Andere Beweise, wie Gallai 1963,[37] Anderson 1971[40] oder Marder 1973[41] verallgemeinern den Satz (4) von Hall systematisch. Ferner gibt es Beweise aus der Perspektive der Graphentheorie, die die Struktur von Graphen betrachten, die selbst kein Perfektes Matching besitzen, doch falls eine Kante ergänzt wird hat der resultierende Graph ein solches. Diesen Ansatz verfolgen etwa Hetyei 1972[42] oder Lovász 1975.[43]

Es genügt nicht, erst alle Blüten zu suchen und zu kontrahieren und dann eine Breitensuche zu fahren. Die Priorität der Fallunterscheidungen spielt eine Rolle für die Korrektheit des Algorithmus'.[44] In diesem Beispiel enthält der kontrahierte Graph keinen augmentierenden Pfad, wohl aber der Ausgangsgraph.

Algorithmus von Edmonds

Der erste Polynomialzeitalgorithmus für das klassische Matchingproblem stammt von Edmonds 1965[45]. Die Grundstruktur der Methode entspricht Algorithmus (I): Sie sucht verbessernde Pfade und gibt ein maximum Matching zurück, falls kein solcher gefunden werden kann. Einen verbessernden Pfad zu finden, stellt sich hier aber als ein schwieriger heraus als im bipartiten Fall, weil einige neue Fälle auftreten können. Edmonds Suchmethode konstruiert nach und nach einen alternierenden Wald; Das ist ein kreisfreier Graph mit so vielen Zusammenhangskomponenten, wie es freie Knoten gibt. Jeder freie Knoten ist Wurzel eines Baumes und ist so kostruiert, dass für alle anderen Knoten der eindeutig bestimmte --Pfad ein alternierender Pfad ist. Ein Knoten in heißt dann innen oder gerade, falls und andernfalls außen oder ungerade. ( sei hier die Distanzfunktion in ; gebe also die Länge des eindeutig bestimmten --Pfades an)

Es genügt die Betrachtung auf die Konstruktion eines alternierenden Baumes zu reduzieren. Falls diese Konstruktion keinen augmentierenden Pfad findet, wird sie mit einem neuen freien Knoten reinitialisiert und alle bereits betrachteten Kanten werden Ignoriert. Falls kein freier Knoten mehr existiert, dann existiert auch kein augmentierender Pfad. Diesen alternierenden Baum konstruiert Edmonds, idnem er ausgehend von einem freien Knoten nach und nach alle Kanten hinzufügt oder ignoriert. Dabei können für eine neue Kante ( gehöre bereits zum Baum) folgende Fälle auftreten:

  1. Wenn ein innerer Knoten ist, können nur Kanten zu hinzugefügt werden, weil alternierend werden soll. Diese Kante ist eindeutig durch gegeben.
  2. Falls ein äußerer Knoten ist, dann kann
    1. frei sein und noch nicht in . Dann ist der - Pfad augmentierend.
    2. gepaart sein und weder noch ist in . Dann können und zu hinzugefügt werden.
    3. bereits in als äußerer Knoten enthalten sein. Damit schließt als einen geraden Kreis. Diese Kanten können ignoriert werden.[46]
    4. bereits in als ein innerer Knoten enthalten sein. Dann schließt einen ungeraden alternienden Kreis ; eine sogenannte Blüte. Edmonds zieht die Knoten in zu einem Pseudoknoten zusammen mit den Inzidenzen aller Knoten aus . (Diese Operation lässt sich auch beschreiben als „Bildung des Quotientengraphen) Er reinitialisiert dann die Suche in und gibt ein Verfahren an, einen dort gefundenen augmentierenden Pfad zu einem augmentierenden Pfad in zu liften.

Blüten könen, anders als Fall weder nicht werden.[47] Der Knoten der die Blüte mit dem Baum verbindet lässt sich in das Schema der inneren und äußeren Knoten nicht einordnen. Die naheliegende Idee, ihn als „sowohl innen als auch außen“ zu behandeln führt zu einem falschen Algorithmus.[48] Die Behandlung von Blüten mit Kontraktion ist neben dem Ansatz von Berge die zentrale Idee von Edmonds' Algorithmus und Grundlage vieler späterer Verfahren. Bipartite Graphen enthalten keine ungeraden Kreise und damit auch keine Blüten. Edmonds' Algorithmus reduziert sich daher im bipartiten Fall auf die Methode von Munkres.

Man kenn ablesen, dass die skizzierte Methode von Edmonds einen Aufwand von hat. In Fall reinitialisiert Edmods die Suche und verwirft damit den bereits geleisteten Suchaufwand. Gabow 1976[49] und Lawler haben eine naïve Implementierung vorgeschlagen, die den Suchaufwand nicht verwirft und eine Laufzeit von erreicht. Das Beispiel folgt bereits dieser Methode.

Literatur

  • L. Lovász, M. D Plummer: Matching Theory (= Annals of Discrete Mathemetics). 1. Auflage. Elsevier Science und Akadémiai Kiadó Budapest, Budapest 1986, ISBN 0-444-87916-1.
  • Reinhard Diestel: Graphentheorie. 3., neu bearb. und erw. A. Auflage. Springer, Berlin, 2006, ISBN 3-540-21391-0 (diestel-graph-theory.com).
  • Dieter Jungnickel: Graphs, Networks and Algorithms (= Algorithms and Computation in Mathematics. Band 5). 3. Auflage. Springer, 2007, ISBN 978-3-540-72779-8.
  • Qinglin Roger Yu, Guizhen Liu: Graph Factors and Matching Extensions. 1. Auflage. Springer, Beijing 2009, ISBN 3-540-93951-2.
  • Alexander Schrijver: Combinatorial Optimization – Polyherda and Efficiency (= Algorithms and Combinatorics. A). Springer, Amsterdam 2003, ISBN 3-540-44389-4.
  • Adrian Bondy, U.S.R. Murty: Graph Theory (= Graduate Texts in Mathematics). Springer, 2008, ISBN 1-84996-690-7 (springer.com).
  • Rainer Burkard, Mauro Dell'Amico, Silvano Martello: Assignment Problems. Society for Industrial and Applied Mathematics, Philadelphia 2009, ISBN 978-0-89871-663-4 (assignmentproblems.com).
  • David S. Johnson: Network Flows and Matching: First Dimacs Implementation Challenge. American Mathematical Society, 1993, ISBN 0-8218-6598-6.
  • Eugene Lawler: Combinatorial Optimization: Networks and Matroids. Dover Publications, Rocquencourt 1976, ISBN 0-03-084866-0.
Historisch
  • Dénes Kőnig: Theorie der endlichen und unendlichen Graphen – kombinatorische Topologie der Streckenkomplexe. (= Teubner Archiv zur Mathematik). 1. Auflage 1986. Teubner Verlagsgesellschaft, Leipzig 1936, ISBN 3-322-00303-5.
  • Norman L. Biggs, E. Keith Lloyd, Robin J. Wilson: Graph Theory 1736-1936. Oxford University Press, USA, 1999, ISBN 0-19-853916-9.

Einzelnachweise

  1. Yu & Liu 4
  2. Lovász & Plummer xi
  3. Yu & Liu 3
  4. Julius Peter Christian Petersen: Die Theorie de reguldren Graphen. In: Acta Mathematica. 15. Jahrgang, 1891, S. 193–220.
  5. David Hilbert: Über die Endlichkeit des Invariantensystems für binäre Grundformen. In: Mathematische Annalen. 33. Jahrgang, Nr. 2, 1889, S. 223–226.
  6. Lovász & Plummer xi
  7. Diestel 43
  8. Henry Roy Brahana: A Proof of Petersen's Theorem. In: The Annals of Mathematics (= Second Series). 19. Jahrgang, Nr. 1, 1917, ISSN 0003-486X, S. 59–63, doi:10.2307/1967667.
  9. Alfred Errera: Une demonstration du théorème de Petersen. In: Mathesis. 36. Jahrgang, 1922, S. 56–61.
  10. Orrin Frink: A Proof of Petersen's Theorem. In: The Annals of Mathematics (= Second Series). 27. Jahrgang, Nr. 4, 1926, ISSN 0003-486X, S. 491–493, doi:10.2307/1967699.
  11. Dénes Kőnig: Theorie der endlichen und unendlichen Graphen; kombinatorische Topologie der Streckenkomplexe. 1936.
  12. Fridolin Bäbler: Über die Zerlegung regulärer Streckenkomplexe ungerader Ordnung. In: Commentarii Mathematici Helvetici. 10. Jahrgang, Nr. 1, 1938, ISSN 0010-2571, S. 275–287, doi:10.1007/BF01214296.
  13. Fridolin Bäbler: Bemerkungen zu einer Arbeit von Herrn R. Cantoni. In: Commentarii Mathematici Helvetici. 26. Jahrgang, 1952, ISSN 0010-2571, S. 117–118 (digizeitschriften.de [abgerufen am 2011]).
  14. Fridolin Bäbler: Über den Zerlegungssatz von Petersen. In: Commentarii Mathematici Helvetici. 28. Jahrgang, Nr. 1, 1954, ISSN 0010-2571, S. 155–161, doi:10.1007/BF02566927.
  15. Tibor Gallai: On factorization of graphs. In: Acta Mathematica Academiae Scientiarum Hungaricae. 1. Jahrgang, 1950, ISSN 0236-5294, S. 133–153.
  16. Hans-Boris Belck: Reguläre Faktoren von Graphen. In: Journal für die reine und angewandte Mathematik (Crelles Journal). 1950. Jahrgang, Nr. 188, 1950, ISSN 0075-4102, S. 228–252, doi:10.1515/crll.1950.188.228.
  17. Ron Aharoni: Kőnig's Duality Theorem for Infinite Bipartite Graphs. In: Journal of the London Mathematical Society. s2-29. Jahrgang, Nr. 1, 1984, ISSN 0024-6107, S. 1–12, doi:10.1112/jlms/s2-29.1.1.
  18. Lovász & Plummer 5-40
  19. Notizen zu einem Vortrag von Robert D. Borgersen: Equivalence of seven major theorems in combinatorics November 26, 2004
  20. K. Jacobs: Der Heiratssatz. In: Selecta Mathematica I. 1969, S. 103–141.
  21. Philip Hall: On representatives of subsets. In: Journal of London Mathematics Society. 10. Jahrgang, 1935, S. 26–30.
  22. Jungnickel 216
  23. Diestel 43
  24. Lui 9
  25. Bondy & Murty 422
  26. Claude Berge: Two theorems in graph theory. In: Proceedings of the National Academy of Sciences of the United States of America. 43. Jahrgang, Nr. 9, 15. September 1957, S. 842–844 (pnas.org [PDF]).
  27. Aus didaktischen Gründen sehr stark vereinfacht nach Burkard, Dell’Amico & Martello 38. In der Referenz ist die Methode zum Finden eines verbessernden Pfades wesentlich detaillierter angegeben.
  28. John E. Hopcroft, Richard M. Karp: An Algorithm for Maximum Matchings in Bipartite Graphs. In: SIAM Journal on Computing. 2. Jahrgang, Nr. 4, 1973, ISSN 0097-5397, S. 225–231, doi:10.1137/0202019.
  29. H. Alt, N. Blum, K. Mehlhorn, M. Paul: Computing a maximum cardinality matching in a bipartite graph in time ). In: Information Processing Letters. 37. Jahrgang, Nr. 4, 1991, ISSN 0020-0190, S. 237–240, DOI:16/0020-0190(91)90195-N(?!).
  30. Joseph Cheriyan, Torben Hagerup, Kurt Mehlhorn: Automata, Languages and Programming. Band 443. Springer-Verlag, Berlin/Heidelberg 1990, ISBN 3-540-52826-1, Can a maximum flow be computed in time?, S. 235–248.
  31. Kann nicht dargestellt werden {{Cite conference}} ist kaputt.
  32. M. L Balinski, J. Gonzalez: Maximum matchings in bipartite graphs via strong spanning trees. In: Networks. 21. Jahrgang, Nr. 2, 1991, ISSN 1097-0037, S. 165–179, doi:10.1002/net.3230210203.
  33. a b W. T Tutte: The factorization of linear graphs. In: Journal of the London Mathematical Society. 1. Jahrgang, Nr. 2, 1947, S. 107.
  34. Lovász & Plummer 84
  35. F. G. Maunsell: A note on Tutte's paper “The factorization of linear graphs”. In: Journal of the London Mathematical Society. 1. Jahrgang, Nr. 1, 1952, S. 127.
  36. W. T. Tutte: The factors of graphs. In: Classic Papers in Combinatorics. 1987, S. 164–178.
  37. a b T. Gallai: Neuer Beweis eines Tutte’schen Satzes, Magyar Tud. In: Akad. Kutató Int. Közl. 8. Jahrgang, 1963, S. 135–139.
  38. John H. Halton: A Combinatorial Proof of a Theorem of Tutte. In: Mathematical Proceedings of the Cambridge Philosophical Society. 62. Jahrgang, Nr. 04, 1966, S. 683–684, doi:10.1017/S0305004100040342.
  39. M. L. Balinski: On perfect matchings. In: SIAM Review. 12. Jahrgang, 1970, S. 570–572.
  40. I. Anderson: Perfect matchings of a graph. In: Journal of Combinatorial Theory, Series B. 10. Jahrgang, Nr. 3, 1971, S. 183–186.
  41. W. Mader: 1-Faktoren von Graphen. In: Mathematische Annalen. 201. Jahrgang, Nr. 4, Dezember 1973, ISSN 0025-5831, S. 269–282, doi:10.1007/BF01428195.
  42. G. Hetyei: A new proof of a factorization theorem. In: Acta Acad. Paedagog. Civitate Pécs Ser. 6 Math. Phys. Chem. Tech. 16. Jahrgang, 1972, S. 3–6.
  43. L. Lovasz: Three short proofs in graph theory. In: Journal of Combinatorial Theory, Series B. 19. Jahrgang, Nr. 3, 1975, S. 269–271.
  44. Jungnickel 409
  45. J. Edmonds: Paths, trees, and flowers. In: Canadian Journal of mathematics. 17. Jahrgang, Nr. 3, 1965, S. 449–467, doi:10.4153/CJM-1965-045-4.
  46. Jungnickel 396
  47. Betrachte dieses Beispiel nach Jungnickel 398
  48. Diese Idee wurde in U. Pape, D. Conradt: Ausgewählte Operations Research Software in FORTRAN. Oldenbourg 1979, ISBN 3-486-23911-2, Maximales Matching in Graphen, S. 103–114. vorgeschlagen. Jungnickel 399 hat ein Gegenbeispiel, das auf Christian Fremuth-Paeger zurückgeht.
  49. Harold N. Gabow: An Efficient Implementation of Edmonds' Algorithm for Maximum Matching on Graphs. In: Journal of the ACM. 23. Jahrgang, Nr. 2, April 1976, ISSN 0004-5411, S. 221–234, doi:10.1145/321941.321942.
Ankermungen
  1. Beachte den Unterschied zwischen einem maximalen Element und einem Maximum. Bei der Formalisierung wird darauf genauer eingegangen.
  2. Es ist nicht bekannt, ob Petersen mit den Arbeiten von Euler 1736 zu diesem Problem vertraut war (Lovász & Plummer xi)
  3. In Diestel 43 folgt die erste Aussage Satz aus dem Heiratssatz von Hall. Die zweite Aussage wird auf 45 auf den Satz von Tutte zurückgeführt. Der Beweis von (2) geht dabei auf Lovász & Plummer 110 zurück. Jungnickel und Yu & Liu verfahren mit (1) wie Diestel. (216 resp. 16) Aussage (2) steht bei Yu & Liu als Zitat ohne Beweis (51) und bei Jungnickel als Übungsaufgabe. (389) In Schrijver sind (1) und (2) Übungsaufgaben (81 und 43)
  4. notiert die symmetrische Differenz
  5. Programmiersprachen, die das Konzept Inf nicht unterstützen, können die künstlichen Kanten stattdessen mit einer absurd großen Zahl belegen. genügt in jedem Fall.