4.5 Perfekte Matchings in bipartiten Graphen

Wenn das leichteste perfekte Matching eindeutig ist

Theorem 4.5.1 Sei G=(V,E) ein bipartiter Graph und w:E{1,...,W} eine Gewichtung der Kanten. Falls G ein eindeutiges perfektes Matching M von kleinstem Gewicht w hat, dann können wir w und auch M parallel in poly(n,W) Arbeit und polylog(n,W) Zeit finden.

Beweis. Sei A=A(G)Rn×n die bipartite Adjazenzmatrix, allerdings mit folgenden Einträgen:

Au,v:={2w(u,v) falls {u,v} eine Kante ist,0 sonst.

Wir betrachten die Determinante von A:

(1)det(A)=πSnu=1nsign(π)Au,π(u) Zur Erinnerung: wir identifizieren perfekte Matchings in dem vollständigen bipartiten Graphen (LR,L×R) mit Permutationen πSn. Die Menge PM(G) aller perfekten Matchings in G ist somit eine Menge von Permutationen, und wir erlauben uns, Dinge wie sign(M) und πPM(G) zu schreiben, wobei wir im ersten Fall M als Permutation lesen und im zweiten Fall π als perfektes Matching. Ein Summand in (1) ist genau dann 0, wenn das Produkt eine Nicht-Kante {u,π(u)}E enthält; die Summanden, die nicht 0 sind, entsprechen genau den perfekten Matchings von G. Es gilt somit det(A)=πPM(G)uLsign(π)2w(u,π(u))=MPM(G)eMsign(M)2w(e)=MPM(G)sign(M)2eMw(e)=MPM(G)sign(M)2w(M) .

Da nun M ein perfektes Matching von Gewicht t ist und nach Annahme alle anderen Matchings Gewicht mindestens t+1 hat, schreiben wir det(A) als

det(A)=sign(M)2w(M)+MPM{M}sign(M)2w(M)

und sehen, dass der erste Term ±2w ist und alle weiteren Terme durch 2w+1 teilbar sind. Es gilt daher

Beobachtung w ist gleich der höchsten ganzen Zahl w, die det(A) teilt.

Wir können also w berechnen, indem wir det(A) berechnen und dann bestimmen, was die höchste Zweierpotenz ist, die det(A) teilt. Da die Einträge von det(A) höchstens 2W sind, brauchen sie höchstens W+1 Bits, und wir können die Determinante parallel in poly(n,W) Arbeit und polylog(n,W) Zeit bestimmen.

Um schließlich M selbst zu bestimmen, benutzen wir folgende Beobachtung:

Beobachtung 4.5.2 Sei e=(u,v)E eine Kante und sei Ae:=A(Ge). Es ist also die Matrix, die wir erhalten, wenn wir A nehmen und Au,v:=0 setzen. Es gilt: eM genau dann, wenn det(A) nicht durch 2w+1 teilbar ist.

Beweis. Wir betrachten

det(Ae)=πPM(Ge)uLsign(π)2w(u,π(u))(2)=MPM(Ge)sign(M)2w(M)

Wenn nun eM ist, dann ist MPM(Ge); jedes MPM(G) ist in PM(G){M} und hat somit Gewicht mindestens w+1; es ist also jeder Summand von (2) durch 2w+1 teilbar. Wenn jedoch eM ist, so ist MPM(Ge); die Summe (2) hat also genau einen Term ±2w, und alle anderen sind durch 2w+1 teilbar.

Wir wenden nun Beobachtung 4.5.2 parallel auf jede Kante eE an, berechnen (parallel) die Determinante det(Ae) und wissen nun, ob eM gilt; in anderen Worten: wir kennen M. Die Gesamtarbeit ist ungefähr |E| mal die Arbeit, die für die Berechnung einer Determinante einer n×n-Matrix mit W-stelligen ganzzahligen Einträgen nötig ist; die Zeit ist die für die Berechnung einer solcher Determinante, plus O(logW).

Übungsaufgabe 4.5.1 Woher kommt das "plus O(logW) in der Laufzeit am Ende des obigen Beweises? Zeigen Sie konkret, wie man

  1. Die Matrix A effizient parallel herstellen kann,
  2. arithmetische Operationen wie + und effizient berechnen kann, also in polylog(bitsize(x)) Zeit und
  3. man für det(A) effizient die größte w bestimmen kann, so dass 2w | det(A) gilt.

Wie man das leichteste perfekte Matching eindeutig macht

Wir haben nun einen bipartiten Graphen G=(V,E) ohne Kantengewichte. Wir wollen eine Gewichtsfunktion w:E\N finden, so dass folgendes gilt:

  1. wenn G ein perfektes Matching hat, dann gibt es genau ein solches, das w(M) minimiert;
  2. die Gewichte w(e) sind polynomiell in n.

Punkt 2 ist wichtig, weil wir ansonsten die gewichtete Adjazenzmatrix A(G) nicht effizient herstellen können: bereits ihre Darstellung hätte superpolynomielle Größe.

Lemma 4.5.3 (Isolation Lemma, [Mulmuley, Vazirani, and Vazirani]). Wähle jedes Gewicht w(e) zufällig aus der Menge {1,,2m}, unabhängig für jede Kante. Dann ist

Pr[es gibt ein eindeutiges MPM(G), das w(M) minimiert]12 .

Beweis. Was muss passieren, damit das leichteste perfekte Matching nicht eindeutig ist? Es muss zwei verschiedene perfekte Matchings M1,M2 geben mit w(M1)=w(M2)=min{w(M) | MPM(G)}. Diese Matchings müssen sich unterscheiden: es muss eine Kante eM1M2 geben.

Dies motiviert folgende Definition: Kante e ist schlecht, wenn es zwei perfekte Matchings M1 und M2 mit minimalem Gewicht gibt und eM1M2. Wir stellen uns nun zwei Fragen: (1) Wenn die Gewichte wie beschrieben zufällig gewählt werden, mit welcher Wahrscheinlichkeit gibt es dann überhaupt eine schlechte Kante? (2) Mit welcher Wahrscheinlichkeit ist eine spezifische Kante e schlecht? Um Frage (2) zu beantworten, definieren wir

we:=min{w(M) | MPM(G),eM} ,w/e:=min{w(M{e}) | MPM(G),eM} .

Wir wählen nun die Gewichtsfunktion w in zwei Schritten: in einem ersten wählen wir w(f) für alle fE{e}; nur das Gewicht von e bleibt noch offen. Dies ist jedoch genug, um we und w/e zu bestimmen. Nun wählen wir in einem weiteren Schritt w(e). Wann kann nun e schlecht sein? Genau dann, wenn es perfekte Matchings M1,M2 minimalen Gewichts gibt mit eM1 und eM2. Dann gilt aber w(M2)=we und w(M1)=w(M1{e})+w(e)=w/e+w(e) und somit

(3)we=w/e+w(e) .

Da we und w/e bereits feststehen, kann es nur eine Wahl für w(e) geben, die (3) erfüllt: nämlich wew/e. Was ist die Wahrscheinlichkeit, dass wir genau diesen Wert für w(e) wählen? Entweder 1/2m, wenn der Wert sich in \{1,\dots,2m\} befindet, oder 0, falls nicht. Die Wahrscheinlichkeit, dass e schlecht ist, ist also höchstens 1/2m. Nun gilt

Pr[das perfekte Matching minimalen Gewichts ist nicht eindeutig]=Pr[es gibt eine schlechte Kante]=eEPr[e ist eine schlechte Kante]eE12m=m2m=12 .

Und somit gilt: mit Wahrscheinlichkeit mindestens 1/2m gibt es ein eindeutiges perfektes Matching von geringstem Gewicht.

Beachten Sie, dass wir zu keinem Zeitpunkt verwendet haben, dass es sich bei den Objekten M um perfekte Matchings handelt. Und in der Tat: das Isolationslemma von MVV funktioniert ganz allgemein für Familien von Mengen.

Übungsaufgabe 4.5.2 Was geschieht, wenn die Wahl der Gewichtsfunktion im Isolationslemma fehlschlägt und das Minimum von mehreren perfekten Matchings erreicht wird? Welchen Fehler könnte unser Algorithmus dann machen?