Hoofdstuk 12: Koppelingen - caagt
Hoofdstuk 12: Koppelingen - caagt
Hoofdstuk 12: Koppelingen - caagt
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