2WO12: Optimalisering in Netwerken

2WO12: Optimalisering in Netwerken
Leo van Iersel
Technische Universiteit Eindhoven (TU/E)
en Centrum Wiskunde & Informatica (CWI)
10 maart 2014
http://homepages.cwi.nl/~iersel/2WO12/
[email protected]
Leo van Iersel (TUE/CWI)
2WO12: Optimalisering in Netwerken
10 maart 2014
1 / 34
Overzicht
Tot nog toe:
grafen, kleuren en routeren
graafrepresentaties en complexiteit
kortste pad algoritmes
minimum opspannende bomen
Vandaag
matchings
vertex covers
edge covers
Leo van Iersel (TUE/CWI)
2WO12: Optimalisering in Netwerken
10 maart 2014
2 / 34
Matchings
Definitie
Een matching (koppeling) in een graaf G = (V , E ) is een M ⊆ E zodat
voor alle e, e 0 ∈ M met e 6= e 0 geldt dat e ∩ e 0 = ∅.
Een punt v is overdekt door een matching M als v ∈ e voor een
zekere e ∈ M.
Een matching M is een perfecte matching als elk punt van de graaf
door M overdekt wordt, oftewel als |M| = 21 |V |.
In een lijnkleuring van een graaf vorming de lijnen met dezelfde kleur een
matching.
Leo van Iersel (TUE/CWI)
2WO12: Optimalisering in Netwerken
10 maart 2014
3 / 34
Voorbeeld
Voorbeelden van een matching en een perfecte matching:
een matching
Leo van Iersel (TUE/CWI)
een perfecte matching
2WO12: Optimalisering in Netwerken
10 maart 2014
4 / 34
Probleem
Matching
Gegeven: G = (V , E )
Bepaal: een matching M ⊆ E in G van maximale cardinaliteit.
Leo van Iersel (TUE/CWI)
2WO12: Optimalisering in Netwerken
10 maart 2014
5 / 34
Voorbeeld
Wat is de maximale cardinaliteit van een matching in de onderstaande
grafen?
Voorbeeld
Wat is de maximale cardinaliteit van een matching in Kn,m ?
Leo van Iersel (TUE/CWI)
2WO12: Optimalisering in Netwerken
10 maart 2014
6 / 34
Probleem
Bipartiete Matching
Gegeven: een bipartiete graaf G = (V , E )
Bepaal: een matching M ⊆ E in G van maximale cardinaliteit.
Stelling
Er is een algoritme met looptijd O(|V ||E |) voor Bipartiete Matching.
Leo van Iersel (TUE/CWI)
2WO12: Optimalisering in Netwerken
10 maart 2014
7 / 34
Definitie
Laat M een matching zijn in graaf G . Een M-vermeerderend pad
(augmenting path) in G is een pad tussen twee punten die niet door M
overdekt zijn, zodanig dat de lijnen van het pad afwisselend wel en niet
in M zitten.
Symmetrisch verschil: X 4Y := (X ∪ Y ) \ (X ∩ Y ) = (X \ Y ) ∪ (Y \ X )
Observatie (1)
Als P een M-vermeerderend pad is in een graaf G , dan is M 0 := M4E (P)
een matching met |M 0 | = |M| + 1.
s
t
s
t
Leo van Iersel (TUE/CWI)
2WO12: Optimalisering in Netwerken
10 maart 2014
8 / 34
Voorbeeld
In de onderstaande graaf is (a, b, c, d, e, f ) een M-vermeerderend pad voor
de blauwe matching.
a
f
e
b
c
Leo van Iersel (TUE/CWI)
a
f
e
b
c
d
2WO12: Optimalisering in Netwerken
d
10 maart 2014
9 / 34
Lemma (1)
Als M en N twee matchings zijn in een graaf G = (V , E ), dan is elke
component van de graaf (V , M ∪ N) een pad of een even circuit.
Voorbeeld
De lijnen van de blauwe en rode matching vormen een pad en een even
circuit.
Leo van Iersel (TUE/CWI)
2WO12: Optimalisering in Netwerken
10 maart 2014
10 / 34
Stelling
Als G = (V , E ) een graaf is en M een matching, dan is precies ´e´en van de
volgende uitspraken waar:
(i) M is een matching van maximale cardinaliteit;
(ii) er bestaat een M-vermeerderend pad in G .
Bewijs
(ii) ⇒ niet (i)
Stel dat er een M-vermeerderend pad P bestaat. Dan is M4E (P)
een matching met grotere cardinaliteit dan M (Observatie 1).
niet (i) ⇒ (ii)
Stel M 0 is een matching met |M 0 | > |M|. Elk component
van (V , M ∪ M 0 ) is een pad of even circuit (Lemma 1). Tenminste
´e´en zo’n pad bevat meer lijnen van M 0 dan van M omdat |M 0 | > |M|.
Dit pad is een M-vermeerderend pad.
Leo van Iersel (TUE/CWI)
2WO12: Optimalisering in Netwerken
10 maart 2014
11 / 34
Algoritme om een M-vermeerderend pad te vinden in een bipartiete
graaf G = (U ∪ W , E ):
Algoritme
U 0 is de verzameling van punten in U die niet door M overdekt
worden.
W 0 is de verzameling van punten in W die niet door M overdekt
worden.
Voor elke lijn e = {u, w } (met u ∈ U en w ∈ W ) van G :
I
I
als e ∈ M, richt e van w naar u;
als e ∈
/ M, richt e van u naar w .
Vind een gericht pad van een punt in U 0 naar een punt in W 0 . Als
zo’n pad bestaat dan is dit een M-vermeerderend pad.
Leo van Iersel (TUE/CWI)
2WO12: Optimalisering in Netwerken
10 maart 2014
12 / 34
Voorbeeld
Gegeven is de graaf links met de blauwe matching. Richt eerst de pijlen
volgens het algoritme. Dit geeft de rechter graaf.
u1
w1
u1
w1
u2
w2
u2
w2
u3
w3
u3
w3
u4
u5
w4
w4
w5
u4
u5
u6
w6
u6
w6
u7
w7
u7
w7
Leo van Iersel (TUE/CWI)
2WO12: Optimalisering in Netwerken
w5
10 maart 2014
13 / 34
Voorbeeld
Vind een gericht pad vanuit een punt in U 0 = {u1 } naar een punt
in W 0 = {w5 }.
u1
w1
u1
w1
u2
w2
u2
w2
u3
w3
u3
w3
u4
u5
w4
w4
w5
u4
u5
w5
u6
w6
u6
w6
u7
w7
u7
w7
Leo van Iersel (TUE/CWI)
2WO12: Optimalisering in Netwerken
10 maart 2014
14 / 34
Voorbeeld
Verbeter de matching op het pad.
u1
w1
u1
w1
u2
w2
u2
w2
u3
w3
u3
w3
u4
u5
w4
w4
w5
u4
u5
w5
u6
w6
u6
w6
u7
w7
u7
w7
Leo van Iersel (TUE/CWI)
2WO12: Optimalisering in Netwerken
10 maart 2014
15 / 34
Definitie
Een vertex cover (punt-overdekking) in een graaf G = (V , E ) is
een X ⊆ V zodat voor alle e ∈ E geldt dat e ∩ X 6= ∅.
Dus een vertex cover is een verzameling punten die alle lijnen raakt
τ (G ) := de cardinaliteit van een kleinste vertex cover in G
Voorbeeld
Wat is τ (G ) voor de onderstaande grafen?
Leo van Iersel (TUE/CWI)
2WO12: Optimalisering in Netwerken
10 maart 2014
16 / 34
ν(G ) := de cardinaliteit van een grootste matching in G
τ (G ) := de cardinaliteit van een kleinste vertex cover in G
Observatie (2)
Voor elke graaf G ,
ν(G ) ≤ τ (G )
Stelling (K¨onig)
Voor elke bipartiete graaf G ,
ν(G ) = τ (G )
Leo van Iersel (TUE/CWI)
2WO12: Optimalisering in Netwerken
10 maart 2014
17 / 34
Probleem
Gewogen Bipartiete Matching
Gegeven: bipartiete graaf G = (V , E ) en gewichtsfunctie w : E → R.
Bepaal: een matching M ⊆ E in G van maximaal gewicht.
Stelling
Er is een algoritme met looptijd O(|V |2 |E |) voor Gewogen Bipartiete
Matching. (Hungarian method)
Definitie
Een matching M heet extreem als M maximaal gewicht heeft over alle
matchings met cardinaliteit |M|.
Leo van Iersel (TUE/CWI)
2WO12: Optimalisering in Netwerken
10 maart 2014
18 / 34
Probleem
Gegeven: bipartiete graaf G = (V , E ), gewichtsfunctie w : E → R
en extreme matching M.
Bepaal: (zo mogelijk) een extreme matching M 0 ⊆ E
met |M 0 | = |M| + 1.
Definieer lengtefunctie ` : E → R door
`(e) := w (e) als e ∈ M;
`(e) := −w (e) als e ∈
/ M.
Lemma (Opgave 3.22)
Als P een M-vermeerderend pad is van minimale lengte (m.b.t. `), dan is
M 0 := M4E (P) een extreme matching (met |M 0 | = |M| + 1).
Leo van Iersel (TUE/CWI)
2WO12: Optimalisering in Netwerken
10 maart 2014
19 / 34
Vinden van een M-vermeerderend pad van minimale lengte in een
bipartiete graaf G = (U ∪ W , E ):
Laat D de gerichte hulpgraaf zijn door de lijnen van G te richten als
voorheen (als e ∈ M, richt e van w naar u, als e ∈
/ M, richt e van u
naar w ).
Vind een kortste pad van een punt in U 0 naar een punt in W 0 . Dit
kan met het Bellman-Ford algoritme dankzij de volgende stelling:
Stelling
Als M een extreme matching is, dan heeft de gerichte hulpgraaf D geen
gericht circuit van negatieve lengte.
Vinden van een matching van maximaal gewicht in een bipartiete
graaf G = (U ∪ W , E ):
Vind extreme matching met cardinaliteit 0, 1, 2, . . .
Van al deze matchings, kies de matching met grootste gewicht.
Leo van Iersel (TUE/CWI)
2WO12: Optimalisering in Netwerken
10 maart 2014
20 / 34
Stelling
Als M een extreme matching is, dan heeft de gerichte hulpgraaf D geen
gericht circuit van negatieve lengte.
Bewijs
Stel C is een gericht circuit met `(C ) < 0.
Zeg C = (u0 , w1 , u1 , . . . , wt , ut = u0 ).
Dan {w1 , u1 }, . . . , {wt , ut } ∈ M
En {u0 , w1 }, {u1 , w2 }, . . . , {ut−1 , wt } ∈
/M
u0
w1
u1
Laat M 00 := M4E (C )
u2
Dan is M 00 een matching van
cardinaliteit |M|.
u3
w2
w3
w4
En w (M 00 ) = w (M) − `(C ) > w (M).
Dit is een tegenspraak want M is een
extreme matching.
Leo van Iersel (TUE/CWI)
2WO12: Optimalisering in Netwerken
10 maart 2014
21 / 34
Definitie
Een coclique (of independent set) van een graaf G = (V , E ), is een
verzameling C ⊆ V zodanig dat e 6⊆ C voor alle e ∈ E .
Dus een coclique is een verzameling punten die paarsgewijs niet met
een lijn verbonden zijn.
α(G ) := de cardinaliteit van een grootste coclique in G .
Definitie
Een vertex cover (punt-overdekking) in een graaf G = (V , E ) is
een X ⊆ V zodat voor alle e ∈ E geldt dat e ∩ X 6= ∅.
Dus een vertex cover is een verzameling punten die alle lijnen raakt.
τ (G ) := de cardinaliteit van een kleinste vertex cover in G .
Leo van Iersel (TUE/CWI)
2WO12: Optimalisering in Netwerken
10 maart 2014
22 / 34
Observatie (3)
Voor elke U ⊆ V ,
U is een coclique ⇔ V \ U is een vertex cover
Voorbeeld
In de onderstaande graaf vormen de blauwe punten een coclique en de
rode punten een vertex cover.
Leo van Iersel (TUE/CWI)
2WO12: Optimalisering in Netwerken
10 maart 2014
23 / 34
Definitie
Een matching (koppeling) in een graaf G = (V , E ) is een M ⊆ E zodat
voor alle e, e 0 ∈ M met e 6= e 0 geldt dat e ∩ e 0 = ∅.
Dus een matching is een verzameling lijnen die elkaar paarsgewijs niet
raken in een punt.
ν(G ) := de cardinaliteit van een grootste matching in G .
Definitie
Een edge cover (lijn overdekking) van een graaf G = (V , E ), is een
verzameling F ⊆ E zodanig dat voor elke v ∈ V er een e ∈ F is met
v ∈ e.
Dus een edge cover is een verzameling lijnen die alle punten overdekt.
ρ(G ) := de cardinaliteit van een kleinste edge cover in G .
Leo van Iersel (TUE/CWI)
2WO12: Optimalisering in Netwerken
10 maart 2014
24 / 34
Voorbeeld
In de onderstaande grafen vormen de blauwe lijnen edge covers.
Observatie (4)
Voor elke graaf G :
α(G ) ≤ ρ(G ).
Leo van Iersel (TUE/CWI)
2WO12: Optimalisering in Netwerken
10 maart 2014
25 / 34
α(G ) := de cardinaliteit van een grootste coclique in G .
τ (G ) := de cardinaliteit van een kleinste vertex cover in G .
ν(G ) := de cardinaliteit van een grootste matching in G .
ρ(G ) := de cardinaliteit van een kleinste edge cover in G .
Een ge¨ısoleerd punt is een punt met graad nul.
Stelling (Gallai)
Voor elke graaf G zonder ge¨ısoleerde punten:
α(G ) + τ (G ) = |V | = ν(G ) + ρ(G ).
Stelling (K¨onig)
Voor elke bipartiete graaf G = (V , E ) zonder ge¨ısoleerde punten:
ν(G ) = τ (G )
α(G ) = ρ(G ).
Leo van Iersel (TUE/CWI)
2WO12: Optimalisering in Netwerken
10 maart 2014
26 / 34
Probleem
Bipartiete Vertex Cover
Gegeven: bipartiete graaf G = (U ∪ W , E ).
Bepaal: een vertex cover van G van minimale cardinaliteit.
Probleem
Bipartiete Coclique
Gegeven: bipartiete graaf G = (U ∪ W , E ).
Bepaal: een coclique van G van maximale cardinaliteit.
Stelling
Er is een algoritme met looptijd O(|V ||E |) voor Bipartiete Vertex Cover en
voor Bipartiete Coclique.
Leo van Iersel (TUE/CWI)
2WO12: Optimalisering in Netwerken
10 maart 2014
27 / 34
Probleem
Gegeven: bipartiete graaf G = (U ∪ W , E ) en een matching M.
Bepaal: ofwel een matching met cardinaliteit groter dan |M|,
ofwel een vertex cover van cardinaliteit |M|.
Algoritme
U 0 is de verzameling van punten in U die niet door M overdekt worden
W 0 is de verzameling van punten in W die niet door M overdekt
worden
Voor elke lijn e = {u, w } (met u ∈ U en w ∈ W ) van G :
I
I
als e ∈ M, richt e van w naar u
als e ∈
/ M, richt e van u naar w
Vind gericht pad van punt in U 0 naar punt in W 0 . Als zo’n pad
bestaat dan is M 0 := M4E (P) een matching met |M 0 | > |M|
Als zo’n pad niet bestaat:
I
I
Y := {y ∈ V | er is een gericht pad van een punt in U 0 naar y }
dan is (U \ Y ) ∪ (W ∩ Y ) een vertex cover van cardinaliteit |M|.
Leo van Iersel (TUE/CWI)
2WO12: Optimalisering in Netwerken
10 maart 2014
28 / 34
Voorbeeld
Vind een kleinste vertex cover in de onderstaande graaf.
Voorbeeld
Vind ook een grootste coclique in deze graaf.
Leo van Iersel (TUE/CWI)
2WO12: Optimalisering in Netwerken
10 maart 2014
29 / 34
Lemma
Als Y := {y ∈ V | er is een gericht pad van een punt in U 0 naar y }
dan is (U \ Y ) ∪ (W ∩ Y ) een vertex cover.
Bewijs
Stel lijn {u, w } wordt niet overdekt door (U \ Y ) ∪ (W ∩ Y ).
Dan is u ∈ Y en w ∈
/ Y.
Dus is {u, w } gericht van w naar u.
Dus {u, w } ∈ M.
Dus u ∈
/ U 0.
Maar u ∈ Y , dus er is een gericht pad van een punt in U 0 naar u.
Laat v ∈ W het laatste punt op dit pad zijn voor u.
Dan is {u, v } gericht van v naar u, dus {u, v } ∈ M.
En v 6= w want v ∈ Y en w ∈
/ Y.
Dus zijn er twee lijnen incident met u die in de matching zitten
({u, w } en {u, v }), een tegenspraak.
Leo van Iersel (TUE/CWI)
2WO12: Optimalisering in Netwerken
10 maart 2014
30 / 34
Lemma
Als Y := {y ∈ V | er is een gericht pad van een punt in U 0 naar y }
dan is |(U \ Y ) ∪ (W ∩ Y )| = |M|.
Bewijs
Laat X := (U \ Y ) ∪ (W ∩ Y ).
I
I
I
U 0 ⊆ Y dus X ∩ U 0 = ∅.
Er is geen gericht pad van een punt in U 0 naar een punt in W 0 .
Dus Y ∩ W 0 = ∅, dus X ∩ W 0 = ∅.
Dus elk punt in X wordt overdekt door een lijn van M.
Stel dat een lijn {u, w } ∈ M twee punten uit X overdekt.
I
I
I
Dan u ∈ X ∩ U en w ∈ X ∩ W .
Dus is u ∈
/ Y en w ∈ Y .
Maar {u, w } zit in M en is dus gericht van w naar u: een tegenspraak.
Dus elke lijn in M overdekt hoogstens ´e´en punt uit X .
Dus |X | ≤ |M|.
Bovendien |X | ≥ |M| voor elke vertex cover X en matching M.
Leo van Iersel (TUE/CWI)
2WO12: Optimalisering in Netwerken
10 maart 2014
31 / 34
Vertex covers in niet-bipartiete grafen
τ (G ) := de cardinaliteit van een kleinste vertex cover in G .
Stelling
Er is een algoritme met looptijd O(|E |) dat, gegeven een
graaf G = (V , E ), een vertex cover van G vindt met cardinaliteit
hoogstens 2τ (G ).
Definitie
Een matching M in een graaf G = (V , E ) is een maximale matching als
er geen matching M 0 ) M bestaat van G .
Lemma
Laat G = (V , E ) een graaf zijn en M een maximale matching van G .
Laat K de verzameling zijn van punten die overdekt worden door M.
(i) Dan is K een vertex cover en
(ii) |K | ≤ 2τ (G ).
Leo van Iersel (TUE/CWI)
2WO12: Optimalisering in Netwerken
10 maart 2014
32 / 34
Voorbeeld
Vind een maximale matching en een bijbehorende vertex cover van de
Petersen graaf.
Vraag
Wat is de minimale cardinaliteit van een vertex cover in deze graaf?
Leo van Iersel (TUE/CWI)
2WO12: Optimalisering in Netwerken
10 maart 2014
33 / 34
Voorbeeld
Vind een maximale matching en een bijbehorende vertex cover van de ster
graaf.
Vraag
Wat is de minimale cardinaliteit van een vertex cover in deze graaf?
Leo van Iersel (TUE/CWI)
2WO12: Optimalisering in Netwerken
10 maart 2014
34 / 34