• Nem Talált Eredményt

Maximális párosítás keresése, K ˝onig tétel, Hall feltétel

N/A
N/A
Protected

Academic year: 2022

Ossza meg "Maximális párosítás keresése, K ˝onig tétel, Hall feltétel"

Copied!
33
0
0

Teljes szövegt

(1)

Maximális párosítás keresése, K ˝ onig tétel, Hall feltétel

Papp László

BME

2021. november 12.

(2)

Emlékeztet ˝o: Páros gráfok

Definíció:EgyGgráfpáros gráf, haV(G)felosztható két részre,A-ra ésB-re úgy, hogyA-n ésB-n belül nem vezetnek élek.Ekkor aGgráfot úgy is jelölhetjük, hogyG= (A,B;E).

Példa:Hetero Tinder: Csúcsok az emberek, élek a matchek, A={Férfiak},B={N ˝ok}.

A

B

(3)

Emlékeztet ˝o: Párosítás

Definíció:EgyGgráfbanE(G)egyMrészhalmazát párosításnakvagy másnévenfüggetlen élek halmazának nevezzük, haMsemelyik két elemének nincs közös végpontja.

Példa páros gráf estén:

A B

M

Nem páros gráfban is van párosítás!Példa:

M

(4)

Emlékeztet ˝o: Maximális vs tovább nem b ˝ovíthet ˝o párosítás A magyar nyelv a maximális szót két különböz ˝o fogalomra is használja:

I EgyAhalmaz maximális ha a mérete nagyobb értéket nem vehet fel. (In English: maximum)

I EgyBhalmaz maximális ha tovább nem b ˝ovíthet ˝o. (In English: maximal)

A kett ˝o nem ugyan az, az alábbi gráfbanMtovább nem b ˝ovíthet ˝o, de van nála több élet tartalmazó párostásN:

M N

Definíció:AGgráfmaximális párosításánegy olyan párosítást értünk aminek a lehet ˝o legtöbb éle van.

Példán azNilyen, viszont azMnem!

(5)

Hogyan keressünk maximális párosítást páros gráfban?

Úgynevezett javító utakkal.

Definíció:LegyenMegy párosítás egyGpáros gráfban.

Ekkor egyP utatalternáló útnaknevezzük haP felváltva tartalmazM-beli és nemM-beli éleket. Egy alternáló utatjavító útnak nevezünkha az út párosítatlan csúcsból indul és

párosítatlan csúcsban ér véget.

Miért jók ezek? Mert a javítóút párosításba tartozó éleit a párosításból kidobva és a javítóút többi élét hozzáadva eggyel nagyobb párosítást kapok. Ez m ˝uködik tovább nem b ˝ovíthet ˝o de nem maximális párosítások esetén is.

(6)

Max párosítás keresés javítóutas algoritmussal Input: EgyGpáros gráf.

0. LegyenM =∅.

1. Ha van olyan éleG-nek, aminek nincs közös végpontja semelyikM-beli éllel, akkor ezt az élet hozzáadomM-hez és az 1-es lépést újra próbálom. Különben a 2-es lépéssel folytatom.

2. Javító utat keresek. Ha nincs akkor OutputMés STOP, különben a 3-as lépéssel folytatom.

3. LegyenX a javítóút éleinek azon része amelyekM-ben szerepelnek ésY pedig azM-ben nem szerepl ˝o élei.

M := (M\X)∪Y és a 2. lépésre ugrok.

(7)

Max párosítás keresés javítóutas algoritmussal Input: EgyGpáros gráf.

0. LegyenM =∅.

1. Ha van olyan éleG-nek, aminek nincs közös végpontja semelyikM-beli éllel, akkor ezt az élet hozzáadomM-hez és az 1-es lépést újra próbálom. Különben a 2-es lépéssel folytatom.

2. Javító utat keresek. Ha nincs akkor OutputMés STOP, különben a 3-as lépéssel folytatom.

3. LegyenX a javítóút éleinek azon része amelyekM-ben szerepelnek ésY pedig azM-ben nem szerepl ˝o élei.

M := (M\X)∪Y és a 2. lépésre ugrok.

(8)

Max párosítás keresés javítóutas algoritmussal Input: EgyGpáros gráf.

0. LegyenM =∅.

