TW2020 Optimalisering

Vergelijkbare documenten
TW2020 Optimalisering

2WO12: Optimalisering in Netwerken

2WO12: Optimalisering in Netwerken

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

TW2020 Optimalisering

TW2020 Optimalisering

TW2020 Optimalisering

TW2020 Optimalisering

Discrete Structuren. Piter Dykstra Sietse Achterop Opleidingsinstituut Informatica en Cognitie

2WO12: Optimalisering in Netwerken

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

Discrete Structuren. Piter Dykstra Opleidingsinstituut Informatica en Cognitie

2WO12: Optimalisering in Netwerken

TW2020 Optimalisering

TW2020 Optimalisering

TW2020 Optimalisering

TW2020 Optimalisering

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

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

l e x e voor alle e E

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

Tiende college algoritmiek. 2 mei Gretige algoritmen, Dijkstra

Netwerkstroming. Algoritmiek

Tiende college algoritmiek. 26 april Gretige algoritmen

1.2 Bomen Algemeen 1.2. BOMEN 7

Netwerkstroming. Algoritmiek

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

TW2020 Optimalisering

Grafen deel 2 8/9. Zesde college

Kortste Paden. Algoritmiek

Benaderingsalgoritmen

Radboud Universiteit Nijmegen

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

Optimaliseren in Netwerken

Hoofdstuk!7!Kortste!paden!

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

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

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

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

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

Elfde college algoritmiek. 21 april Dijkstra en Branch & Bound

Uitwerkingen Sum of Us

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

Begrenzing van het aantal iteraties in het max-flow algoritme

Gerichte Grafen Boolese Algebra s &. Logische Netwerken

Heuristieken en benaderingsalgoritmen. Algoritmiek

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

Lineaire Algebra voor ST

Uitwerking tentamen Analyse van Algoritmen, 29 januari

Algoritmiek. 15 februari Grafen en bomen

Tentamen combinatorische optimalisatie Tijd:

Minimaal opspannende bomen

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

Hoofdstuk 13: Integer Lineair Programmeren

Optimalisering/Besliskunde 1. College 1 3 september, 2014

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

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.

Algoritmen aan het werk

Examen Datastructuren en Algoritmen II

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

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

Vijfde college complexiteit. 21 februari Selectie Toernooimethode Adversary argument

Toewijzingsprobleem Bachelorscriptie

Tentamen Discrete Wiskunde

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

Examen Datastructuren en Algoritmen II

2 beslissen in netwerken. Wiskunde D. Keuzevak beslissen onderdeel: beslissen in netwerken. versie 4 vrijdag 16 november 2007

Greedy algoritmes. Algoritmiek

Examen Datastructuren en Algoritmen II

Tweede college algoritmiek. 12 februari Grafen en bomen

Radboud Universiteit Nijmegen

Transcriptie:

TW2020 Optimalisering Hoorcollege 8 Leo van Iersel Technische Universiteit Delft 2 november 2016 Leo van Iersel (TUD) TW2020 Optimalisering 2 november 2016 1 / 28

Minimum Opspannende Boom (Minimum Spanning Tree) Leo van Iersel (TUD) TW2020 Optimalisering 2 november 2016 2 / 28

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

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 2 november 2016 3 / 28

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 2 november 2016 3 / 28

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 2 november 2016 3 / 28

Voorbeeld Een opspannende boom van de Petersen graaf (in zwart): Leo van Iersel (TUD) TW2020 Optimalisering 2 november 2016 4 / 28

Voorbeeld Een andere opspannende boom van de Petersen graaf (in zwart): Leo van Iersel (TUD) TW2020 Optimalisering 2 november 2016 5 / 28

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 2 november 2016 6 / 28

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 2 november 2016 7 / 28

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 e k δ(u k ) met minimale lengte U k+1 := U k e k F k+1 := F k {e k } (V, F V ) is een minimum opspannende boom van G Leo van Iersel (TUD) TW2020 Optimalisering 2 november 2016 7 / 28

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 2 november 2016 8 / 28

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 2 november 2016 9 / 28

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 2 november 2016 10 / 28

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 2 november 2016 10 / 28

Definitie Een bos (V, F ) is een bos van G = (V, E) als F E. Leo van Iersel (TUD) TW2020 Optimalisering 2 november 2016 11 / 28

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 2 november 2016 11 / 28

Algoritme (Prim-Dijkstra) Stelling 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 U k+1 := U k e k F k+1 := F k {e k } Het algoritme van Prim-Dijkstra vindt een minimum opspannende boom en heeft looptijd O( V 2 ). Leo van Iersel (TUD) TW2020 Optimalisering 2 november 2016 12 / 28

Algoritme (Prim-Dijkstra) Stelling 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 U k+1 := U k e k F k+1 := F k {e k } Het algoritme van Prim-Dijkstra vindt een minimum opspannende boom en heeft looptijd O( V 2 ). Houd voor elk punt v V \ U k de lengte f (v) bij van een kortste lijn {u, v} met u U k. Leo van Iersel (TUD) TW2020 Optimalisering 2 november 2016 12 / 28

Algoritme (Prim-Dijkstra) Stelling 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 U k+1 := U k e k F k+1 := F k {e k } Het algoritme van Prim-Dijkstra vindt een minimum opspannende boom en heeft looptijd O( V 2 ). Houd voor elk punt v V \ U k de lengte f (v) bij van een kortste lijn {u, v} met u U k. Een implementatie met Fibonacci Heaps heeft looptijd O( E + V log( V )). Leo van Iersel (TUD) TW2020 Optimalisering 2 november 2016 12 / 28

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 U1,..., 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 2 november 2016 13 / 28

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 for 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 en heeft looptijd O( E log( V )). Leo van Iersel (TUD) TW2020 Optimalisering 2 november 2016 13 / 28

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 2 november 2016 14 / 28

Na één iteratie: 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 2 november 2016 15 / 28

Na twee iteraties: 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 2 november 2016 16 / 28

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 2 november 2016 17 / 28

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 2 november 2016 17 / 28

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 2 november 2016 17 / 28

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 2 november 2016 18 / 28

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 2 november 2016 19 / 28

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 2 november 2016 19 / 28

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 2 november 2016 19 / 28

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 2 november 2016 19 / 28

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 2 november 2016 20 / 28

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 2 november 2016 20 / 28

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 2 november 2016 20 / 28

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 2 november 2016 20 / 28

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 2 november 2016 21 / 28

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. 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 2 november 2016 21 / 28

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. 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 2 november 2016 22 / 28

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 2 november 2016 23 / 28

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 2 november 2016 23 / 28

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 2 november 2016 24 / 28

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 2 november 2016 24 / 28

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

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 2 november 2016 25 / 28

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 2 november 2016 26 / 28 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 2 november 2016 27 / 28

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 2 november 2016 28 / 28

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 2 november 2016 28 / 28