2WO12: Optimalisering in Netwerken

Vergelijkbare documenten
2WO12: Optimalisering in Netwerken

TW2020 Optimalisering

TW2020 Optimalisering

2WO12: Optimalisering in Netwerken

2WO12: Optimalisering in Netwerken

TW2020 Optimalisering

TW2020 Optimalisering

TW2020 Optimalisering

TW2020 Optimalisering

Tentamen Discrete Wiskunde 1 10 april 2012, 14:00 17:00 uur

Discrete Wiskunde, College 12. Han Hoogeveen, Utrecht University

Grafen. Indien de uitgraad van ieder punt 1 is, dan bevat de graaf een cykel. Indien de ingraad van ieder punt 1 is, dan bevat de graaf een cykel.

TW2020 Optimalisering

TW2020 Optimalisering

Radboud Universiteit Nijmegen

TW2020 Optimalisering

Benaderingsalgoritmen

2WO12: Optimalisering in Netwerken

TW2020 Optimalisering

Netwerkstroming. Algoritmiek

Begrenzing van het aantal iteraties in het max-flow algoritme

l e x e voor alle e E

Tiende college algoritmiek. 2 mei Gretige algoritmen, Dijkstra

Discrete Structuren. Piter Dykstra Sietse Achterop Opleidingsinstituut Informatica en Cognitie

Toewijzingsprobleem Bachelorscriptie

Radboud Universiteit Nijmegen

Discrete Structuren. Piter Dykstra Opleidingsinstituut Informatica en Cognitie

Elke gelijkenis met bestaande gebeurtenissen en/of personen berust op louter toeval.

Week Hier vind je uitwerkingen van enkele opgaven uit het dictaat Grafen: Kleuren en Routeren.

TW2020 Optimalisering

Workshop DisWis, De Start 13/06/2007 Bladzijde 1 van 7. Sudoku. Sudoku

3. Elke lijn van een graaf draagt twee bij tot de som van alle graden.

V = {a, b, c, d, e} Computernetwerken: de knopen zijn machines in het netwerk, de kanten zijn communicatiekanalen.

Tiende college algoritmiek. 13/21 april Gretige Algoritmen Algoritme van Dijkstra

Optimalisering/Besliskunde 1. College 1 3 september, 2014

Discrete modellen in de toegepaste wiskunde (WISB136) Uitwerkingen proeftentamen.

Lijst-kleuringen in de grafentheorie

Universiteit Utrecht Betafaculteit. Examen Discrete Wiskunde II op donderdag 6 juli 2017, uur.

Transshipment problemen Simplex methode en netwerk optimalisatie algoritmes. Luuk van de Sande Begeleider: Judith Keijsper 20 januari 2013

Netwerkstroming. Algoritmiek

De huwelijksstelling van Hall

Kortste Paden. Algoritmiek

1.2 Bomen Algemeen 1.2. BOMEN 7

Optimaliseren in Netwerken

Tiende college algoritmiek. 26 april Gretige algoritmen

Grafen deel 2 8/9. Zesde college

Minimum Opspannende Bomen. Algoritmiek

Universiteit Utrecht Betafaculteit. Examen Discrete Wiskunde op donderdag 13 april 2017, uur.

Op zoek naar de Hamilton cykel. Mike Hoffmeister

Het Chinese Postbode Probleem. Marene Dimmendaal s

Tentamen combinatorische optimalisatie Tijd:

Tentamen Discrete Wiskunde

Examen Datastructuren en Algoritmen II

Optimalisering/Besliskunde 1. College 1 2 september, 2015

Grafen: Kleuren en Routeren

Chinese postbodeprobleem

Hoofdstuk!7!Kortste!paden!

A.1 Grafentheorie 64 BIJLAGE A. OPLOSSING VAN DE VRAGEN A.1. GRAFENTHEORIE 65. dan heeft deze kring in ieder knooppunt een even aantal takken).

(On)Doenlijke problemen

Z.O.Z. Radboud Universiteit Nijmegen Tentamen Analyse 1 WP001B 16 juni 2016, 12:30 15:30 (16:30)

Discrete Wiskunde 2WC15, Lente Jan Draisma

Notatie van verzamelingen. Lidmaatschap. Opgave. Verzamelingen specificeren

Onderwerpen. Punten en lijnen, postbodes en handelsreizigers. Theorie. Theorie (2) Graaftheorie. Een mini-inleiding graaftheorie

Het Chromatische Polynoom. N.C. A Campo

Radboud Universiteit Nijmegen

Oefeningen Discrete Wiskunde - Hoofdstuk 6 - Peter Vandendriessche Fouten, opmerkingen of alternatieve methodes? me:

Lineaire algebra I (wiskundigen)

Tweede huiswerkopdracht Lineaire algebra 1 Uitwerking en opmerkingen

Algoritmiek. 15 februari Grafen en bomen

TW2020 Optimalisering

Puzzels en wiskunde. Inleiding. Algoritme. Sudoku. 22 Puzzels en wiskunde

Hoofdstuk 3. Equivalentierelaties. 3.1 Modulo Rekenen

