TW2020 Optimalisering

Vergelijkbare documenten
TW2020 Optimalisering

2WO12: Optimalisering in Netwerken

2WO12: Optimalisering in Netwerken

TW2020 Optimalisering

TW2020 Optimalisering

Discrete Wiskunde, College 12. Han Hoogeveen, Utrecht University

Minimum Opspannende Bomen. Algoritmiek

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

l e x e voor alle e E

TW2020 Optimalisering

TW2020 Optimalisering

TW2020 Optimalisering

Discrete Structuren. Piter Dykstra Sietse Achterop Opleidingsinstituut Informatica en Cognitie

Hebzucht loont niet altijd

2WO12: Optimalisering in Netwerken

Discrete Structuren. Piter Dykstra Opleidingsinstituut Informatica en Cognitie

TW2020 Optimalisering

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

2WO12: Optimalisering in Netwerken

TW2020 Optimalisering

TW2020 Optimalisering

Elfde college algoritmiek. 10 mei Algoritme van Dijkstra, Gretige Algoritmen

TW2020 Optimalisering

TW2020 Optimalisering

TW2020 Optimalisering

Transport-, Routing- en Schedulingproblemen. Wi4062TU / Wi487TU / a86g. Uitwerkingen

TW2020 Optimalisering

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

Netwerkstroming. Algoritmiek

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

l e x e voor alle e E

TW2020 Optimalisering

TW2020 Optimalisering

1.2 Bomen Algemeen 1.2. BOMEN 7

Netwerkstroming. Algoritmiek

Twaalfde college complexiteit. 11 mei Overzicht, MST

Tiende college algoritmiek. 14 april Gretige algoritmen

Tiende college algoritmiek. 2 mei Gretige algoritmen, Dijkstra

Tiende college algoritmiek. 26 april Gretige algoritmen

Tiende college algoritmiek. 4 mei Gretige Algoritmen Algoritme van Dijkstra

Benaderingsalgoritmen

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

TW2020 Optimalisering

Radboud Universiteit Nijmegen

Kortste Paden. Algoritmiek

Minimum Spanning Tree

Grafen deel 2 8/9. Zesde college

1 Vervangingsstrategie auto

Optimaliseren in Netwerken

Sommige praktische IP problemen kunnen worden geformuleerd als optimalisering op een netwerk.

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

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

Lege polygonen in een graaf.

Uitwerkingen Sum of Us

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

Begrenzing van het aantal iteraties in het max-flow algoritme

Hoofdstuk!7!Kortste!paden!

Overzicht. 1. Definities. 2. Basisalgoritme. 3. Label setting methoden. 4. Label correcting methoden. 5. Ondergrenzen. 6.

In dit gedeelte worden drie problemen genoemd die kunnen voorkomen in netwerken.

Transport-, Routing- en Schedulingproblemen. Wi4062TU / Wi487TU / a86g. Uitwerkingen

Gerichte Grafen Boolese Algebra s &. Logische Netwerken

Heuristieken en benaderingsalgoritmen. Algoritmiek

Elfde college algoritmiek. 21 april Dijkstra en Branch & Bound

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

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

Elfde college algoritmiek. 18 mei Algoritme van Dijkstra, Heap, Heapify & Heapsort

Examen Datastructuren en Algoritmen II

Uitwerking tentamen Analyse van Algoritmen, 29 januari

definities recursieve datastructuren college 13 plaatjes soorten Graph = ( V, E ) V vertices, nodes, objecten, knopen, punten

Discrete Wiskunde 2WC15, Lente Jan Draisma

Tentamen combinatorische optimalisatie Tijd:

Lineaire Algebra voor ST

Examen Datastructuren en Algoritmen II

Minimaal opspannende bomen

Tentamen Discrete Wiskunde

Examen Datastructuren en Algoritmen II

Hoofdstuk 13: Integer Lineair Programmeren

Tiende college algoritmiek. 14 april Dynamisch Programmeren, Gretige Algoritmen, Kortste Pad met BFS

Kortste Paden. Algoritmiek

Vierde college complexiteit. 26 februari Beslissingsbomen en selectie Toernooimethode Adversary argument

Toewijzingsprobleem Bachelorscriptie

Optimalisering/Besliskunde 1. College 1 3 september, 2014