1. Ha van olyan éleG-nek, aminek nincs közös végpontja semelyikM-beli éllel, akkor ezt az élet hozzáadomM-hez és az 1-es lépést újra próbálom. Különben a 2-es lépéssel folytatom.

2. Javító utat keresek. Ha nincs akkor OutputMés STOP, különben a 3-as lépéssel folytatom.

3. LegyenX a javítóút éleinek azon része amelyekM-ben szerepelnek ésY pedig azM-ben nem szerepl ˝o élei.

M := (M\X)∪Y és a 2. lépésre ugrok.

(9)

Max párosítás keresés javítóutas algoritmussal Input: EgyGpáros gráf.

0. LegyenM =∅.

1. Ha van olyan éleG-nek, aminek nincs közös végpontja semelyikM-beli éllel, akkor ezt az élet hozzáadomM-hez és az 1-es lépést újra próbálom. Különben a 2-es lépéssel folytatom.

2. Javító utat keresek. Ha nincs akkor OutputMés STOP, különben a 3-as lépéssel folytatom.

3. LegyenX a javítóút éleinek azon része amelyekM-ben szerepelnek ésY pedig azM-ben nem szerepl ˝o élei.

M := (M\X)∪Y és a 2. lépésre ugrok.

(10)

Max párosítás keresés javítóutas algoritmussal Input: EgyGpáros gráf.

0. LegyenM =∅.

1. Ha van olyan éleG-nek, aminek nincs közös végpontja semelyikM-beli éllel, akkor ezt az élet hozzáadomM-hez és az 1-es lépést újra próbálom. Különben a 2-es lépéssel folytatom.

2. Javító utat keresek. Ha nincs akkor OutputMés STOP, különben a 3-as lépéssel folytatom.

3. LegyenX a javítóút éleinek azon része amelyekM-ben szerepelnek ésY pedig azM-ben nem szerepl ˝o élei.

M := (M\X)∪Y és a 2. lépésre ugrok.

(11)

Max párosítás keresés javítóutas algoritmussal Input: EgyGpáros gráf.

0. LegyenM =∅.

1. Ha van olyan éleG-nek, aminek nincs közös végpontja semelyikM-beli éllel, akkor ezt az élet hozzáadomM-hez és az 1-es lépést újra próbálom. Különben a 2-es lépéssel folytatom.

2. Javító utat keresek. Ha nincs akkor OutputMés STOP, különben a 3-as lépéssel folytatom.

3. LegyenX a javítóút éleinek azon része amelyekM-ben szerepelnek ésY pedig azM-ben nem szerepl ˝o élei.

M := (M\X)∪Y és a 2. lépésre ugrok.

(12)

Hogyan találjunk javító utat páros gráfban?

Használhatjuk a BFS algoritmus:

Irányítsuk meg azMpárosítás beli éleketAfelé, a többi élet pedigBfelé.

A

B

Az így kapott irányított gráfban indítsuk el a BFS algoritmust mindenA-beliM által le nem fedett csúcsból.

Ha valamelyik bejárási fában van olyanB-beli levél amit nem fed leM, akkor van egy egyértelm ˝u út ezen csúcs és egyA-beli fedetlen csúcs között (ahonnan az adott BFS indult), ráadásul ez az út egy javító út. Ha semelyik bejárási fában nincsB-beli levél amit nem fed leM, akkor javítóút sincs.

(13)

Hogyan találjunk javító utat páros gráfban?

Használhatjuk a BFS algoritmus:

Irányítsuk meg azMpárosítás beli éleketAfelé, a többi élet pedigBfelé.

A

B

Az így kapott irányított gráfban indítsuk el a BFS algoritmust mindenA-beliM által le nem fedett csúcsból.

Ha valamelyik bejárási fában van olyanB-beli levél amit nem fed leM, akkor van egy egyértelm ˝u út ezen csúcs és egyA-beli fedetlen csúcs között (ahonnan az adott BFS indult), ráadásul ez az út egy javító út. Ha semelyik bejárási fában nincsB-beli levél amit nem fed leM, akkor javítóút sincs.

(14)

Hogyan találjunk javító utat páros gráfban?

Használhatjuk a BFS algoritmus:

Irányítsuk meg azMpárosítás beli éleketAfelé, a többi élet pedigBfelé.

