03.07.2013 Views

Hoofdstuk 12: Koppelingen - caagt

Hoofdstuk 12: Koppelingen - caagt

Hoofdstuk 12: Koppelingen - caagt

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Hoofdstuk</strong> <strong>12</strong>: <strong>Koppelingen</strong><br />

Definities<br />

koppeling<br />

perfecte koppeling<br />

maximum koppeling<br />

Algoritmen voor maximum koppelingen<br />

eigenschappen<br />

maximum koppelingen in bipartiete grafen<br />

Optimale-toekenningsprobleem<br />

maximum gewogen koppeling in complete<br />

bipartiete graaf Cursus Grafentheorie en Combinatorische Optimalisatie (2006–2007) – p.1/22


<strong>Koppelingen</strong><br />

Voorbeelden<br />

toekenningsprobleem / huwelijksprobleem<br />

optimale-toekenningsprobleem<br />

Cursus Grafentheorie en Combinatorische Optimalisatie (2006–2007) – p.2/22


<strong>Koppelingen</strong><br />

Voorbeelden<br />

toekenningsprobleem / huwelijksprobleem<br />

optimale-toekenningsprobleem<br />

Koppeling in G<br />

1-reguliere deelgraaf van G<br />

verzameling bogen die koppeling induceert<br />

Cursus Grafentheorie en Combinatorische Optimalisatie (2006–2007) – p.2/22


<strong>Koppelingen</strong><br />

Voorbeelden<br />

toekenningsprobleem / huwelijksprobleem<br />

optimale-toekenningsprobleem<br />

Koppeling in G<br />

1-reguliere deelgraaf van G<br />

verzameling bogen die koppeling induceert<br />

Verzadigde top<br />

top die behoort tot boog van koppeling<br />

anders: onverzadigde top<br />

Cursus Grafentheorie en Combinatorische Optimalisatie (2006–2007) – p.2/22


Perfecte koppelingen<br />

Perfecte koppeling of 1-factor van G<br />

koppeling die elke top van G verzadigt<br />

Cursus Grafentheorie en Combinatorische Optimalisatie (2006–2007) – p.3/22


Perfecte koppelingen<br />

Perfecte koppeling of 1-factor van G<br />

koppeling die elke top van G verzadigt<br />

Voorbeelden<br />

Kn,n heeft n! perfecte koppelingen<br />

Cursus Grafentheorie en Combinatorische Optimalisatie (2006–2007) – p.3/22


Perfecte koppelingen<br />

Perfecte koppeling of 1-factor van G<br />

koppeling die elke top van G verzadigt<br />

Voorbeelden<br />

Kn,n heeft n! perfecte koppelingen<br />

K2n+1 heeft geen perfecte koppelingen<br />

Cursus Grafentheorie en Combinatorische Optimalisatie (2006–2007) – p.3/22


Perfecte koppelingen<br />

Perfecte koppeling of 1-factor van G<br />

koppeling die elke top van G verzadigt<br />

Voorbeelden<br />

Kn,n heeft n! perfecte koppelingen<br />

K2n+1 heeft geen perfecte koppelingen<br />

K2n heeft fn = n−1 i=0 (2n − 1 − 2i) perfecte<br />

koppelingen<br />

# manieren om paren te vormen uit 2n el.<br />

Cursus Grafentheorie en Combinatorische Optimalisatie (2006–2007) – p.3/22


Perfecte koppelingen<br />

Perfecte koppeling of 1-factor van G<br />

koppeling die elke top van G verzadigt<br />

Voorbeelden<br />

Kn,n heeft n! perfecte koppelingen<br />

K2n+1 heeft geen perfecte koppelingen<br />

K2n heeft fn = n−1 i=0 (2n − 1 − 2i) perfecte<br />

koppelingen<br />

# manieren om paren te vormen uit 2n el.<br />

in hyperkubus Qn ?<br />

Cursus Grafentheorie en Combinatorische Optimalisatie (2006–2007) – p.3/22


