Kapitel 02: Schnitt von Matroiden
(Effiziente Algorithmen, WS 2019) Gerhard Woeginger
WS 2019, RWTH
EA/WS 2019 Kapitel 02: Schnitt von Matroiden 1/32
Organisatorisches
N¨achste Vorlesung:
Donnerstag, Januar 16, 12:30–14:00 Uhr, AH V Webseite:
https://algo.rwth-aachen.de/Lehre/WS1920/EA/EA.py
Schnitt von Matroiden
Eine Min-Max Formel Der Austausch-Graph Matroid-Schnitt Algorithmus
Korrektheit des Matroid-Schnitt Algorithmus
EA/WS 2019 Kapitel 02: Schnitt von Matroiden 3/32
Zum Aufw¨ armen:
Bipartites Matching und Matroide
Bipartites Matching
Die GrundmengeE ist die Kantenmenge eines ungerichteten bipartiten Graphen G = (V,E).
Eine Teilmenge X ⊆E istunabh¨angig, falls keine zwei Kanten inX einen gemeinsamen Knoten haben:
I = {X ⊆E : X ist ein Matching}
Frage:Warum bildet dieses Mengensystem kein Matroid?
EA/WS 2019 Kapitel 02: Schnitt von Matroiden 5/32
Bipartites Matching als Schnitt von zwei Matroiden
Es seiG = (V1∪V2,E)mitE ⊆V1×V2ein bipartiter Graph.
Matroid #1:
Partitions-Matroid auf der GrundmengeE.
F¨ur jeden Knoten v∈V1enth¨alt die TeilmengeEv alle Kanten, die zu v inzident sind.
Wir setzenkv =1.
Matroid #2:
Partitions-Matroid auf der GrundmengeE.
F¨ur jeden Knotenw ∈V2enth¨alt die TeilmengeEw alle Kanten, die zu w inzident sind.
Wir setzenkw=1.
Schnitt von zwei Matroiden
EA/WS 2019 Kapitel 02: Schnitt von Matroiden 7/32
Der Schnitt von zwei Matroiden
Definition
Es seienM1= (E,I1)undM2= (E,I2)zwei Matroide.
DerSchnittdieser Matroide ist M1∩M2 = (E,I1∩ I2).
Anmerkung:
Der Schnitt von zwei Matroiden ist im Allgemeinenkein Matroid.
Algorithmisches Problem:
F¨ur zwei gegegeben Matroide ¨uber der selben GrundmengeE soll eine m¨oglichst grosse TeilmengeS⊆E gefunden werden, die gleichzeitig in beiden Matroiden unabh¨angig ist.
Beispiel: Arboreszenzen
Definition
Es sei(V,A)ein gerichteter Graph, und es seir ∈V ein fixer Knoten.
EineArboreszenzist ein TeilgraphT = (V,A0)mitA0⊆A, in dem die Wurzel Eingrad0hat und jeder Knotenv6=r Eingrad1hat.
Arboreszenzen werden auchgewurzelte B¨aumegenannt.
Enth¨alt ein gegebener GraphG eine Arboreszenz mit gegebener Wurzel?
Wenn man die Richtungen der Pfeile in A0ignoriert,
so istT = (V,A0)ein kreisfreier ungerichteter Graph (Matroid #1).
Jeder Knoten inV −r hat h¨ochstens einen eingehenden Pfeil (Matroid #2).
EA/WS 2019 Kapitel 02: Schnitt von Matroiden 9/32
Beispiel: Orientierung von Graphen
Es seiG = (V,E)ein ungerichteter Graph, und es seienκ:V →N Schranken f¨ur die Knoten.
Wir wollen wissen, ob aus den ungerichteten Kanten derart Pfeile gemacht werden k¨onnen, dass jeder Knotenv ∈V h¨ochstensκ(v)viele eingehende Pfeile hat.
Die Grundmenge enth¨alt f¨ur jede ungerichtete Kante {u,v}die beiden Pfeile(u,v)und(v,u).
F¨ur jede Kante{u,v} darf h¨ochstens einer der beiden Pfeile(u,v) und (v,u)verwendet werden (Matroid #1).
F¨ur jeden Knoten v∈V d¨urfen h¨ochstensκ(v)eingehende Pfeile verwendet werden (Matroid #2).
Eine Min-Max Formel
EA/WS 2019 Kapitel 02: Schnitt von Matroiden 11/32
Eine Beobachtung
Beobachtung
Es seienM1= (E,I1)undM2= (E,I2)zwei Matroide.
Es seienr1 undr2die Rangfunktionen dieser beiden Matroide.
Es seiS∈ I1∩ I2und es sei U ⊆E. Dann gilt:
|S| = |S∩U|+|S∩(E−U)| ≤ r1(U) +r2(E −U)
Eine Min-Max Formel
Beobachtung
max
S∈I1∩I2
|S| ≤ min
U⊆E r1(U) +r2(E−U)
Satz
F¨ur zwei Matroide M1= (E,I1)und M2= (E,I2)mit den beiden Rangfunktionenr1 undr2 gilt:
max
S∈I1∩I2
|S| = min
U⊆E r1(U) +r2(E−U)
EA/WS 2019 Kapitel 02: Schnitt von Matroiden 13/32
Eine Min-Max Formel
Beobachtung
max
S∈I1∩I2
|S| ≤ min
U⊆E r1(U) +r2(E−U)
Satz
F¨ur zwei MatroideM1= (E,I1)und M2= (E,I2)mit den beiden Rangfunktionenr1 undr2 gilt:
max
S∈I1∩I2
|S| = min
U⊆E r1(U) +r2(E−U)
Der Austausch-Graph
EA/WS 2019 Kapitel 02: Schnitt von Matroiden 14/32
Der Austausch-Graph
Definition
F¨ur ein Matroid M= (E,I)und eine unabh¨angige MengeS ∈ I ist der Austausch-GraphGM(S)(oder einfachG(S)) der bipartite Graph
mit Bipartition S undE−S, und
mit einer Kante zwischen y∈S undx∈/S f¨urS−y+x∈ I.
Der erste Hilfssatz
Hilfssatz 1
F¨ur zwei unabh¨angige Mengen S,T ∈ I mit|S|=|T| enth¨alt der Austausch-GraphGM(S)
ein perfektes Matching zwischenS−T und T−S.
Andernfalls:
K˝onig gibt uns einX ⊆S−T und einX0⊆T−S mit|X|<|X0|, sodass alle zu X0 inzidenten Kanten nachX gehen.
|(S∩T)∪X|<|(S∩T)∪X0|und (I2) geben uns ein Element z ∈X0, sodassY := (S∩T)∪X ∪ {z}unabh¨angig ist.
(I2) gibt uns eine Menge U ∈ I mitY ⊆U⊆S+z und |U|=|S|. ErgoU =S−x+z f¨ur einx∈S. Widerspruch.
EA/WS 2019 Kapitel 02: Schnitt von Matroiden 16/32
Der erste Hilfssatz
Hilfssatz 1
F¨ur zwei unabh¨angige Mengen S,T ∈ I mit|S|=|T| enth¨alt der Austausch-GraphGM(S)
ein perfektes Matching zwischenS−T und T−S.
Andernfalls:
K˝onig gibt uns einX ⊆S−T und einX0⊆T −S mit|X|<|X0|, sodass alle zu X0 inzidenten Kanten nachX gehen.
|(S∩T)∪X|<|(S∩T)∪X0|und (I2) geben uns ein Element z ∈X0, sodassY := (S∩T)∪X ∪ {z}unabh¨angig ist.
(I2) gibt uns eine Menge U∈ I mitY ⊆U ⊆S+z und |U|=|S|.
ErgoU =S−x+z f¨ur einx∈S. Widerspruch.
Der zweite Hilfssatz (1)
Hilfssatz 2
Es seiS∈ I eine unabh¨angige Menge mit Austausch-GraphenGM(S).
Es seiT ⊆E eine Menge mit|S|=|T|, f¨ur dieGM(S)eineindeutiges perfektes MatchingNzwischenS−T undT −S enth¨alt.
Dann giltT∈ I.
Orientiere alle Kanten inN von E−S nachS. Orientiere alle anderen Kanten vonS nachE −S. Der resultierende gerichtete Graph ist azyklisch.
Topologische Sortierung der Knoten inT−S (alsx1, . . . ,xt) und der Knoten in S−T (alsy1, . . . ,yt),
sodass MatchingN={(x1,y1), (x2,y2), . . . ,(xt,yt)}, und sodass kein Pfeil (yi,xj)miti >j existiert
EA/WS 2019 Kapitel 02: Schnitt von Matroiden 17/32
Der zweite Hilfssatz (1)
Hilfssatz 2
Es seiS∈ I eine unabh¨angige Menge mit Austausch-GraphenGM(S).
Es seiT ⊆E eine Menge mit|S|=|T|, f¨ur dieGM(S)eineindeutiges perfektes MatchingNzwischenS−T undT −S enth¨alt.
Dann giltT∈ I.
Orientiere alle Kanten inN von E−S nachS.
Orientiere alle anderen Kanten vonS nachE −S. Der resultierende gerichtete Graph ist azyklisch.
Topologische Sortierung der Knoten inT−S (alsx1, . . . ,xt) und der Knoten in S−T (alsy1, . . . ,yt),
sodass MatchingN={(x1,y1), (x2,y2), . . . ,(xt,yt)}, und
Der zweite Hilfssatz (2)
Topologische Sortierung der Knoten inT−S (alsx1, . . . ,xt) und der Knoten in S−T (alsy1, . . . ,yt),
sodass MatchingN={(x1,y1), (x2,y2), . . . ,(xt,yt)}, und sodass kein Pfeil (yi,xj)mit i >j existiert
Angenommen: T ∈ I/
Dann enth¨alt T CircuitC. Betrachte gr¨ossten Indexk mitxk ∈C.
Es gibt keinen Pfeil(yk,x)mitx∈C −xk. Ergo: x∈span(S−yk)f¨ur allex∈C−xk Ergo: C−xk ⊆span(S−yk)
Ergo: span(C −xk)⊆span(span(S−yk)) =span(S−yk) Da C ein Circuit ist, giltxk ∈span(C−xk)
Ergo: xk ∈span(S−yk)
Ergo: S−yk+xk ist nicht unabh¨angig. Widerspruch.
EA/WS 2019 Kapitel 02: Schnitt von Matroiden 18/32
Der zweite Hilfssatz (2)
Topologische Sortierung der Knoten inT−S (alsx1, . . . ,xt) und der Knoten in S−T (alsy1, . . . ,yt),
sodass MatchingN={(x1,y1), (x2,y2), . . . ,(xt,yt)}, und sodass kein Pfeil (yi,xj)mit i >j existiert
Angenommen: T ∈ I/
Dann enth¨alt T CircuitC. Betrachte gr¨ossten Indexk mitxk ∈C. Es gibt keinen Pfeil(yk,x)mitx∈C−xk.
Ergo: x∈span(S−yk)f¨ur allex∈C−xk Ergo: C−xk ⊆span(S−yk)
Ergo: span(C −xk)⊆span(span(S−yk)) =span(S−yk)
Da C ein Circuit ist, giltxk ∈span(C−xk) Ergo: xk ∈span(S−yk)
Ergo: S−yk+xk ist nicht unabh¨angig. Widerspruch.
Der zweite Hilfssatz (2)
Topologische Sortierung der Knoten inT−S (alsx1, . . . ,xt) und der Knoten in S−T (alsy1, . . . ,yt),
sodass MatchingN={(x1,y1), (x2,y2), . . . ,(xt,yt)}, und sodass kein Pfeil (yi,xj)mit i >j existiert
Angenommen: T ∈ I/
Dann enth¨alt T CircuitC. Betrachte gr¨ossten Indexk mitxk ∈C. Es gibt keinen Pfeil(yk,x)mitx∈C−xk.
Ergo: x∈span(S−yk)f¨ur allex∈C−xk Ergo: C−xk ⊆span(S−yk)
Ergo: span(C −xk)⊆span(span(S−yk)) =span(S−yk) Da C ein Circuit ist, giltxk ∈span(C−xk)
Ergo: xk ∈span(S−yk)
Ergo: S−yk+xk ist nicht unabh¨angig. Widerspruch.
EA/WS 2019 Kapitel 02: Schnitt von Matroiden 18/32
Der Matroid-Schnitt Algorithmus
Matroid-Schnitt Problem
Matroid-Schnitt
Instanz:MatroideM1= (E,I1)undM2= (E,I2)
Output:Eine MengeS∈ I1∩ I2mit der gr¨osstm¨oglichen Kardinalit¨at
EA/WS 2019 Kapitel 02: Schnitt von Matroiden 20/32
Das Augmentationsproblem (1)
Augmentationsproblem
Instanz:MatroideM1= (E,I1)undM2= (E,I2); MengeS∈ I1∩ I2
Output:MengeS0∈ I1∩ I2 mit|S0|>|S| (falls diese existiert) Wir nehmen an, dass in beiden Matroiden der Unabh¨angigkeitstest (“GegebenX ⊆E, gilt X ∈ I1 respektiveX ∈ I2?”) in polynomieller Zeit durchgef¨uhrt werden kann.
Wir definieren einen gerichteten bipartiten HilfsgraphenH(S): Die Bipartition istS undE −S.
F¨ury ∈S undx ∈E−S enth¨alt der GraphH(S) den Pfeil(y,x), falls S−y+x∈ I1und
den Pfeil(x,y), falls S−y+x∈ I2.
Das Augmentationsproblem (1)
Augmentationsproblem
Instanz:MatroideM1= (E,I1)undM2= (E,I2); MengeS∈ I1∩ I2
Output:MengeS0∈ I1∩ I2 mit|S0|>|S| (falls diese existiert) Wir nehmen an, dass in beiden Matroiden der Unabh¨angigkeitstest (“GegebenX ⊆E, gilt X ∈ I1 respektiveX ∈ I2?”) in polynomieller Zeit durchgef¨uhrt werden kann.
Wir definieren einen gerichteten bipartiten HilfsgraphenH(S):
Die Bipartition istS undE−S.
F¨ury ∈S undx ∈E−S enth¨alt der GraphH(S) den Pfeil(y,x), falls S−y+x∈ I1 und
den Pfeil(x,y), falls S−y+x∈ I2.
EA/WS 2019 Kapitel 02: Schnitt von Matroiden 21/32
Das Augmentationsproblem (2)
E1:= {x∈E−S|S+x ∈ I1} E2:= {x∈E−S|S+x ∈ I2}
Wir suchen nach einem gerichteten Pfad im HilfsgraphenH(S)von einem Knoten inE1 zu einem Knoten inE2.
(A) Falls ein derartiger gerichteter Pfad existiert:
Wir berechnen einen k¨urzesten gerichteten PfadP vonE1nachE2. Die Knotenfolge inP seiy0,z1,y1, . . . ,zt,yt.
Dann gilty0,y1, . . . ,yt ∈E −S undz1, . . . ,zt ∈S.
Wir setzenS0:=S− {z1, . . . ,zt} ∪ {y0,y1, . . . ,yt}.
(B) Falls kein derartiger gerichteter Pfad existiert:
Die MengeS ∈ I ∩ I hat bereits gr¨osstm¨ogliche Kardinalit¨at.
Der Matroid-Schnitt Algorithmus
Wir beginnen mitS:=∅.
Wir l¨osen wiederholt das Augmentationsproblem f¨urS und setzen dann immerS:=S0.
Nach Termination hatS∈ I1∩ I2 die gr¨osstm¨ogliche Kardinalit¨at.
Die Laufzeit ist polynomial, da der Unabh¨angigkeitstest in polynomieller Zeit durchgef¨uhrt werden kann.
Es muss nur noch die Korrektheit gezeigt werden.
EA/WS 2019 Kapitel 02: Schnitt von Matroiden 23/32
Korrektheit des Matroid-Schnitt
Algorithmus
Korrektheit Augmentation (A1)
(A) Falls ein derartiger gerichteter Pfad existiert:
Wir berechnen einen k¨urzesten gerichteten PfadP von E1nachE2. Die Knotenfolge inP seiy0,z1,y1, . . . ,zt,yt.
Dann gilty0,y1, . . . ,yt ∈E −S undz1, . . . ,zt ∈S.
Wir setzenS0:=S− {z1, . . . ,zt} ∪ {y0,y1, . . . ,yt}.
Wir zeigen nurS0∈ I1. (AussageS0∈ I2folgt analog.) Schritt 1: Wir zeigenT :=S0−y0∈ I1.
Dazu wenden wir unseren zweiten Hilfssatz an.
Der Austauschgraph GM1(S)enth¨alt ein Matching zwischen {z1, . . . ,zt}und{y1, . . . ,yt}.
Dieses Matching ist eindeutig, daP k¨urzester Pfad.
EA/WS 2019 Kapitel 02: Schnitt von Matroiden 25/32
Korrektheit Augmentation (A2)
(A) Falls ein derartiger gerichteter Pfad existiert:
Wir berechnen einen k¨urzesten gerichteten PfadP von E1nachE2. Die Knotenfolge inP seiy0,z1,y1, . . . ,zt,yt.
Dann gilty0,y1, . . . ,yt ∈E −S undz1, . . . ,zt ∈S.
Wir setzenS0:=S− {z1, . . . ,zt} ∪ {y0,y1, . . . ,yt}.
Schritt 1: S0−y0∈ I1(erledigt) Schritt 2: Wir zeigenS0∈ I1.
r1(S∪S0) ≥ r1(S+y0) = |S|+1
(S0−y0)∩E1=∅ impliziert r1(S∪(S0−y0)) =|S|
Submodularit¨at f¨ur die beiden MengenS∪(S0−y0)undS0liefert nun r1(S0)≥ |S0|und somitS0∈ I1.
Korrektheit Augmentation (A2)
(A) Falls ein derartiger gerichteter Pfad existiert:
Wir berechnen einen k¨urzesten gerichteten PfadP von E1nachE2. Die Knotenfolge inP seiy0,z1,y1, . . . ,zt,yt.
Dann gilty0,y1, . . . ,yt ∈E −S undz1, . . . ,zt ∈S.
Wir setzenS0:=S− {z1, . . . ,zt} ∪ {y0,y1, . . . ,yt}.
Schritt 1: S0−y0∈ I1(erledigt) Schritt 2: Wir zeigenS0∈ I1.
r1(S∪S0) ≥ r1(S+y0) = |S|+1
(S0−y0)∩E1=∅ impliziert r1(S∪(S0−y0)) =|S|
Submodularit¨at f¨ur die beiden MengenS∪(S0−y0)undS0liefert nun r1(S0)≥ |S0|und somitS0∈ I1.
EA/WS 2019 Kapitel 02: Schnitt von Matroiden 26/32
Korrektheit Augmentation (A2)
(A) Falls ein derartiger gerichteter Pfad existiert:
Wir berechnen einen k¨urzesten gerichteten PfadP von E1nachE2. Die Knotenfolge inP seiy0,z1,y1, . . . ,zt,yt.
Dann gilty0,y1, . . . ,yt ∈E −S undz1, . . . ,zt ∈S.
Wir setzenS0:=S− {z1, . . . ,zt} ∪ {y0,y1, . . . ,yt}.
Schritt 1: S0−y0∈ I1(erledigt) Schritt 2: Wir zeigenS0∈ I1.
r1(S∪S0) ≥ r1(S+y0) = |S|+1
(S0−y0)∩E1=∅ impliziert r1(S∪(S0−y0)) =|S|
Submodularit¨at f¨ur die beiden MengenS∪(S0−y0)undS0liefert nun r1(S0)≥ |S0|und somitS0∈ I1.
Korrektheit Augmentation (B1)
(B) Falls kein derartiger gerichteter Pfad existiert:
Die MengeS∈ I1∩ I2 hat bereits gr¨osstm¨ogliche Kardinalit¨at.
Da es keinen gerichteten Pfad vonE1nachE2 gibt, existiert eine TeilmengeU ⊆E mitE2⊆U undE1∩U=∅, sodass kein Pfeil von E −U nachU geht.
Wir zeigen zuerstr1(U) =|S∩U|.
AusS∩U ∈ I1folgt sofort r1(U)≥ |S∩U|.
Zwecks Widerspruchs nehmen wir r1(U)>|S∩U|an. Dann existiert einx ∈U−S mit(S∩U) +x∈ I1.
Dann existiertZ ∈ I1 mit|Z| ≥ |S|und(S∩U) +x⊆Z ⊆S+x. Wenn Z=S+x, dann giltx∈E1. Widerspruch.
WennZ =S−y+x mity ∈S−U, so ist(y,x)ein Pfeil im Hilfsgraphen H(S), wobeix ∈U und y∈E −U. Widerspruch.
EA/WS 2019 Kapitel 02: Schnitt von Matroiden 27/32
Korrektheit Augmentation (B1)
(B) Falls kein derartiger gerichteter Pfad existiert:
Die MengeS∈ I1∩ I2 hat bereits gr¨osstm¨ogliche Kardinalit¨at.
Da es keinen gerichteten Pfad vonE1nachE2 gibt, existiert eine TeilmengeU ⊆E mitE2⊆U undE1∩U=∅, sodass kein Pfeil von E −U nachU geht.
Wir zeigen zuerstr1(U) =|S∩U|.
AusS∩U ∈ I1folgt sofort r1(U)≥ |S∩U|.
Zwecks Widerspruchs nehmen wir r1(U)>|S∩U|an.
Dann existiert einx ∈U−S mit(S∩U) +x∈ I1.
Dann existiertZ ∈ I1 mit|Z| ≥ |S|und(S∩U) +x⊆Z ⊆S+x. Wenn Z=S+x, dann giltx∈E1. Widerspruch.
WennZ =S−y+x mity ∈S−U, so ist(y,x)ein Pfeil im Hilfsgraphen H(S), wobeix ∈U und y∈E −U. Widerspruch.
Korrektheit Augmentation (B1)
(B) Falls kein derartiger gerichteter Pfad existiert:
Die MengeS∈ I1∩ I2 hat bereits gr¨osstm¨ogliche Kardinalit¨at.
Da es keinen gerichteten Pfad vonE1nachE2 gibt, existiert eine TeilmengeU ⊆E mitE2⊆U undE1∩U=∅, sodass kein Pfeil von E −U nachU geht.
Wir zeigen zuerstr1(U) =|S∩U|.
AusS∩U ∈ I1folgt sofort r1(U)≥ |S∩U|.
Zwecks Widerspruchs nehmen wir r1(U)>|S∩U|an.
Dann existiert einx ∈U−S mit(S∩U) +x∈ I1.
Dann existiertZ ∈ I1 mit|Z| ≥ |S| und(S∩U) +x⊆Z ⊆S+x.
Wenn Z=S+x, dann giltx∈E1. Widerspruch.
WennZ =S−y+x mity ∈S−U, so ist(y,x)ein Pfeil im Hilfsgraphen H(S), wobeix ∈U und y∈E −U. Widerspruch.
EA/WS 2019 Kapitel 02: Schnitt von Matroiden 27/32
Korrektheit Augmentation (B1)
(B) Falls kein derartiger gerichteter Pfad existiert:
Die MengeS∈ I1∩ I2 hat bereits gr¨osstm¨ogliche Kardinalit¨at.
Da es keinen gerichteten Pfad vonE1nachE2 gibt, existiert eine TeilmengeU ⊆E mitE2⊆U undE1∩U=∅, sodass kein Pfeil von E −U nachU geht.
Wir zeigen zuerstr1(U) =|S∩U|.
AusS∩U ∈ I1folgt sofort r1(U)≥ |S∩U|.
Zwecks Widerspruchs nehmen wir r1(U)>|S∩U|an.
Dann existiert einx ∈U−S mit(S∩U) +x∈ I1.
Dann existiertZ ∈ I1 mit|Z| ≥ |S| und(S∩U) +x⊆Z ⊆S+x.
Wenn Z=S+x, dann giltx∈E1. Widerspruch.
WennZ =S−y+x mity ∈S−U, so ist(y,x)ein Pfeil im Hilfsgraphen H(S), wobeix ∈U und y∈E −U. Widerspruch.
Korrektheit Augmentation (B1)
(B) Falls kein derartiger gerichteter Pfad existiert:
Die MengeS∈ I1∩ I2 hat bereits gr¨osstm¨ogliche Kardinalit¨at.
Da es keinen gerichteten Pfad vonE1nachE2 gibt, existiert eine TeilmengeU ⊆E mitE2⊆U undE1∩U=∅, sodass kein Pfeil von E −U nachU geht.
Wir zeigen zuerstr1(U) =|S∩U|.
AusS∩U ∈ I1folgt sofort r1(U)≥ |S∩U|.
Zwecks Widerspruchs nehmen wir r1(U)>|S∩U|an.
Dann existiert einx ∈U−S mit(S∩U) +x∈ I1.
Dann existiertZ ∈ I1 mit|Z| ≥ |S| und(S∩U) +x⊆Z ⊆S+x.
Wenn Z=S+x, dann giltx∈E1. Widerspruch.
WennZ =S−y+x mity ∈S−U, so ist(y,x)ein Pfeil im Hilfsgraphen H(S), wobeix ∈U und y∈E −U. Widerspruch.
EA/WS 2019 Kapitel 02: Schnitt von Matroiden 27/32
Korrektheit Augmentation (B2)
(B) Falls kein derartiger gerichteter Pfad existiert:
Die MengeS∈ I1∩ I2 hat bereits gr¨osstm¨ogliche Kardinalit¨at.
Da es keinen gerichteten Pfad vonE1nachE2 gibt, existiert eine TeilmengeU ⊆E mitE2⊆U undE1∩U=∅, sodass kein Pfeil von E −U nachU geht.
Wir zeigen als n¨achstesr2(E −U) =|S−U|.
AusS−U∈ I2 folgt sofortr2(E−U)≥ |S−U|.
Zwecks Widerspruchs nehmen wir r2(E −U)>|S−U|an.
Dann existiert einx ∈E−U mit(S−U) +x∈ I2.
Dann existiertZ ∈ I2 mit|Z| ≥ |S| und(S−U) +x ⊆Z⊆S+x. Wenn Z=S+x, dann giltx∈E2. Widerspruch.
WennZ =S−y+x mity ∈S∩U, so ist(x,y)ein Pfeil im
Korrektheit Augmentation (B3)
(B) Falls kein derartiger gerichteter Pfad existiert:
Die MengeS∈ I1∩ I2 hat bereits gr¨osstm¨ogliche Kardinalit¨at.
Wir haben r1(U) =|S∩U|bewiesen.
Wir haben r2(E −U) =|S−U|bewiesen.
Gem¨ass unserer Min-Max Formel gilt f¨ur alleT ∈ I1∩ I2:
|T| = |T ∩U|+|T−U|
≤ r1(U) +r2(E−U)
= |S∩U|+|S−U| = |S|
Ergo hatS∈ I1∩ I2die gr¨osstm¨ogliche Kardinalit¨at.
EA/WS 2019 Kapitel 02: Schnitt von Matroiden 29/32
Korrektheit Augmentation (B3)
(B) Falls kein derartiger gerichteter Pfad existiert:
Die MengeS∈ I1∩ I2 hat bereits gr¨osstm¨ogliche Kardinalit¨at.
Wir haben r1(U) =|S∩U|bewiesen.
Wir haben r2(E −U) =|S−U|bewiesen.
Gem¨ass unserer Min-Max Formel gilt f¨ur alleT ∈ I1∩ I2:
|T| = |T ∩U|+|T−U|
≤ r1(U) +r2(E−U)
= |S∩U|+|S−U| = |S|
Ergo hatS∈ I1∩ I2die gr¨osstm¨ogliche Kardinalit¨at.
Varianten und Variationen
EA/WS 2019 Kapitel 02: Schnitt von Matroiden 30/32
Gewichteter Matroid-Schnitt
Gewichteter Matroid-Schnitt
Instanz:MatroideM1= (E,I1)undM2= (E,I2); eine Kostenfunktion c:E →Z
Output:Eine MengeS∈ I1∩ I2mit den gr¨osstm¨oglichen Kosten c(S) Das gewichtete Matroid-Schnitt-Problem kann ebenfalls in polynomieller Zeit gel¨ost werden. Der Algorithmus verallgemeinert den Algorithmus f¨ur den ungewichteten Matroid-Schnitt und ist ¨ahnlich zum Algorithmus f¨ur gewichtetes Bipartites Matching.
Schnitt von drei Matroiden
Matroid-Schnitt
Instanz:MatroideM1= (E,I1), M2= (E,I2)undM3= (E,I3) Output:Eine MengeS∈ I1∩ I2∩ I3 mit der gr¨osstm¨oglichen Kardinalit¨at
Dieses Problem ist NP-schwer.
Der Spezialfall mit drei graphischen Matroiden ist NP-schwer.
Der Spezialfall mit drei Partitionsmatroiden ist NP-schwer.
EA/WS 2019 Kapitel 02: Schnitt von Matroiden 32/32