A

B

Az így kapott irányított gráfban indítsuk el a BFS algoritmust mindenA-beliM által le nem fedett csúcsból.

Ha valamelyik bejárási fában van olyanB-beli levél amit nem fed leM, akkor van egy egyértelm ˝u út ezen csúcs és egyA-beli fedetlen csúcs között (ahonnan az adott BFS indult), ráadásul ez az út egy javító út. Ha semelyik bejárási fában nincsB-beli levél amit nem fed leM, akkor javítóút sincs.

(15)

Hogyan találjunk javító utat páros gráfban?

Használhatjuk a BFS algoritmus:

Irányítsuk meg azMpárosítás beli éleketAfelé, a többi élet pedigBfelé.

A

B

Az így kapott irányított gráfban indítsuk el a BFS algoritmust mindenA-beliM által le nem fedett csúcsból.

Ha valamelyik bejárási fában van olyanB-beli levél amit nem fed leM, akkor van egy egyértelm ˝u út ezen csúcs és egyA-beli fedetlen csúcs között (ahonnan az adott BFS indult), ráadásul ez az út egy javító út. Ha semelyik bejárási fában nincsB-beli levél amit nem fed leM, akkor javítóút sincs.

(16)

Hogyan találjunk javító utat páros gráfban?

Használhatjuk a BFS algoritmus:

Irányítsuk meg azMpárosítás beli éleketAfelé, a többi élet pedigBfelé.

A

B

Az így kapott irányított gráfban indítsuk el a BFS algoritmust mindenA-beliM által le nem fedett csúcsból.

Ha valamelyik bejárási fában van olyanB-beli levél amit nem fed leM, akkor van egy egyértelm ˝u út ezen csúcs és egyA-beli fedetlen csúcs között (ahonnan az adott BFS indult), ráadásul ez az út egy javító út. Ha semelyik bejárási fában nincsB-beli levél amit nem fed leM, akkor javítóút sincs.

(17)

Hogyan találjunk javító utat páros gráfban?

Használhatjuk a BFS algoritmus:

Irányítsuk meg azMpárosítás beli éleketAfelé, a többi élet pedigBfelé.

A

B

Az így kapott irányított gráfban indítsuk el a BFS algoritmust mindenA-beliM által le nem fedett csúcsból.

Ha valamelyik bejárási fában van olyanB-beli levél amit nem fed leM, akkor van egy egyértelm ˝u út ezen csúcs és egyA-beli fedetlen csúcs között (ahonnan az adott BFS indult), ráadásul ez az út egy javító út. Ha semelyik bejárási fában nincsB-beli levél amit nem fed leM, akkor javítóút sincs.

(18)

Hogyan találjunk javító utat páros gráfban?

Használhatjuk a BFS algoritmus:

Irányítsuk meg azMpárosítás beli éleketAfelé, a többi élet pedigBfelé.

A

B

Az így kapott irányított gráfban indítsuk el a BFS algoritmust mindenA-beliM által le nem fedett csúcsból.

Ha valamelyik bejárási fában van olyanB-beli levél amit nem fed leM, akkor van egy egyértelm ˝u út ezen csúcs és egyA-beli fedetlen csúcs között (ahonnan az adott BFS indult), ráadásul ez az út egy javító út. Ha semelyik bejárási fában nincsB-beli levél amit nem fed leM, akkor javítóút sincs.

(19)

Hogyan találjunk javító utat páros gráfban?

Használhatjuk a BFS algoritmus:

Irányítsuk meg azMpárosítás beli éleketAfelé, a többi élet pedigBfelé.

A

B

Az így kapott irányított gráfban indítsuk el a BFS algoritmust mindenA-beliM által le nem fedett csúcsból.

Ha valamelyik bejárási fában van olyanB-beli levél amit nem fed leM, akkor van egy egyértelm ˝u út ezen csúcs és egyA-beli fedetlen csúcs között (ahonnan az adott BFS indult), ráadásul ez az út egy javító út. Ha semelyik bejárási fában nincsB-beli levél amit nem fed leM, akkor javítóút sincs.

(20)

Miért m ˝uködik a javítóutas algoritmus?

Állítás:Ha aG(nem feltétlenül páros) gráfban lév ˝oM párosítás nem maximális, akkor van hozzá javítóút.