8C080 deel BioModeling en bioinformatica

Algoritmiek. 15 februari Grafen en bomen

Algoritmen aan het werk

Examen Datastructuren en Algoritmen II

Elfde college algoritmiek. 16 mei Dijkstra, Gretige algoritmen en Branch & Bound

De volgende opgave gaat over de B-bomen van het college, waar sleutels zowel in de bladeren als ook in de interne knopen opgeslagen worden.

Greedy algoritmes. Algoritmiek

Vijfde college complexiteit. 21 februari Selectie Toernooimethode Adversary argument

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).

Opdracht 3: De volhardende voetbalfan

Activiteit 9. Modderstad Minimaal Opspannende Bomen. Samenvatting. Kerndoelen. Leeftijd. Vaardigheden. Materialen

Examen Datastructuren en Algoritmen II

I.3 Functies. I.3.2 Voorbeeld. De afbeeldingen f: R R, x x 2 en g: R R, x x 2 zijn dus gelijk, ook al zijn ze gegeven door verschillende formules.

Overzicht. Inleiding. Toepassingen. Verwante problemen. Modellering. Exacte oplosmethode: B&B. Insertie heuristieken. Local Search

Vierde college complexiteit. 16 februari Beslissingsbomen en selectie

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

Transcriptie:

TW2020 Optimalisering Hoorcollege 8 Leo van Iersel Technische Universiteit Delft 28 oktober 2015 Leo van Iersel (TUD) TW2020 Optimalisering 28 oktober 2015 1 / 25

Definitie Een boom is een samenhangende graaf zonder circuits. Een bos is een verzameling bomen. Leo van Iersel (TUD) TW2020 Optimalisering 28 oktober 2015 2 / 25

Definitie Een boom is een samenhangende graaf zonder circuits. Een bos is een verzameling bomen. Of: een bos is een graaf zonder circuits. Leo van Iersel (TUD) TW2020 Optimalisering 28 oktober 2015 2 / 25

Definitie Een boom is een samenhangende graaf zonder circuits. Definitie Een bos is een verzameling bomen. Of: een bos is een graaf zonder circuits. Laat G = (V, E) een graaf zijn. Een opspannende boom (spanning tree) van G is een boom T = (V, F ) met F E. Leo van Iersel (TUD) TW2020 Optimalisering 28 oktober 2015 2 / 25

Definitie Een boom is een samenhangende graaf zonder circuits. Definitie Een bos is een verzameling bomen. Of: een bos is een graaf zonder circuits. 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 verbindt en geen circuits bevat. Leo van Iersel (TUD) TW2020 Optimalisering 28 oktober 2015 2 / 25

Voorbeeld Een opspannende boom van de Petersen graaf (in zwart): Leo van Iersel (TUD) TW2020 Optimalisering 28 oktober 2015 3 / 25

Voorbeeld Een andere opspannende boom van de Petersen graaf (in zwart): Leo van Iersel (TUD) TW2020 Optimalisering 28 oktober 2015 4 / 25

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(t ) = l(e) e F Elke samenhangende graaf heeft tenminste één opspannende boom. Toepassing: netwerk ontwerp. Leo van Iersel (TUD) TW2020 Optimalisering 28 oktober 2015 5 / 25

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 Leo van Iersel (TUD) TW2020 Optimalisering 28 oktober 2015 6 / 25

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 Uk+1 := U k e k Fk+1 := F k {e k } Leo van Iersel (TUD) TW2020 Optimalisering 28 oktober 2015 6 / 25

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 (TUD) TW2020 Optimalisering 28 oktober 2015 6 / 25

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 (TUD) TW2020 Optimalisering 28 oktober 2015 7 / 25

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 (TUD) TW2020 Optimalisering 28 oktober 2015 8 / 25

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 (V, F {e}) heeft een uniek circuit C Leo van Iersel (TUD) TW2020 Optimalisering 28 oktober 2015 9 / 25

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 (V, F {e}) heeft een uniek circuit C 2 voor elke lijn f van C is (V, F \ {f } {e}) ook 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 (TUD) TW2020 Optimalisering 28 oktober 2015 9 / 25

Definitie Een bos (V, F ) is een bos van G = (V, E) als F E. Leo van Iersel (TUD) TW2020 Optimalisering 28 oktober 2015 10 / 25