Maximum koppelingen<br />

Maximale koppeling<br />

koppeling die niet kan uitgebreid worden<br />

Cursus Grafentheorie en Combinatorische Optimalisatie (2006–2007) – p.4/22


Maximum koppelingen<br />

Maximale koppeling<br />

koppeling die niet kan uitgebreid worden<br />

Maximum koppeling<br />

koppeling met grootst mogelijk aantal bogen<br />

Cursus Grafentheorie en Combinatorische Optimalisatie (2006–2007) – p.4/22


Maximum koppelingen<br />

Maximale koppeling<br />

koppeling die niet kan uitgebreid worden<br />

Maximum koppeling<br />

koppeling met grootst mogelijk aantal bogen<br />

Opmerking<br />

maximale koppeling = maximum koppeling<br />

voorbeeld?<br />

Cursus Grafentheorie en Combinatorische Optimalisatie (2006–2007) – p.4/22


Vermeerderende paden<br />

M-alternerend pad (zij M koppeling in G)<br />

wisselt af tussen bogen wel en niet in M<br />

Cursus Grafentheorie en Combinatorische Optimalisatie (2006–2007) – p.5/22


Vermeerderende paden<br />

M-alternerend pad (zij M koppeling in G)<br />

wisselt af tussen bogen wel en niet in M<br />

M-vermeerderend pad P<br />

M-alternerend pad P dat begint en eindigt<br />

met onverzadigde top<br />

Cursus Grafentheorie en Combinatorische Optimalisatie (2006–2007) – p.5/22


Vermeerderende paden<br />

M-alternerend pad (zij M koppeling in G)<br />

wisselt af tussen bogen wel en niet in M<br />

M-vermeerderend pad P<br />

M-alternerend pad P dat begint en eindigt<br />

met onverzadigde top<br />

Vermeerderen van M langs P<br />

vervang M ∩ E(P ) door E(P ) \ M<br />

bekomen M ′ is koppeling met 1 boog meer<br />

dan M<br />

Cursus Grafentheorie en Combinatorische Optimalisatie (2006–2007) – p.5/22


Karakterisatie maximum koppelinge<br />

Stelling<br />

koppeling M in G is maximum koppeling<br />

a.s.a. G heeft geen M-vermeerderend pad<br />

Cursus Grafentheorie en Combinatorische Optimalisatie (2006–2007) – p.6/22


Karakterisatie maximum koppelinge<br />

Stelling<br />

koppeling M in G is maximum koppeling<br />

a.s.a. G heeft geen M-vermeerderend pad<br />

Symmetrisch verschil<br />

M △ M ′ = (M ∪ M ′ ) \ (M ∩ M ′ )<br />

Cursus Grafentheorie en Combinatorische Optimalisatie (2006–2007) – p.6/22


Bepalen maximum koppelingen<br />

Onderstellingen<br />

zij M koppeling in G, niet maximum<br />

zij v onverzadigde top t.o.v. M<br />

zij M ′ koppeling bekomen door<br />

vermeerdering langs M-vermeerderend pad<br />

Cursus Grafentheorie en Combinatorische Optimalisatie (2006–2007) – p.7/22


Bepalen maximum koppelingen<br />

Onderstellingen<br />

zij M koppeling in G, niet maximum<br />

zij v onverzadigde top t.o.v. M<br />

zij M ′ koppeling bekomen door<br />

vermeerdering langs M-vermeerderend pad<br />

Stelling<br />

als G een M ′ -vermeerderend pad met<br />

eindtop v bevat, dan bevat G ook een<br />

M-vermeerderend pad met eindtop v<br />

Cursus Grafentheorie en Combinatorische Optimalisatie (2006–2007) – p.7/22


Bepalen maximum koppelingen<br />

Gevolg<br />

zij M0, M1, M2, . . . , Mk reeks koppelingen in G<br />

Mi bekomen uit Mi−1 langs vermeerderend<br />

