2WO12: Optimalisering in Netwerken Leo van Iersel Technische Universiteit Eindhoven (TU/E) en Centrum Wiskunde & Informatica (CWI) 27 februari 2014 http://homepages.cwi.nl/~iersel/2wo12/ l.j.j.v.iersel@gmail.com Leo van Iersel (TUE/CWI) 2WO12: Optimalisering in Netwerken 27 februari 2014 1 / 34
Overzicht Tot nog toe: grafen, kleuren en routeren graafrepresentaties en complexiteit kortste pad algoritmes Vandaag minimum opspannende bomen Prüfer reeksen fylogenetische bomen Leo van Iersel (TUE/CWI) 2WO12: Optimalisering in Netwerken 27 februari 2014 2 / 34
Definitie Een bos is een graaf zonder circuits. Definitie Een boom is een samenhangend bos. Laat G = (V, E) een graaf zijn. Een opspannende boom (spanning tree) van G is een boom T = (V, F ) met F E. Anders gezegd, een opspannende boom van G is een deelgraaf van G die alle punten van G opspant (verbindt) en geen circuits bevat. Leo van Iersel (TUE/CWI) 2WO12: Optimalisering in Netwerken 27 februari 2014 3 / 34
Voorbeeld Een opspannende boom van de Petersen graaf (in zwart): Leo van Iersel (TUE/CWI) 2WO12: Optimalisering in Netwerken 27 februari 2014 4 / 34
Voorbeeld Een andere opspannende boom van de Petersen graaf (in zwart): Leo van Iersel (TUE/CWI) 2WO12: Optimalisering in Netwerken 27 februari 2014 5 / 34
Probleem Minimum Opspannende Boom (Minimum Spanning Tree) Gegeven: samenhangende graaf G = (V, E) en lengtefunctie l : E R Vind: een opspannende boom T = (V, F ) van G met minimale lengte l(e) e F Elke samenhangende graaf heeft een opspannende boom. Leo van Iersel (TUE/CWI) 2WO12: Optimalisering in Netwerken 27 februari 2014 6 / 34
Prim-Dijkstra methode voor het vinden van een minimum opspannende boom van een samenhangende graaf G = (V, E) en lengtefunctie l : E R Definitie δ(u) is de verzameling lijnen die precies één eindpunt in U hebben Algoritme Kies willekeurig punt v 1 U 1 := {v 1 } F 1 := Voor k = 1, 2,..., V 1 Kies een lijn ek δ(u k ) met minimale lengte Stelling Uk+1 := U k e k Fk+1 := F k {e k } (V, F V ) is een minimum opspannende boom van G Leo van Iersel (TUE/CWI) 2WO12: Optimalisering in Netwerken 27 februari 2014 7 / 34
Voorbeeld Vind een minimum opspannende boom in de volgende graaf m.b.v. de Prim-Dijkstra methode: 3 3 2 3 4 2 7 6 3 5 3 4 4 8 4 5 5 1 3 9 6 Leo van Iersel (TUE/CWI) 2WO12: Optimalisering in Netwerken 27 februari 2014 8 / 34
Lemma (1) De volgende uitspraken zijn equivalent voor een graaf G = (V, E): 1 G is een boom (is samenhangend en bevat geen circuit) 2 G is samenhangend en E = V 1 3 G bevat geen circuit en E = V 1 4 G bevat een uniek pad tussen elk tweetal punten Leo van Iersel (TUE/CWI) 2WO12: Optimalisering in Netwerken 27 februari 2014 9 / 34
Lemma (2) Als G = (V, E) samenhangend is, (V, F ) een opspannende boom van G en e E \ F dan zijn de volgende twee uitspraken waar: 1 F {e} bevat een uniek circuit C 2 als f een lijn is van C, dan is F \ {f } {e} een opspannende boom van G e Voorbeeld: lijn e toevoegen geeft een uniek circuit; lijn f weglaten geeft weer een opspannende boom. f Leo van Iersel (TUE/CWI) 2WO12: Optimalisering in Netwerken 27 februari 2014 10 / 34
Definitie (V, F ) is een bos van G = (V, E) als F E en (V, F ) een bos is. Definitie Een bos (V, F ) van G heet gulzig (greedy) als er een opspannende boom van minimale lengte bestaat die alle lijnen van F bevat. Een opspannende boom die gulzig is heeft dus minimale lengte Stelling (1.11) Laat (V, F ) een gulzig bos zijn van G = (V, E) en U een component van (V, F ). Als e een lijn met minimale lengte is over alle lijnen in δ(u), dan is (V, F {e}) weer een gulzig bos. Stelling Het algoritme van Prim-Dijkstra vindt een minimum opspannende boom. Leo van Iersel (TUE/CWI) 2WO12: Optimalisering in Netwerken 27 februari 2014 11 / 34
Stelling Het algoritme van Prim-Dijkstra vindt een minimum opspannende boom in tijd O( V 2 ). Bewijs Stelling Houd voor elk punt v V \ U k de lengte f (v) bij van een kortste lijn {u, v} met u U k. Er zijn V iteraties. In elke iteratie is er O( V ) tijd nodig om een punt v V \ U k met minimale f (v) te vinden. In elke iteratie is er O( V ) tijd nodig om de labels van de buren van dit punt v aan te passen. Het algoritme van Prim-Dijkstra geïmplementeerd met Fibonacci Heaps lost het minimum opspannende boom probleem op in tijd O( E + V log( V )). Leo van Iersel (TUE/CWI) 2WO12: Optimalisering in Netwerken 27 februari 2014 12 / 34
Kruskals methode voor het vinden van een minimum opspannende boom van een samenhangende graaf G = (V, E) met lengtefunctie l : E R. Algoritme Stelling F := Voor k = 1, 2,..., V 1 Kies een lijn e k E \ F met minimale lengte waarvoor (V, F {e k }) een bos is F := F {ek } Kruskals algoritme vindt een minimum opspannende boom (V, F ) van G. Stelling Kruskals algoritme kan geïmplementeerd worden zodat de looptijd O( E log( V )) is. Leo van Iersel (TUE/CWI) 2WO12: Optimalisering in Netwerken 27 februari 2014 13 / 34
Voorbeeld Vind een opspannende boom in de volgende graaf m.b.v. Kruskals algoritme: 3 3 2 3 4 2 7 6 3 5 3 4 4 8 4 5 5 1 3 9 6 Leo van Iersel (TUE/CWI) 2WO12: Optimalisering in Netwerken 27 februari 2014 14 / 34
Borůvka s methode voor het vinden van een minimum opspannende boom van een samenhangende graaf G = (V, E) met lengtefunctie l : E R. Neem voor het gemak aan dat alle lijnen verschillende lengtes hebben. Algoritme Stelling F := while F < V 1 laat U1,..., U k de componenten van (V, F ) zijn voor i = 1,..., k kies een lijn e i δ(u i ) van minimum lengte F := F {e1,..., e k } Borůvka s algoritme vindt een minimum opspannende boom (V, F ) van G. Stelling Borůvka s algoritme kan geïmplementeerd worden zodat de looptijd O( E log( V )) is. Leo van Iersel (TUE/CWI) 2WO12: Optimalisering in Netwerken 27 februari 2014 15 / 34
Voorbeeld Vind een opspannende boom in de volgende graaf m.b.v. Borůvka s methode: 27 13 4 12 17 2 7 6 11 5 10 16 31 25 14 19 21 1 3 9 20 Leo van Iersel (TUE/CWI) 2WO12: Optimalisering in Netwerken 27 februari 2014 16 / 34
Lemma (cut property) Als G = (V, E) een graaf is, l : E R, U V en e een lijn met l(e) < l(f ) f δ(u) met f e dan bevat elke minimum opspannende boom voor G de lijn e. Lemma (cycle property) Als G = (V, E) een graaf is, l : E R en e een lijn in een circuit C met l(e) > l(f ) f in C met f e dan bevat geen enkele minimum opspannende boom voor G de lijn e. Leo van Iersel (TUE/CWI) 2WO12: Optimalisering in Netwerken 27 februari 2014 17 / 34
Probleem Minimum Bottleneck Opspannende Boom Gegeven: samenhangende graaf G = (V, E) en lengtefunctie l : E R Vind: een opspannende boom T = (V, F ) van G waarvoor max e F l(e) minimaal is. Stelling Elke minimum opspannende boom is een minimum bottleneck opspannende boom. Leo van Iersel (TUE/CWI) 2WO12: Optimalisering in Netwerken 27 februari 2014 18 / 34
Stelling (Formule van Cayley) Het aantal verschillende bomen met n gelabelde punten is n n 2. Alle 2 2 2 = 1 bomen met 2 punten, alle 3 3 2 = 3 bomen met 3 punten en alle 4 4 2 = 16 bomen met 4 punten. Leo van Iersel (TUE/CWI) 2WO12: Optimalisering in Netwerken 27 februari 2014 19 / 34
Definitie Een Prüfer reeks is een reeks van lengte n 2 bestaande uit getallen uit {1,..., n} Gegeven een gelabelde boom T, kun je als volgt een unieke Prüfer reeks bepalen: Laat 1, 2,..., n de labels van de punten van T zijn. Een blad is een punt met graad één. Algoritme Vind het blad b met kleinste label; voeg de buur van b toe aan de Prüfer reeks; verwijder b uit de boom; herhaal de voorgaande stappen totdat er twee punten over zijn. Leo van Iersel (TUE/CWI) 2WO12: Optimalisering in Netwerken 27 februari 2014 20 / 34
Algoritme Vind het blad b met kleinste label; voeg de buur van b toe aan de Prüfer reeks; verwijder b uit de boom; herhaal de voorgaande stappen totdat er twee punten over zijn. Voorbeeld Vind de Prüfer reeks van de onderstaande boom. 8 1 2 3 4 5 6 Leo van Iersel (TUE/CWI) 2WO12: Optimalisering in Netwerken 27 februari 2014 21 / 34 7
Gegeven een Prüfer reeks a = (a 1, a 2,..., a n 2 ), kun je als volgt een unieke gelabelde boom bepalen: Algoritme L := (1, 2,..., n) Creëer punten met labels 1, 2,..., n Herhaal de volgende stappen totdat L = 2 Laat l het eerste label in L zijn dat niet in a voor komt Laat a1 het eerste element van a zijn Verbind het punt met label l met het punt met label a1 Verwijder l uit L en a1 uit a Laat L = {l 1, l 2 } Verbind het punt met label l 1 met het punt met label l 2 Leo van Iersel (TUE/CWI) 2WO12: Optimalisering in Netwerken 27 februari 2014 22 / 34
Stelling Er is een bijectie tussen bomen met puntlabels 1,..., n en Prüfer reeksen van lengte n 2. Stelling (Formule van Cayley) Het aantal verschillende bomen met n gelabelde punten is n n 2. Leo van Iersel (TUE/CWI) 2WO12: Optimalisering in Netwerken 27 februari 2014 23 / 34
Fylogenetische bomen en splits Definitie Gegeven een verzameling labels X, een fylogenetische boom T op X is een boom zonder punten van graad 2 waarvan de bladeren bijectief zijn gelabelled met de elementen van X. Definitie A B is een split over X als {A, B} een partitie van X is, d.w.z. als A B = en A B = X. A B = B A Definitie Laat e een lijn zijn van een fylogenetische boom T op X. Split A B is de split geassocieerd met e als A en B de labels zijn van de bladeren in de twee componenten die verkregen worden als e uit T verwijderd wordt. Leo van Iersel (TUE/CWI) 2WO12: Optimalisering in Netwerken 27 februari 2014 24 / 34
Notatie: Σ(T ) is de verzameling van alle splits geassocieerd met lijnen van T Voorbeeld: e a b c d Σ(T ) = {ab cde, abc de, a bcde, b acde, c abde, d abce, e abcd} Leo van Iersel (TUE/CWI) 2WO12: Optimalisering in Netwerken 27 februari 2014 25 / 34
Stelling (split equivalence) Laat Σ een verzameling splits over X zijn. Dan zijn de volgende twee uitspraken equivalent: 1 er bestaat een fylogenetische boom T op X met Σ = Σ(T ) 2 voor elke twee splits A 1 B 1 en A 2 B 2 in Σ is tenminste één van de volgende vier doorsnedes leeg A1 A 2 A1 B 2 B1 A 2 B1 B 2 Leo van Iersel (TUE/CWI) 2WO12: Optimalisering in Netwerken 27 februari 2014 26 / 34
Voorbeeld Voor de onderstaande boom T geldt: Σ(T ) = {ab cdefg, abfg cde, abcde fg, abcfg de} Plus alle splits die één blad afsplitsen van de rest. b a c f d e g Leo van Iersel (TUE/CWI) 2WO12: Optimalisering in Netwerken 27 februari 2014 27 / 34
Het vinden van T aan de hand van Σ(T ): Creëer een boom voor de eerste split. Σ(T ) = {ab cdefg, abfg cde, abcde fg, abcfg de} a,b c,d,e,f,g Leo van Iersel (TUE/CWI) 2WO12: Optimalisering in Netwerken 27 februari 2014 28 / 34
Het vinden van T aan de hand van Σ(T ): Voeg de tweede split toe. Σ(T ) = {ab cdefg, abfg cde, abcde fg, abcfg de} a,b f,g c,d,e Leo van Iersel (TUE/CWI) 2WO12: Optimalisering in Netwerken 27 februari 2014 29 / 34
Het vinden van T aan de hand van Σ(T ): Voeg de derde split toe. Σ(T ) = {ab cdefg, abfg cde, abcde fg, abcfg de} a,b f,g c,d,e Leo van Iersel (TUE/CWI) 2WO12: Optimalisering in Netwerken 27 februari 2014 30 / 34
Het vinden van T aan de hand van Σ(T ): Voeg de vierde split toe. Σ(T ) = {ab cdefg, abfg cde, abcde fg, abcfg de} a,b f,g c d,e Leo van Iersel (TUE/CWI) 2WO12: Optimalisering in Netwerken 27 februari 2014 31 / 34
Het vinden van T aan de hand van Σ(T ): Voeg alle splits toe die één blad afsplitsen van de rest. b a c f g d e Leo van Iersel (TUE/CWI) 2WO12: Optimalisering in Netwerken 27 februari 2014 32 / 34
Fylogenetische bomen met lengtes Definitie Laat T = (V, E) een fylogenetische boom op X zijn en l : E R + een lengtefunctie. Voor twee bladeren met labels a en b is d T,l (a, b) := e P l(e) met P het unieke pad tussen de bladeren met labels a en b in T. Definitie Een metriek op X is een functie d : X X R + waarvoor geldt: d(x, y) = 0 x = y d(x, y) = d(y, x) (symmetrie) d(x, y) d(x, z) + d(z, y) (driehoeksongelijkheid) Leo van Iersel (TUE/CWI) 2WO12: Optimalisering in Netwerken 27 februari 2014 33 / 34
Stelling (4-point condition) Laat d : X X R + een metriek op X zijn. Dan zijn de volgende twee uitspraken equivalent: 1 er bestaat een fylogenetische boom T op X met lengtefunctie l : E R + waarvoor d(x, y) = d T,l (x, y) voor alle x, y X ; 2 voor elke vier A, B, C, D X geldt: { d(a, C) + d(b, D) d(a, B) + d(c, D) max d(a, D) + d(b, C). Charles Semple and Mike Steel, Phylogenetics, Oxford University Press, 2003. Leo van Iersel (TUE/CWI) 2WO12: Optimalisering in Netwerken 27 februari 2014 34 / 34