Transcriptie:

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/ l.j.j.v.iersel@gmail.com 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 M met e e geldt dat e e =. 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 = 1 2 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 een perfecte matching Leo van Iersel (TUE/CWI) 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 K n,m? Leo van Iersel (TUE/CWI) 2WO12: Optimalisering in Netwerken 10 maart 2014 6 / 34

Probleem Bipartiete Matching Stelling Gegeven: een bipartiete graaf G = (V, E) Bepaal: een matching M E in G van maximale cardinaliteit. 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 Y := (X Y ) \ (X Y ) = (X \ Y ) (Y \ X ) Observatie (1) Als P een M-vermeerderend pad is in een graaf G, dan is M := M E(P) een matching met M = 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 a f b e b e c d c d Leo van Iersel (TUE/CWI) 2WO12: Optimalisering in Netwerken 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 één 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 M E(P) een matching met grotere cardinaliteit dan M (Observatie 1). niet (i) (ii) Stel M is een matching met M > M. Elk component van (V, M M ) is een pad of even circuit (Lemma 1). Tenminste één zo n pad bevat meer lijnen van M dan van M omdat M > 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 is de verzameling van punten in U die niet door M overdekt worden. W 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: 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 naar een punt in W. 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. u 1 w 1 u 1 w 1 u 2 w 2 u 2 w 2 u 3 w 3 u 3 w 3 u 4 u 5 w 4 w 5 u 4 u 5 w 4 w 5 u 6 w 6 u 6 w 6 u 7 w 7 u 7 w 7 Leo van Iersel (TUE/CWI) 2WO12: Optimalisering in Netwerken 10 maart 2014 13 / 34

Voorbeeld Vind een gericht pad vanuit een punt in U = {u 1 } naar een punt in W = {w 5 }. u 1 w 1 u 1 w 1 u 2 w 2 u 2 w 2 u 3 w 3 u 3 w 3 u 4 u 5 w 4 w 5 u 4 u 5 w 4 w 5 u 6 w 6 u 6 w 6 u 7 w 7 u 7 w 7 Leo van Iersel (TUE/CWI) 2WO12: Optimalisering in Netwerken 10 maart 2014 14 / 34

Voorbeeld Verbeter de matching op het pad. u 1 w 1 u 1 w 1 u 2 w 2 u 2 w 2 u 3 w 3 u 3 w 3 u 4 u 5 w 4 w 5 u 4 u 5 w 4 w 5 u 6 w 6 u 6 w 6 u 7 w 7 u 7 w 7 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. 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önig) 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 Stelling Gegeven: bipartiete graaf G = (V, E) en gewichtsfunctie w : E R. Bepaal: een matching M E in G van maximaal gewicht. 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 E met M = M + 1. Definieer lengtefunctie l : E R door l(e) := w(e) als e M; l(e) := w(e) als e / M. Lemma (Opgave 3.22) Als P een M-vermeerderend pad is van minimale lengte (m.b.t. l), dan is M := M E(P) een extreme matching (met M = 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): Stelling 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 naar een punt in W. Dit kan met het Bellman-Ford algoritme dankzij de volgende 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 l(c) < 0. Zeg C = (u 0, w 1, u 1,..., w t, u t = u 0 ). Dan {w 1, u 1 },..., {w t, u t } M En {u 0, w 1 }, {u 1, w 2 },..., {u t 1, w t } / M Laat M := M E(C) Dan is M een matching van cardinaliteit M. En w(m ) = w(m) l(c) > w(m). Dit is een tegenspraak want M is een extreme matching. u 0 u 1 u 2 u 3 w 1 w 2 w 3 w 4 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 C voor alle e E. Dus een coclique is een verzameling punten die paarsgewijs niet met een lijn verbonden zijn. Definitie α(g) := de cardinaliteit van een grootste coclique in G. Een vertex cover (punt-overdekking) in een graaf G = (V, E) is een X V zodat voor alle e E geldt dat e X. 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 M met e e geldt dat e e =. Dus een matching is een verzameling lijnen die elkaar paarsgewijs niet raken in een punt. Definitie ν(g) := de cardinaliteit van een grootste matching in G. 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önig) 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 Stelling Gegeven: bipartiete graaf G = (U W, E). Bepaal: een coclique van G van maximale cardinaliteit. 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 is de verzameling van punten in U die niet door M overdekt worden W 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: 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 naar punt in W. Als zo n pad bestaat dan is M := M E(P) een matching met M > M Als zo n pad niet bestaat: Y := {y V er is een gericht pad van een punt in U 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 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. Maar u Y, dus er is een gericht pad van een punt in U 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 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 naar y} dan is (U \ Y ) (W Y ) = M. Bewijs Laat X := (U \ Y ) (W Y ). U Y dus X U =. Er is geen gericht pad van een punt in U naar een punt in W. Dus Y W =, dus X W =. Dus elk punt in X wordt overdekt door een lijn van M. Stel dat een lijn {u, w} M twee punten uit X overdekt. 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 één 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 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