pad, voor 1 ≤ i ≤ k<br />

zij v onverzadigde top t.o.v. M0, waarvoor<br />

geen M-vermeerderend pad met eindtop v<br />

dan bevat G geen Mi-vermeerderend pad<br />

met eindtop v, voor alle 1 ≤ i ≤ k<br />

Cursus Grafentheorie en Combinatorische Optimalisatie (2006–2007) – p.8/22


Bepalen maximum koppelingen<br />

Algoritme: basisideeën<br />

zij M koppeling in G<br />

voor elke onverzadigde top v t.o.v. M<br />

bepaal M-vermeerderend pad P met<br />

eindtop v<br />

wanneer bestaat: vermeerder M langs P<br />

wanneer niet bestaat: v blijft onverzadigd in<br />

maximum koppeling<br />

Cursus Grafentheorie en Combinatorische Optimalisatie (2006–2007) – p.9/22


Bepalen maximum koppelingen<br />

Algoritme: basisideeën<br />

zij M koppeling in G<br />

voor elke onverzadigde top v t.o.v. M<br />

bepaal M-vermeerderend pad P met<br />

eindtop v<br />

wanneer bestaat: vermeerder M langs P<br />

wanneer niet bestaat: v blijft onverzadigd in<br />

maximum koppeling<br />

Probleem<br />

efficiënt zoeken van vermeerderend pad<br />

Cursus Grafentheorie en Combinatorische Optimalisatie (2006–2007) – p.9/22


In bipartiete grafen<br />

Algoritme: zoeken vermeerderend pad<br />

zij v onverzadigde top<br />

via BFS, boom met wortel v opbouwen<br />

met alle paden alternerend t.o.v. M<br />

d.i. alternerende boom<br />

Cursus Grafentheorie en Combinatorische Optimalisatie (2006–2007) – p.10/22


In bipartiete grafen<br />

Algoritme: zoeken vermeerderend pad<br />

zij v onverzadigde top<br />

via BFS, boom met wortel v opbouwen<br />

met alle paden alternerend t.o.v. M<br />

d.i. alternerende boom<br />

totdat onverzadigde top w bereiken<br />

dan is pad v-w vermeerderend pad<br />

of totdat geen toppen meer te beschouwen<br />

dan is er geen vermeerderend pad uit v<br />

Cursus Grafentheorie en Combinatorische Optimalisatie (2006–2007) – p.10/22


Gewogen koppelingen<br />

Koppeling M in G (zij G gewogen graaf)<br />

cfr. ongewogen grafen<br />

verzameling bogen waarvan geen 2 incident<br />

Cursus Grafentheorie en Combinatorische Optimalisatie (2006–2007) – p.11/22


Gewogen koppelingen<br />

Koppeling M in G (zij G gewogen graaf)<br />

cfr. ongewogen grafen<br />

verzameling bogen waarvan geen 2 incident<br />

Gewicht van koppeling M<br />

som van gewichten van bogen van M<br />

Cursus Grafentheorie en Combinatorische Optimalisatie (2006–2007) – p.11/22


Gewogen koppelingen<br />

Koppeling M in G (zij G gewogen graaf)<br />

cfr. ongewogen grafen<br />

verzameling bogen waarvan geen 2 incident<br />

Gewicht van koppeling M<br />

som van gewichten van bogen van M<br />

Maximum gewogen koppeling<br />

koppeling met grootste gewicht in G<br />

Cursus Grafentheorie en Combinatorische Optimalisatie (2006–2007) – p.11/22


Optimale-toekenningsprobleem<br />

Optimale-toekenningsprobleem<br />

bepalen van maximum gewogen koppeling in<br />

bipartiete graaf<br />

Cursus Grafentheorie en Combinatorische Optimalisatie (2006–2007) – p.<strong>12</strong>/22


Optimale-toekenningsprobleem<br />

Optimale-toekenningsprobleem<br />

bepalen van maximum gewogen koppeling in<br />

bipartiete graaf<br />

