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
© Copyright 2024 ExpyDoc