Definitie Een bos (V, F ) is een bos van G = (V, E) als F E. Stelling (12.1) Laat (V, F ) een bos van G = (V, E) zijn, U een samenhangende component van (V, F ) en e δ(u) een lijn met minimale lengte over alle lijnen in δ(u), dan bestaat er een opspannende boom van G die de lijnen in F {e} bevat en die minimaal is over alle opspannende bomen van G die de lijnen in F bevatten. Leo van Iersel (TUD) TW2020 Optimalisering 28 oktober 2015 10 / 25

Definitie Een bos (V, F ) is een bos van G = (V, E) als F E. Stelling (12.1) Laat (V, F ) een bos van G = (V, E) zijn, U een samenhangende component van (V, F ) en e δ(u) een lijn met minimale lengte over alle lijnen in δ(u), dan bestaat er een opspannende boom van G die de lijnen in F {e} bevat en die minimaal is over alle opspannende bomen van G die de lijnen in F bevatten. Stelling Het algoritme van Prim-Dijkstra vindt een minimum opspannende boom. Leo van Iersel (TUD) TW2020 Optimalisering 28 oktober 2015 10 / 25

Stelling Het algoritme van Prim-Dijkstra heeft een looptijd van O( V 2 ). Leo van Iersel (TUD) TW2020 Optimalisering 28 oktober 2015 11 / 25

Stelling Het algoritme van Prim-Dijkstra heeft een looptijd van O( V 2 ). Bewijs 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. Leo van Iersel (TUD) TW2020 Optimalisering 28 oktober 2015 11 / 25

Stelling Het algoritme van Prim-Dijkstra heeft een looptijd van 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 (TUD) TW2020 Optimalisering 28 oktober 2015 11 / 25

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 F := while F < V 1 laat U 1,..., U k de componenten van (V, F ) zijn for i = 1,..., k kies een lijn e i δ(u i ) van minimum lengte F := F {e1,..., e k } Leo van Iersel (TUD) TW2020 Optimalisering 28 oktober 2015 12 / 25

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 F := while F < V 1 laat U 1,..., U k de componenten van (V, F ) zijn for i = 1,..., k kies een lijn e i δ(u i ) van minimum lengte F := F {e1,..., e k } Stelling Borůvka s algoritme vindt een minimum opspannende boom (V, F ) van G. Leo van Iersel (TUD) TW2020 Optimalisering 28 oktober 2015 12 / 25

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 F := while F < V 1 laat U 1,..., U k de componenten van (V, F ) zijn for i = 1,..., k kies een lijn e i δ(u i ) van minimum lengte F := F {e1,..., e k } Stelling Borůvka s algoritme vindt een minimum opspannende boom (V, F ) van G. Stelling De looptijd van Borůvka s algoritme is O( E log( V )). Leo van Iersel (TUD) TW2020 Optimalisering 28 oktober 2015 12 / 25

Voorbeeld Vind een minimum 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 (TUD) TW2020 Optimalisering 28 oktober 2015 13 / 25

Kruskals methode voor het vinden van een minimum opspannende boom van een samenhangende graaf G = (V, E) met lengtefunctie l : E R. Algoritme F := for 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 } Leo van Iersel (TUD) TW2020 Optimalisering 28 oktober 2015 14 / 25

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 := for 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. Leo van Iersel (TUD) TW2020 Optimalisering 28 oktober 2015 14 / 25

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 := for 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 (TUD) TW2020 Optimalisering 28 oktober 2015 14 / 25

Voorbeeld Vind een minimum 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 (TUD) TW2020 Optimalisering 28 oktober 2015 15 / 25

Probleem Maximum Gewicht Bos (Maximum Weight Forest) Gegeven: graaf G = (V, E) en gewichtsfunctie w : E R + Vind: een bos B = (V, F ) van G met maximum gewicht w(e) e F Leo van Iersel (TUD) TW2020 Optimalisering 28 oktober 2015 16 / 25

Probleem Maximum Gewicht Bos (Maximum Weight Forest) Gegeven: graaf G = (V, E) en gewichtsfunctie w : E R + Vind: een bos B = (V, F ) van G met maximum gewicht w(e) e F Definieer een lengtefunctie l : E R + met l(e) = W w(e) waar W = max e E w(e). Leo van Iersel (TUD) TW2020 Optimalisering 28 oktober 2015 16 / 25