Opmerking<br />

veronderstellen complete bipartiete graaf G<br />

geen beperking<br />

Cursus Grafentheorie en Combinatorische Optimalisatie (2006–2007) – p.<strong>12</strong>/22


Optimale-toekenningsprobleem<br />

Optimale-toekenningsprobleem<br />

bepalen van maximum gewogen koppeling in<br />

bipartiete graaf<br />

Opmerking<br />

veronderstellen complete bipartiete graaf G<br />

geen beperking<br />

maximum gewogen koppeling is perfecte<br />

koppeling<br />

Cursus Grafentheorie en Combinatorische Optimalisatie (2006–2007) – p.<strong>12</strong>/22


Algoritmen<br />

Naïef algoritme<br />

bepaal alle n! perfecte koppelingen van Kn,n<br />

daarin koppeling met grootste gewicht<br />

Cursus Grafentheorie en Combinatorische Optimalisatie (2006–2007) – p.13/22


Algoritmen<br />

Naïef algoritme<br />

bepaal alle n! perfecte koppelingen van Kn,n<br />

daarin koppeling met grootste gewicht<br />

niet efficiënt<br />

Cursus Grafentheorie en Combinatorische Optimalisatie (2006–2007) – p.13/22


Algoritmen<br />

Naïef algoritme<br />

bepaal alle n! perfecte koppelingen van Kn,n<br />

daarin koppeling met grootste gewicht<br />

niet efficiënt<br />

Algoritme van Kuhn-Munkres<br />

efficiënt algoritme<br />

iteratie over steeds betere ‘geschikte<br />

toppenlabelingen’<br />

Cursus Grafentheorie en Combinatorische Optimalisatie (2006–2007) – p.13/22


Toppenlabelingen<br />

Geschikte toppenlabeling ℓ<br />

reële functie ℓ op V = V1 ∪ V2 zodanig dat<br />

ℓ(v) + ℓ(u) ≥ w(uv), ∀v ∈ V1, u ∈ V2<br />

ℓ(x) wordt label van top x genoemd<br />

Cursus Grafentheorie en Combinatorische Optimalisatie (2006–2007) – p.14/22


Toppenlabelingen<br />

Geschikte toppenlabeling ℓ<br />

reële functie ℓ op V = V1 ∪ V2 zodanig dat<br />

ℓ(v) + ℓ(u) ≥ w(uv), ∀v ∈ V1, u ∈ V2<br />

ℓ(x) wordt label van top x genoemd<br />

Merk op<br />

voorbeeld van geschikte toppenlabeling<br />

ℓ(v) = max{w(vu) | u ∈ V2} , ∀v ∈ V1<br />

ℓ(u) = 0 , ∀u ∈ V2<br />

Cursus Grafentheorie en Combinatorische Optimalisatie (2006–2007) – p.14/22


Toppenlabelingen<br />

Geschikte toppenlabeling ℓ<br />

reële functie ℓ op V = V1 ∪ V2 zodanig dat<br />

ℓ(v) + ℓ(u) ≥ w(uv), ∀v ∈ V1, u ∈ V2<br />

ℓ(x) wordt label van top x genoemd<br />

Merk op<br />

voorbeeld van geschikte toppenlabeling<br />

ℓ(v) = max{w(vu) | u ∈ V2} , ∀v ∈ V1<br />

ℓ(u) = 0 , ∀u ∈ V2<br />

m.a.w. elke gewogen complete bipartiete<br />

graaf heeft geschikte labeling<br />

Cursus Grafentheorie en Combinatorische Optimalisatie (2006–2007) – p.14/22


Toppenlabelingen (2)<br />

Deelgrafen bepaald door geschikte<br />

toppenlabeling ℓ<br />

Eℓ = {vu ∈ E(G) | ℓ(u) + ℓ(v) = w(vu)}<br />

Cursus Grafentheorie en Combinatorische Optimalisatie (2006–2007) – p.15/22


