Professional Documents
Culture Documents
1 Párosítások
1 Párosítások
Definíció
Adott G = (V, E) gráfban független élek halmazát párosításnak
hívjuk (azaz olyan élek, amiknek nincs közös csúcsúk).
Tétel (Kőnig)
Tetszőleges G = (A, B; E) páros gráfban ν(G) = τ (G).
Definíció
A G gráfban jelölje τ (G) az éleket lefogó minimális pontok
számát.
Tétel (Kőnig)
Tetszőleges G = (A, B; E) páros gráfban ν(G) = τ (G).
Definíció
A G gráfban jelölje τ (G) az éleket lefogó minimális pontok
számát.
Tétel (Kőnig)
Tetszőleges G = (A, B; E) páros gráfban ν(G) = τ (G).
Bizonyítás:
Triviális irány: ν ≤ τ , hiszen a maximális elemszámú
párosítás minden élének legalább egyik csúcsát le kell
fogni.
Algoritmikusan konstruálunk egy M párosítást és egy L
lefogó halmazt melyekre |M | = |L|. Ez bizonyítja, hogy
τ ≤ ν.
Adott M párosítás, ez kezdetben üres. Irányítsuk M éleit B-ből
A-ba (fölfelé), a többi élt pedig A-ból B-be (lefelé):
Z
RA
A
B RB
Adott M párosítás, ez kezdetben üres. Irányítsuk M éleit B-ből
A-ba (fölfelé), a többi élt pedig A-ból B-be (lefelé):
Z
RA
A
B RB
Ha Z ∩ RB nem üres, akkor létezik egy RA -ból RB -be vezető
alternáló P út, amely minden második éle M -beli. Vegyük M
és P szimmetrikus differenciáját, M 0 -t. M 0 -ben P pontosan
azon élei vannak benne, amik M -ben nincsenek.
A RA
B RB
P
A RA
B RB
P
A RA
B RB
B
Előfordulhat, hogy az aktuális M párosításra Z és RB
diszjunktak.
A RA
B RB
B
L = (B ∩ Z) ∪ (A − Z) lefogó ponthalmaz
1 A − Z lefog minden nem Z-beli élt (mert B − Z és A ∩ Z
között nincs él).
2 B ∩ Z lefog minden Z-beli élt, mert Z összefüggő.
Megjegyzés
∀X ⊆ A : |N (X)| ≥ |X| feltételt Hall-feltételnek hívjuk.
Tétel (Hall)
A G = (A, B; E) páros gráfban akkor és csak akkor létezik A-t
fedő párosítás, ha A-ra teljesül a Hall-feltétel (azaz minden
X ⊆ A : |N (X)| ≥ |X|).
Bizonyítás (Hall-tétel):
Egyfelől a Hall-feltétel szükséges. Hiszen ha egy X ⊆ A
halmazra |X| > |N (X)|, akkor már X-et sem lehet
bepárosítani.
Másfelől tegyük fel, hogy a feltétel igaz. Legyen L minimális
lefogó ponthalmaz. X = A − L halmazra teljesül a Hall-feltétel,
ezért |X| ≤ |N (X)|. L lefogó, ezért N (X) ⊆ B ∩ L és így
|N (X)| ≤ |B ∩ L|.
|A| = |A ∩ L| + |X| ≤ |A ∩ L| + |B ∩ L| = |L| = τ (G) = ν(G).
Tehát létezik A-t lefogó teljes párosítás.
N(X)
B
L
A X
Tétel (Kőnig)
Ha a G = (A, B; E) páros gráfban |A| = |B| és minden csúcs
foka r > 0 (azaz G r-reguláris), akkor G-ben létezik teljes
párosítás.
Bizonyítás(Kőnig tétel):
Bebizonyítjuk, hogy reguláris gráf esetén teljesül a Hall-feltétel.
Ebből már következik, hogy van a gráfban teljes párosítás.
Legyen X ⊂ A tetszőleges. Ekkor X-ből összesen r|X| él lép
ki. Mivel B minden csúcsába legfeljebb r él léphet be, így
összesen legalább r|X|/r = |X| csúcsba mindenképpen megy
él. Ezt akartuk belátni.
Tétel (Kőnig)
Ha a G = (A, B; E) páros gráfban |A| = |B| és minden csúcs
foka r > 0 (azaz G r-reguláris), akkor G-ben létezik teljes
párosítás.
Bizonyítás(Kőnig tétel):
Bebizonyítjuk, hogy reguláris gráf esetén teljesül a Hall-feltétel.
Ebből már következik, hogy van a gráfban teljes párosítás.
Legyen X ⊂ A tetszőleges. Ekkor X-ből összesen r|X| él lép
ki. Mivel B minden csúcsába legfeljebb r él léphet be, így
összesen legalább r|X|/r = |X| csúcsba mindenképpen megy
él. Ezt akartuk belátni.
A Hall-tételt erősebb alakban is kimondhatjuk.
Tétel (Ore)
Legyen G = (A, B; E) páros gráf. Ekkor
|A ∩ Z| − |N (A ∩ Z)| = |A ∩ Z| − |B ∩ Z| =
= |A ∩ Z| + |A − Z| − |A − Z| − |B ∩ Z| = |A| − τ (G) =
= |A| − ν(G)
A Hall-tételt erősebb alakban is kimondhatjuk.
Tétel (Ore)
Legyen G = (A, B; E) páros gráf. Ekkor
|A ∩ Z| − |N (A ∩ Z)| = |A ∩ Z| − |B ∩ Z| =
= |A ∩ Z| + |A − Z| − |A − Z| − |B ∩ Z| = |A| − τ (G) =
= |A| − ν(G)
Tétel (Mendelsohn-Dulmage)
Legyen G = (A, B; E) páros gráf. Ha létezik X ⊂ A-t fedő
párosítás, és létezik Y ⊂ B-t fedő párosítás, akkor létezik
X ∪ Y -t fedő párosítás is.
A0 B0 C0 D0 E0 F0
A RA
B RB
A B C D E F
Hopcroft-Karp algoritmus: A Kőnig féle algoritmus futási ideje
O(mn). Ezen fogunk javítani. Az eredeti Kőnig algoritmus
egyszerre 1 út mentén javít. Itt egyszerre több diszjunkt,
alternáló úton keresztül történik a javítás.
A0 B0 C0 D0 E0 F0
A RA
B RB
A B C D E F
2. Felveszünk egy új csúcsot (forrást), s-t, és élt indítunk belőle
az összes RA -beli csúcsba. s-ből indítunk egy szélességi
keresést, és ez alapján beszintezzük a csúcsokat.
D0 C C0 B B0 D
s E0 F E
F0
D0 C C0 B B0 D
s E0 F E
F0
F0
F0
F0
B
A B C D E F
A0 B0 C0 D0 E0 F0
A
B
A B C D E F
A0 B0 C0 D0 E0 F0
A
B
A B C D E F
A0 B0 C0 D0 E0 F0
A
B
A B C D E F
Állítás
Ha egy fázis elején k hosszú volt a legrövidebb javítóút, akkor a
fázis végrehajtása után a legrövidebb javítóút legalább k + 2
hosszú lesz.
Tétel (Hopcroft-Karp)
p
Az algoritmus 2 ν(G) fázis után véget ér.
Egy fázis futásideje: A BFS lefut O(m) idő alatt. Amikor a
végpontokon keresztül visszafele haladunk, minden élen
maximum egyszer haladunk, ez is O(m). Végül a javítás
végrehajtható O(m) időben. Tehát O(m).
√
Fázisok száma: O( n).
√
Tehát az algoritmus futásideje O(m n).