Bizonyítás:LegyenN egy maximális párosítás.|N|>|M|.

Nézzük a G azon részgráfját aminek az élhalmazaM∪N.

M

N javito

egy ut

Ebben minden csúcs foka legfeljebb 2, emiatt minden összefügg ˝o komponense kör vagy út. Mivel|N|>|M|, ezért van olyan komponens ami több élet tartalmazN-b ˝ol mintM-b ˝ol. Ez a komponens mindenképpen út, aminek kezd ˝o és

végpontját nem fogja leMés az élei felváltva találhatóakN-ben ésM-ben. Tehát ez egy javítóútM-hez.

(21)

Miért m ˝uködik a javítóutas algoritmus?

Állítás:Ha aG(nem feltétlenül páros) gráfban lév ˝oM párosítás nem maximális, akkor van hozzá javítóút.

Bizonyítás:LegyenN egy maximális párosítás.|N|>|M|.

Nézzük a G azon részgráfját aminek az élhalmazaM∪N.

M N

egy javito

ut

Ebben minden csúcs foka legfeljebb 2, emiatt minden összefügg ˝o komponense kör vagy út.

Mivel|N|>|M|, ezért van olyan komponens ami több élet tartalmazN-b ˝ol mintM-b ˝ol. Ez a komponens mindenképpen út, aminek kezd ˝o és

végpontját nem fogja leMés az élei felváltva találhatóakN-ben ésM-ben. Tehát ez egy javítóútM-hez.

(22)

Miért m ˝uködik a javítóutas algoritmus?

Állítás:Ha aG(nem feltétlenül páros) gráfban lév ˝oM párosítás nem maximális, akkor van hozzá javítóút.

Bizonyítás:LegyenN egy maximális párosítás.|N|>|M|.

Nézzük a G azon részgráfját aminek az élhalmazaM∪N.

M N

egy ut javito

Ebben minden csúcs foka legfeljebb 2, emiatt minden összefügg ˝o komponense kör vagy út. Mivel|N|>|M|, ezért van olyan komponens ami több élet tartalmazN-b ˝ol mintM-b ˝ol.

Ez a komponens mindenképpen út, aminek kezd ˝o és

végpontját nem fogja leMés az élei felváltva találhatóakN-ben ésM-ben. Tehát ez egy javítóútM-hez.

(23)

Miért m ˝uködik a javítóutas algoritmus?

Állítás:Ha aG(nem feltétlenül páros) gráfban lév ˝oM párosítás nem maximális, akkor van hozzá javítóút.

Bizonyítás:LegyenN egy maximális párosítás.|N|>|M|.

Nézzük a G azon részgráfját aminek az élhalmazaM∪N.

M N

ut javito egy

Ebben minden csúcs foka legfeljebb 2, emiatt minden összefügg ˝o komponense kör vagy út. Mivel|N|>|M|, ezért van olyan komponens ami több élet tartalmazN-b ˝ol mintM-b ˝ol.

Ez a komponens mindenképpen út, aminek kezd ˝o és

végpontját nem fogja leMés az élei felváltva találhatóakN-ben ésM-ben. Tehát ez egy javítóútM-hez.

(24)

Gráfparaméterek páros gráfok esetén K ˝onig tétel

HaGgráf páros gráf, akkorν(G) =τ(G).

Állítás

HaGgráf páros gráf és nincs izolált pontja, akkorα(G) =ρ(G). Bizonyítás:K ˝onig szerintν(G) =τ(G). Mivel a gráf páros ezért nem lehet benne hurokél, és feltevésünk szerint nincs izolált pontja sem. Úgyhogy alkalmazhatjuk Gallai tételeit:

n−ρ(G) =ν(G) =τ(G) =n−α(G) ρ(G) =α(G)

(25)

Gráfparaméterek páros gráfok esetén K ˝onig tétel

HaGgráf páros gráf, akkorν(G) =τ(G).

Állítás

HaGgráf páros gráf és nincs izolált pontja, akkorα(G) =ρ(G).

Bizonyítás:K ˝onig szerintν(G) =τ(G). Mivel a gráf páros ezért nem lehet benne hurokél, és feltevésünk szerint nincs izolált pontja sem. Úgyhogy alkalmazhatjuk Gallai tételeit:

n−ρ(G) =ν(G) =τ(G) =n−α(G) ρ(G) =α(G)

(26)

K ˝onig tétel bizonyítása:

LegyenM egy maximális párosítás aGpáros gráfban és legyenFAazAszínosztályban azM által fedetlen csúcsok halmaza. AzM FA-ból alternáló úton elérhet ˝o éleinek válasszuk ki aB-be es ˝o végpontjait. AzM többi élének válasszuk ki az A-ba tartozó végpontjait. Jelölje a kiválasztott pontokatT.

A

B

M F

A

T

EkkorT lefog minden élet, hiszen ha lenne egyT által le nem fogott él, akkor annak azAbeli végpontja elérhet ˝o alternáló útonFA-ból. Ekkor viszont aBbeli végpontja is elérhet ˝oFA-ból alternáló úton, amitMnem fedT választása miatt. Viszont ez az alternáló út javítóút lenne, ami nincs mertMmaximális. EmiattT lefogó ponthalmaz és ígyτ(G)≤ |T|=|M|=ν(G). Aτ(G)≥ν(G)egyenl ˝otlenség pedig minden gráfra igaz.

(27)

K ˝onig tétel bizonyítása:

LegyenM egy maximális párosítás aGpáros gráfban és legyenFAazAszínosztályban azM által fedetlen csúcsok halmaza. AzM FA-ból alternáló úton elérhet ˝o éleinek válasszuk ki aB-be es ˝o végpontjait. AzM többi élének válasszuk ki az A-ba tartozó végpontjait. Jelölje a kiválasztott pontokatT.

A

B

M F

A

T

EkkorT lefog minden élet, hiszen ha lenne egyT által le nem fogott él, akkor annak azAbeli végpontja elérhet ˝o alternáló útonFA-ból. Ekkor viszont aBbeli végpontja is elérhet ˝oFA-ból alternáló úton, amitMnem fedT választása miatt. Viszont ez az alternáló út javítóút lenne, ami nincs mertMmaximális.

EmiattT lefogó ponthalmaz és ígyτ(G)≤ |T|=|M|=ν(G).

Aτ(G)≥ν(G)egyenl ˝otlenség pedig minden gráfra igaz.

(28)

Teljes párosítás, A-t fed ˝o párosítás

Definíció:AGgráfnakMegyteljes párosítása, haM párosítás ésGminden csúcsára illeszkedik egyMbeli él.

M

DefinícióEgyGgráfban legyenAa csúcsok egy részhalmaza.

EkkorNegyA-t fed ˝o párosításhaAminden elemére illeszkedik egyN beli él.

N

A

(29)

Párosítás páros gráfban

Definíció:LegyenX aGgráf csúcsainak egy részhalmaza.

EkkorN(X)-szel jelöljük azX szomszédainak halmazát.

X

N(X)

Hall feltétel

Legyen aGpáros gráf két színosztályaAésB, azaz

G= (A,B;E). Ekkor aGgráfnak pontosan akkor vanA-t fed ˝o párosítása, amikor azAmindenX részhalmazára igaz, hogy

|N(X)| ≥ |X|.

A szükségesség triviális (3 férfi nem tud feleségül venni összesen 2 n ˝ot), az elégségesség bizonyítása pedig most jön.

(30)

Hall feltétel bizonyítása:

Az elégségességet bizonyítjuk csak, a szükségessék triviális.

Tegyük fel tehát, hogy|N(X)| ≥ |X|mindenX ⊆A-ra! Azt fogjuk megmutatni, hogyν(G)≥ |A|ami igazolja, hogy vanA-t fed ˝o párosítás.

A B

T T

A

T

B

LegyenT egy minimális lefogó ponthalmazG-ben. Legyen TA:=T ∩AésTB :=T ∩B. MivelT lefogja azA\TA-ból kiinduló éleket ezért,N(A\TA)⊆TB. Így:

|A|=|TA|+|A\TA| ≤ |TA|+|N(A\TA)| ≤ |TA|+|TB|=τ(G) =ν(G) Az utolsó egyenl ˝oségnél a K ˝onig tételt használtuk fel. .

(31)

Hall feltétel bizonyítása:

Az elégségességet bizonyítjuk csak, a szükségessék triviális.

Tegyük fel tehát, hogy|N(X)| ≥ |X|mindenX ⊆A-ra! Azt fogjuk megmutatni, hogyν(G)≥ |A|ami igazolja, hogy vanA-t fed ˝o párosítás.

A B

T T

A

T

B

LegyenT egy minimális lefogó ponthalmazG-ben. Legyen TA:=T ∩AésTB :=T ∩B. MivelT lefogja azA\TA-ból kiinduló éleket ezért,N(A\TA)⊆TB.

Így:

|A|=|TA|+|A\TA| ≤ |TA|+|N(A\TA)| ≤ |TA|+|TB|=τ(G) =ν(G) Az utolsó egyenl ˝oségnél a K ˝onig tételt használtuk fel. .

(32)

Hall feltétel bizonyítása:

Az elégségességet bizonyítjuk csak, a szükségessék triviális.

Tegyük fel tehát, hogy|N(X)| ≥ |X|mindenX ⊆A-ra! Azt fogjuk megmutatni, hogyν(G)≥ |A|ami igazolja, hogy vanA-t fed ˝o párosítás.

A B

T T

A

T

B

LegyenT egy minimális lefogó ponthalmazG-ben. Legyen TA:=T ∩AésTB :=T ∩B. MivelT lefogja azA\TA-ból kiinduló éleket ezért,N(A\TA)⊆TB. Így:

|A|=|TA|+|A\TA| ≤ |TA|+|N(A\TA)| ≤ |TA|+|TB|=τ(G) =ν(G) Az utolsó egyenl ˝oségnél a K ˝onig tételt használtuk fel. .

(33)

Teljes párosítás létezése páros gráfban Frobenius tétel

LegyenG= (A,B;E)páros gráf. EkkorG-ben pontosan akkor van teljes párosítás ha|A|=|B|és ha azAmindenX

részhalmazára igaz, hogy|N(X)| ≥ |X|.

Bizonyítás:Vegyük észre, hogy a Frobénius tétel feltétele a Hall-feltétel plusz az, hogy azAésBmérete megegyezik.

Van TP =⇒ feltételek:

Ha a gráfban van teljes párosítás, akkor annak minden éle pontosan egyAés egyBbeli csúcsra illeszkedik és minden csúcsra illeszkedik pontosan egy él. Emiatt|A|=|B|. Illetve a teljes párosítás egyben egyA-t fed ˝o párosítás is amire a Hall-feltételnek teljesülnie kell.

Feltételek =⇒ van TP:

Ha a Hall-feltétel teljesül, akkor a gráfban vanA-t fed ˝o

párosítás. Mivel|A|=|B|ezért ez a párosítás egybenB-t fed ˝o párosítás is, ami miatt teljes párosítás.

Hivatkozások

KAPCSOLÓDÓ DOKUMENTUMOK

Intenzitásprofil a dolgozat 38.b ábrájának kísérleti felvételén (X773_Fig38b) mérve (CRISP ELD). A kamerahosszt nem ismerve, a lapos csúcs maximumának helyét pixelben mértem.

A felső határ meghatározása után, ami a minta út esetében 1,25*108–ra adódott (3. ábra víz- szintes vonal), megkaptuk, hogy mely csúcs- értékeket

Minden élhez 0 vagy 1 címkét rendelünk úgy, hogy minden nem levél csúcs esetén a két gyerekhez kifutó két él egyikének 0, másikának 1 legyen a címkéje.. A fa egy

Míg belső el- lentmondás esetén az olvasó (ha észreveszi a hibát) meg sem tudja konstruálni az agyá- ban a regény inkonzisztens részét, addig külső ellentmondás esetén

Egy párosítás akkor és csak akkor maximális, ha nincs hozzá tartozó

Egy párosítás akkor és csak akkor maximális, ha nincs hozzá tartozó

Ha egy ilyen nyelvr ˝ol kiderülne, hogy P-beli (coNP-beli), akkor ugyanez igaz lenne minden NP-beli nyelvre.. Van-e

Azonban a virtuális tárlatból kifelé mutató linkek, például a Szépművészeti Múzeum Klasszikus ókor kiállításánák oldala, a Román Csarnok felújítását bemu-