Toppenlabelingen (2)<br />

Deelgrafen bepaald door geschikte<br />

toppenlabeling ℓ<br />

Eℓ = {vu ∈ E(G) | ℓ(u) + ℓ(v) = w(vu)}<br />

Hℓ = deelgraaf van G opgespannen door Eℓ<br />

Gℓ = onderliggende ongewogen graaf van Hℓ<br />

Cursus Grafentheorie en Combinatorische Optimalisatie (2006–2007) – p.15/22


Toppenlabelingen (2)<br />

Deelgrafen bepaald door geschikte<br />

toppenlabeling ℓ<br />

Eℓ = {vu ∈ E(G) | ℓ(u) + ℓ(v) = w(vu)}<br />

Hℓ = deelgraaf van G opgespannen door Eℓ<br />

Gℓ = onderliggende ongewogen graaf van Hℓ<br />

Eigenschap<br />

als Hℓ perfecte koppeling M bevat, dan is M<br />

maximum gewogen koppeling in G<br />

Cursus Grafentheorie en Combinatorische Optimalisatie (2006–2007) – p.15/22


Algoritme<br />

Bepalen van maximum gewogen koppeling<br />

bepaal geschikte toppenlabeling ℓ<br />

construeer Eℓ, Hℓ en Gℓ<br />

bepaal maximum koppeling M in Gℓ<br />

als M perfecte koppeling<br />

dan maximum gewogen koppeling in G<br />

Cursus Grafentheorie en Combinatorische Optimalisatie (2006–2007) – p.16/22


Algoritme<br />

Bepalen van maximum gewogen koppeling<br />

bepaal geschikte toppenlabeling ℓ<br />

construeer Eℓ, Hℓ en Gℓ<br />

bepaal maximum koppeling M in Gℓ<br />

als M perfecte koppeling<br />

dan maximum gewogen koppeling in G<br />

zo niet<br />

voor elke onverzadigde top x ∈ V1<br />

construeer M-vermeerderend pad met<br />

eindtop x<br />

Cursus Grafentheorie en Combinatorische Optimalisatie (2006–2007) – p.16/22


Voorbeeld (1)<br />

u1 u2 u3 u4 u5 ℓ(vi)<br />

v1 5 1 1 3 2 5<br />

v2 0 1 3 3 4 4<br />

v3 2 5 4 3 0 5<br />

v4 2 2 3 4 4 4<br />

v5 6 2 0 0 1 6<br />

ℓ(ui) 0 0 0 0 0<br />

Cursus Grafentheorie en Combinatorische Optimalisatie (2006–2007) – p.17/22


Voorbeeld (1)<br />

u1 u2 u3 u4 u5 ℓ(vi)<br />

v1 5 1 1 3 2 5<br />

v2 0 1 3 3 4 4<br />

v3 2 5 4 3 0 5<br />

v4 2 2 3 4 4 4<br />

v5 6 2 0 0 1 6<br />

ℓ(ui) 0 0 0 0 0<br />

v1 v2 v3 v4 v5<br />

u1 u2 u3 u4 u5<br />

Cursus Grafentheorie en Combinatorische Optimalisatie (2006–2007) – p.17/22


Voorbeeld (1)<br />

u1 u2 u3 u4 u5 ℓ(vi)<br />

v1 5 1 1 3 2 5<br />

v2 0 1 3 3 4 4<br />

v3 2 5 4 3 0 5<br />

v4 2 2 3 4 4 4<br />

v5 6 2 0 0 1 6<br />

ℓ(ui) 0 0 0 0 0<br />

v1 v2 v3 v4 v5<br />

u1 u2 u3 u4 u5<br />

v5<br />

u1<br />

v1<br />

Cursus Grafentheorie en Combinatorische Optimalisatie (2006–2007) – p.17/22


Construeren M-vermeerderend pad uit x<br />

construeer M-alternerende boom T vanuit x<br />

deze bevat geen M-vermeerderend pad!<br />