Probleem Maximum Gewicht Bos (Maximum Weight Forest) Gegeven: graaf G = (V, E) en gewichtsfunctie w : E R + Vind: een bos B = (V, F ) van G met maximum gewicht w(e) e F Definieer een lengtefunctie l : E R + met l(e) = W w(e) waar W = max e E w(e). Voor een samenhangende graaf G = (V, E) is (V, F ) een maximum gewicht bos m.b.t. w dan en slechts dan als (V, F ) een minimum opspannende boom is m.b.t. l. Leo van Iersel (TUD) TW2020 Optimalisering 28 oktober 2015 16 / 25

Probleem Maximum Gewicht Bos (Maximum Weight Forest) Gegeven: graaf G = (V, E) en gewichtsfunctie w : E R + Vind: een bos B = (V, F ) van G met maximum gewicht w(e) e F Definieer een lengtefunctie l : E R + met l(e) = W w(e) waar W = max e E w(e). Voor een samenhangende graaf G = (V, E) is (V, F ) een maximum gewicht bos m.b.t. w dan en slechts dan als (V, F ) een minimum opspannende boom is m.b.t. l. Voor een niet-samenhangende graaf G = (V, E) vormen de minimum opspannende bomen van de samenhangende componenten van G m.b.t. l een maximum gewicht bos m.b.t. w. Leo van Iersel (TUD) TW2020 Optimalisering 28 oktober 2015 16 / 25

Kruskals methode voor het vinden van een maximum gewicht bos van een graaf G = (V, E) met gewichtsfunctie w : E R. Algoritme F := while er een lijn bestaat die aan F toegevoegd kan worden zonder een circuit te creëren Vind zo n lijn van maximum gewicht en voeg die lijn toe aan F Leo van Iersel (TUD) TW2020 Optimalisering 28 oktober 2015 17 / 25

Kruskals methode voor het vinden van een maximum gewicht bos van een graaf G = (V, E) met gewichtsfunctie w : E R. Algoritme F := while er een lijn bestaat die aan F toegevoegd kan worden zonder een circuit te creëren Vind zo n lijn van maximum gewicht en voeg die lijn toe aan F Kruskals algoritme is een voorbeeld van een greedy algoritme: het maakt in elke iteratie de keuze die direkt het meeste profijt oplevert. Leo van Iersel (TUD) TW2020 Optimalisering 28 oktober 2015 17 / 25

Kruskals methode voor het vinden van een maximum gewicht bos van een graaf G = (V, E) met gewichtsfunctie w : E R. Algoritme F := while er een lijn bestaat die aan F toegevoegd kan worden zonder een circuit te creëren Vind zo n lijn van maximum gewicht en voeg die lijn toe aan F Kruskals algoritme is een voorbeeld van een greedy algoritme: het maakt in elke iteratie de keuze die direkt het meeste profijt oplevert. Het Maximum Gewicht Bos probleem is een voorbeeld van een matroïde probleem. Leo van Iersel (TUD) TW2020 Optimalisering 28 oktober 2015 17 / 25

Kruskals methode voor het vinden van een maximum gewicht bos van een graaf G = (V, E) met gewichtsfunctie w : E R. Algoritme F := while er een lijn bestaat die aan F toegevoegd kan worden zonder een circuit te creëren Vind zo n lijn van maximum gewicht en voeg die lijn toe aan F Kruskals algoritme is een voorbeeld van een greedy algoritme: het maakt in elke iteratie de keuze die direkt het meeste profijt oplevert. Het Maximum Gewicht Bos probleem is een voorbeeld van een matroïde probleem. Alle matroïde problemen kunnen opgelost worden met een greedy algoritme. Leo van Iersel (TUD) TW2020 Optimalisering 28 oktober 2015 17 / 25

Een matroïde bestaat uit een eindige verzameling E en een verzameling I van deelverzamelingen van E die independent sets worden genoemd. Definitie Een matroïde (matroid) is een paar (E, I) met E een eindige verzameling en I een verzameling van deelverzamelingen van E, zodanig dat: (i) Als A I en B A dan is B I. (ii) Als A, B I en A < B dan is er een element e E zodanig dat A {e} I. Leo van Iersel (TUD) TW2020 Optimalisering 28 oktober 2015 18 / 25