Cursus Grafentheorie en Combinatorische Optimalisatie (2006–2007) – p.18/22


Construeren M-vermeerderend pad uit x<br />

construeer M-alternerende boom T vanuit x<br />

deze bevat geen M-vermeerderend pad!<br />

bepaal aangepaste geschikte labeling ℓ ′<br />

waarvoor M en T bevat zijn in Gℓ ′<br />

zodat M-alternerende boom T kan<br />

uitgebreid worden<br />

Cursus Grafentheorie en Combinatorische Optimalisatie (2006–2007) – p.18/22


Voorbeeld (2)<br />

u1 u2 u3 u4 u5 ℓ(vi)<br />

v1 5 1 1 3 2 3<br />

v2 0 1 3 3 4 4<br />

v3 2 5 4 3 0 5<br />

v4 2 2 3 4 4 4<br />

v5 6 2 0 0 1 4<br />

ℓ(ui) 2 0 0 0 0<br />

Cursus Grafentheorie en Combinatorische Optimalisatie (2006–2007) – p.19/22


Voorbeeld (2)<br />

u1 u2 u3 u4 u5 ℓ(vi)<br />

v1 5 1 1 3 2 3<br />

v2 0 1 3 3 4 4<br />

v3 2 5 4 3 0 5<br />

v4 2 2 3 4 4 4<br />

v5 6 2 0 0 1 4<br />

ℓ(ui) 2 0 0 0 0<br />

v1 v2 v3 v4 v5<br />

u1 u2 u3 u4 u5<br />

Cursus Grafentheorie en Combinatorische Optimalisatie (2006–2007) – p.19/22


Voorbeeld (2)<br />

u1 u2 u3 u4 u5 ℓ(vi)<br />

v1 5 1 1 3 2 3<br />

v2 0 1 3 3 4 4<br />

v3 2 5 4 3 0 5<br />

v4 2 2 3 4 4 4<br />

v5 6 2 0 0 1 4<br />

ℓ(ui) 2 0 0 0 0<br />

v1 v2 v3 v4 v5<br />

u1 u2 u3 u4 u5<br />

v5<br />

u1<br />

v1<br />

u4<br />

v4<br />

u5<br />

v2<br />

Cursus Grafentheorie en Combinatorische Optimalisatie (2006–2007) – p.19/22


Aangepaste geschikte toppenlabeling<br />

mℓ = min{ℓ(v) + ℓ(u) − w(vu) |<br />

v ∈ V1 ∩ V (T ), u ∈ V2 \ V (T )}<br />

⎧<br />

⎪⎨<br />

ℓ ′ (v) =<br />

⎪⎩<br />

ℓ(v) − mℓ ∀v ∈ V1 ∩ V (T )<br />

ℓ(v) + mℓ ∀v ∈ V2 ∩ V (T )<br />

ℓ(v) anders<br />

Cursus Grafentheorie en Combinatorische Optimalisatie (2006–2007) – p.20/22


Construeren M-vermeerderend pad uit x (2)<br />

construeer Gℓ ′<br />

construeer M-alternerende boom in Gℓ ′ uit x<br />

als geen M-vermeerderend pad uit x<br />

bepaal nieuwe ℓ ′′ en Gℓ ′′<br />

totdat M-vermeerderend pad gevonden<br />

Cursus Grafentheorie en Combinatorische Optimalisatie (2006–2007) – p.21/22


Voorbeeld (3)<br />

u1 u2 u3 u4 u5 ℓ(vi)<br />

v1 5 1 1 3 2 2<br />

v2 0 1 3 3 4 3<br />

v3 2 5 4 3 0 5<br />

v4 2 2 3 4 4 3<br />

v5 6 2 0 0 1 3<br />

ℓ(ui) 3 0 0 1 1<br />

v1 v2 v3 v4 v5<br />

u1 u2 u3 u4 u5<br />

Cursus Grafentheorie en Combinatorische Optimalisatie (2006–2007) – p.22/22

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!