Voorbeeld Als G = (V, E) een graaf is en I = {F E (V, F ) bevat geen circuit} dan is (E, I) een matroïde (een graphic matroid). Leo van Iersel (TUD) TW2020 Optimalisering 28 oktober 2015 19 / 25

Voorbeeld Als G = (V, E) een graaf is en I = {F E (V, F ) bevat geen circuit} dan is (E, I) een matroïde (een graphic matroid). Voorbeeld Als A een m n matrix is met: S de verzameling van kolommen van A; F = {F S de kolommen in F zijn lineair onafhankelijk} dan is (S, F) een matroïde (een matric matroid). Leo van Iersel (TUD) TW2020 Optimalisering 28 oktober 2015 19 / 25

Elke matroïde (E, I) heeft een bijbehorend probleem: gegeven een gewichtsfunctie w : E R, vind een independent set van maximum gewicht. Leo van Iersel (TUD) TW2020 Optimalisering 28 oktober 2015 20 / 25

Elke matroïde (E, I) heeft een bijbehorend probleem: gegeven een gewichtsfunctie w : E R, vind een independent set van maximum gewicht. Deze problemen kunnen allemaal opgelost worden met het greedy algoritme. Algoritme F := while E Kies e E met maximum gewicht w(e) Verwijder e uit E. if F {e} I Voeg e toe aan F Uitvoer: F De uitvoer F is een independent set van maximum gewicht. Leo van Iersel (TUD) TW2020 Optimalisering 28 oktober 2015 20 / 25

Vraag Hoeveel opspannende bomen heeft een volledige graaf met n punten? Stelling (Formule van Cayley) Het aantal verschillende bomen met n gelabelde punten is n n 2. Leo van Iersel (TUD) TW2020 Optimalisering 28 oktober 2015 21 / 25

Vraag Hoeveel opspannende bomen heeft een volledige graaf met n punten? Stelling (Formule van Cayley) Het aantal verschillende bomen met n gelabelde punten is n n 2. Leo 2 2 van Iersel (TUD) TW2020 Optimalisering 3 2 28 oktober 2015 21 / 25

Definitie Een Prüfer rij is een rij van lengte n 2 bestaande uit getallen uit {1,..., n} Leo van Iersel (TUD) TW2020 Optimalisering 28 oktober 2015 22 / 25

Definitie Een Prüfer rij is een rij van lengte n 2 bestaande uit getallen uit {1,..., n} Gegeven een gelabelde boom T, kun je als volgt een unieke Prüfer rij 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 rij; verwijder b uit de boom; herhaal de voorgaande stappen totdat er twee punten over zijn. Leo van Iersel (TUD) TW2020 Optimalisering 28 oktober 2015 22 / 25

Algoritme Vind het blad b met kleinste label; voeg de buur van b toe aan de Prüfer rij; verwijder b uit de boom; herhaal de voorgaande stappen totdat er twee punten over zijn. Voorbeeld Vind de Prüfer rij van de onderstaande boom. 8 1 2 3 4 5 6 Leo van Iersel (TUD) TW2020 Optimalisering 28 oktober 2015 23 / 25 7

Algoritme Vind het blad b met kleinste label; voeg de buur van b toe aan de Prüfer rij; verwijder b uit de boom; herhaal de voorgaande stappen totdat er twee punten over zijn. Voorbeeld Vind de Prüfer rij van de onderstaande boom. 8 1 2 3 4 5 6 Leo van Iersel (TUD) TW2020 Optimalisering 28 oktober 2015 23 / 25 7

Gegeven een Prüfer rij 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 (TUD) TW2020 Optimalisering 28 oktober 2015 24 / 25

Stelling Er is een bijectie tussen bomen met puntlabels 1,..., n en Prüfer rijen van lengte n 2. Leo van Iersel (TUD) TW2020 Optimalisering 28 oktober 2015 25 / 25

Stelling Er is een bijectie tussen bomen met puntlabels 1,..., n en Prüfer rijen van lengte n 2. Stelling (Formule van Cayley) Het aantal verschillende bomen met n gelabelde punten is n n 2. Dus een volledige graaf heeft n n 2 opspannende bomen. Leo van Iersel (TUD) TW2020 Optimalisering 28 oktober 2015 25 / 25