Minimum Spanning Tree. Wat is MST? • Minimum spanning tree • De meest efficiënte manier vinden om een verbonden netwerk op te bouwen.

Slides:



Advertisements
Verwante presentaties
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica IN3 005 Deel 2 College 5 Cees Witteveen
Advertisements

EVMINX4 Week 3 Algoritmen en Datastructuren (ALDAT)
DEEL 1 LES 5 De basis Les 5 Spelen met troef versie
Graph Begrippen: knoop, vertices kant, zijde, edge
Recreatieve algoritmiek Gerard Tel, Thomas van Dijk.
1 Datastructuren Sorteren: alleen of niet alleen vergelijkingen College 5.
1 Datastructuren Lijstjes (Stacks & Queues) Onderwerp 7.
Datastructuren Zoekbomen
1 Datastructuren Heapsort College 4. 2 Vandaag  Kort: ADT vs Datastructuur  Heaps en Heapsort  Tijd over: ondergrenzen voor sorteren; nog sneller sorteren.
1 Datastructuren Zoekbomen II Invoegen en weglaten.
1 Datastructuren Sorteren: alleen of niet alleen vergelijkingen (II) College 6.
Terrain Analysis Seminar GIA najaar 2004 Joost Voogt.
Dijkstra Kortste pad algoritme.
De koektrommel of de grabbelton
Rick van den Dobbelsteen Lloyd Fasting
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica in345 Deel 2 College 5 Cees Witteveen.
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica in3005 Deel 2 College 6 Cees Witteveen
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica In3005 Deel 2 College 3 Cees Witteveen
Practicum I&M College deel 1
Motion planning with complete knowledge using a colored SOM Jules Vleugels, Joost N. Kok, & Mark Overmars Presentatie: Richard Jacobs.
1 Datastructuren Skiplists. 2 Skiplists  Vrij eenvoudige datastructuur  “Makkelijker” dan gebalanceerde bomen  Kunnen hetzelfde als gebalanceerde bomen.
1 Optuigen van datastructuren 2 Dynamische order statistics (2)
Optuigen van datastructuren
1 Datastructuren Heapsort (2e deel) College 5. 2 Vandaag  Heaps en Heapsort  (eind)  Nog sneller sorteren:  Ondergrenzen  Linair sorteren.
Indeling Inleiding op PRM-planners & Medial Axis Retraction van configuraties op de Medial Axis Verbetering van retraction Verbetering van sampling Expliciete.
Datastructuren Sorteren, zoeken en tijdsanalyse
1 Datastructuren Een informele inleiding tot Skiplists Onderwerp 13.
TU Delft Groep Parallelle en Gedistribueerde Systemen Fundamentele Informatica IN3120 Cees Witteveen Parallelle en Gedistribueerde Systemen Faculteit EWI,
Shortest path with negative arc-costs allowed. Dijkstra?
Hoofdstuk 9 havo KWADRATEN EN LETTERS
Planning With Nonholonomic Constraints By Jeroen Resoort & Ronald Treur.
CONTROLESTRUCTUREN (DEEL 1)
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica in345 Deel 2 College 6 Cees Witteveen.
DEEL 1 LES 5 De basis Les 5 Spelen met troef versie
Instructie Programmeren Task 7
OPDRACHT B. ING BANKIEREN APP Omschrijving: Altijd en overal uw particuliere en uw zakelijke bankzaken regelen via uw mobiel of tablet. Download deze.
Genetisch Algoritme 1 Voordeel  GAs kunnen snel goede oplossingen leveren, zelfs voor moeilijke oplossingsruimten. Nadeel  GAs vinden niet gegarandeerd.
1 PI1 week 9 Complexiteit Sorteren Zoeken. 2 Complexiteit van algoritmen Hoeveel werk kost het uitvoeren van een algoritme (efficiëntie)? –tel het aantal.
Grafentheorie Graaf Verzameling knopen al dan niet verbonden door takken, bijv:
Recursie…. De Mandelbrot Fractal De werking… De verzameling natuurlijke getallen… 0 ∞-∞
Amorized Analysis en Union-Find Algoritmiek. 2 Vandaag Amortized analysis –Technieken voor tijdsanalyse van algoritmen Union-find datastructuur –Datastructuur.
Minimum Opspannende Bomen Algoritmiek. 2 Inhoud Het minimum opspannende bomen probleem Een principe om een minimum opspannende boom te laten groeien Twee.
Doorzoeken van grafen Algoritmiek. Algoritmiek: Divide & Conquer2 Vandaag Methoden om door grafen te wandelen –Depth First Search –Breadth First Search.
Kortste Paden Algoritmiek. 2 Vandaag Kortste Paden probleem All pairs / Single Source / Single Target versies DP algoritme voor All Pairs probleem (Floyd’s.
Greedy algorithms Algoritmiek. 2 Vandaag Greedy algorithms: wat zijn dat? Voorbeelden: –gepast betalen met euromunten –AB-rijtje –… Knapsack probleem.
Heuristieken en benaderingsalgoritmen Algoritmiek.
Divide & Conquer: Verdeel en Heers vervolg Algoritmiek.
Datastructuren voor grafen Algoritmiek. 2 Grafen Model van o.a.: –Wegennetwerk –Elektrische schakeling –Structuur van een programma –Computernetwerk –…
Kortste Paden Algoritmiek.
Doorzoeken van grafen Algoritmiek.
Netwerkstroming Algoritmiek.
NP-volledigheid Algoritmiek.
Dynamisch Programmeren III
All-Pairs Shortest paths
Datastructuren voor graafrepresentatie
Minimum Opspannende Bomen
Amorized Analysis en Union-Find
Benaderingsalgoritmen
Greedy algorithms Algoritmiek.
Divide & Conquer: Verdeel en Heers
7.2 Buiten haakjes brengen Zo veel mogelijk factoren
Modderdorp UNPLUGGED Bron: csunplugged.org.
Modderdorp Bron: csunplugged.org.
Route planning in wegen netwerken
Algoritmiek 2 november 2010 Snelweg hiërarchieën voor route planning
Modderdorp Bron: csunplugged.org.
Sorteren met kaarten.
Modderdorp UNPLUGGED Bron: csunplugged.org.
Bewijs: de driehoeksongelijkheid
Doolhof. doolhof doolhof Maak een routine die de ‘hekken’ tussen de cellen weghaalt Maak een 2-dimensionale array met kolommen en rijen aangeklikt.
Transcript van de presentatie:

Minimum Spanning Tree

Wat is MST? • Minimum spanning tree • De meest efficiënte manier vinden om een verbonden netwerk op te bouwen

Wat is een tree/boom?

Hoeveel kanten heeft een boom?

Definitie MST

Voorbeeld MST

MST als optimaliseringsprobleem

Bomen bouwen 1

Bomen bouwen 2

Hoe bepaal je een MST? • Algoritmische trukendoos: – Divide & Conquer • Verdeel de graaf in twee deelgraven? • Verbind de deel-MST’s met de lichtste kant? • Fail… – Dynamisch Programmeren

Hoe bepaal je een MST?

• DP heeft naast OSS ook overlapping subproblems nodig • Het kan wél, maar… • Het probleem heeft een greedy choice property!

Algoritme van Prim • Bouw de boom op door steeds 1 kant toe te voegen • Kies een beginknoop • Bekijk de knopen die je in 1 stap kunt bereiken • Kies de lichtste van de uitgaande kant • Je kiest steeds de lichtste boomverlatende kant

Algoritme van Prim

Implementatie van Prim • Hoe kun je snel de lichtste kant vinden? Priority Queue! • Representatie van het resultaat? Parent Pointers

Pseudocode van Prim foreach(Vertex v in graph.Vertices) v.Key = ∞; root.Key = 0; PQ = new PriorityQueue(graph.Vertices); while(!PQ.Empty) u = PQ.ExtractMin(); foreach(Vertex v in u.Neighbors) if(PQ.Contains(v) && w(u,v) < v.Key) v.Parent = u; PQ.DecreaseKey(v, w(u,v));

Algoritme van Prim Priority Queue B: 4 H: 8

Algoritme van Prim Priority Queue B: 4 C: 8 H: 8

Algoritme van Prim Priority Queue C: 8 I: 2 F: 4 D: 7 H: 8

Algoritme van Prim Priority Queue I: 2 F: 4 G: 6 D: 7 H: 8 H: 7

Algoritme van Prim

Pseudocode van Prim

Pseudocode van Prim Dijkstra

Bewijs van Prim

Algoritme van Kruskal

• Bekijk de kanten van licht naar zwaar • Voeg steeds de kant toe als hij geen cykel introduceert • Cykels testen: Union-Find! Sort(edges);foreach(Vertex v) MakeSet(v); foreach(Edge e) if(FindRep(e.A) ≠ FindRep(e.B)) resultaat.Add(e); Union(e.A, e.B);

Algoritme van Kruskal

Voorbeeld Kruskal HG IC GF AB CF IG CD HI AH BC DE FE

Voorbeeld Kruskal HG: A B C D E F GH I IC GF AB CF IG CD HI AH BC DE FE

Voorbeeld Kruskal HG: A B C D E F GH I IC: A B CI D E F GH GF AB CF IG CD HI AH BC DE FE

Voorbeeld Kruskal HG: A B C D E F GH I IC: A B CI D E F GH GF: A B CI D E FGH AB CF IG CD HI AH BC DE FE

Voorbeeld Kruskal HG: A B C D E F GH I IC: A B CI D E F GH GF: A B CI D E FGH AB: AB CI D E FGH CF IG CD HI AH BC DE FE

Voorbeeld Kruskal HG: A B C D E F GH I IC: A B CI D E F GH GF: A B CI D E FGH AB: AB CI D E FGH CF: AB CFGHI D E IG CD HI AH BC DE FE

Voorbeeld Kruskal HG: A B C D E F GH I IC: A B CI D E F GH GF: A B CI D E FGH AB: AB CI D E FGH CF: AB CFGHI D E IG: niks CD HI AH BC DE FE

Voorbeeld Kruskal HG: A B C D E F GH I IC: A B CI D E F GH GF: A B CI D E FGH AB: AB CI D E FGH CF: AB CFGHI D E IG: niks CD: AB CDFGHI E HI AH BC DE FE

Voorbeeld Kruskal HG: A B C D E F GH I IC: A B CI D E F GH GF: A B CI D E FGH AB: AB CI D E FGH CF: AB CFGHI D E IG: niks CD: AB CDFGHI E HI: niks AH BC DE FE

Voorbeeld Kruskal HG: A B C D E F GH I IC: A B CI D E F GH GF: A B CI D E FGH AB: AB CI D E FGH CF: AB CFGHI D E IG: niks CD: AB CDFGHI E HI: niks AH: ABCDFGHI E BC DE FE

Voorbeeld Kruskal HG: A B C D E F GH I IC: A B CI D E F GH GF: A B CI D E FGH AB: AB CI D E FGH CF: AB CFGHI D E IG: niks CD: AB CDFGHI E HI: niks AH: ABCDFGHI E BC: niks DE FE

Voorbeeld Kruskal HG: A B C D E F GH I IC: A B CI D E F GH GF: A B CI D E FGH AB: AB CI D E FGH CF: AB CFGHI D E IG: niks CD: AB CDFGHI E HI: niks AH: ABCDFGHI E BC: niks DE: ABCDEFGHI FE

Voorbeeld Kruskal HG: A B C D E F GH I IC: A B CI D E F GH GF: A B CI D E FGH AB: AB CI D E FGH CF: AB CFGHI D E IG: niks CD: AB CDFGHI E HI: niks AH: ABCDFGHI E BC: niks DE: ABCDEFGHI FE: niks

Correctheid van Kruskal

Is de MST uniek?

Kroegentocht of TSP • Travelling Salesman • Bepaal een volgorde (rondtocht) om zo snel mogelijk een aantal knopen te bezoeken in een graaf. • Handelsreiziger: wil zijn product in een aantal steden verkopen, wat is de kortste route. • Is een “moeilijk” probleem: NP-compleet • Waarschijnlijk kost het exponentiële tijd om op te lossen

TSP-Approximatie • Met behulp van MST kunnen we TSP benaderen

TSP-Approximatie

Prim VS Kruskal PrimKruskal DatastructuurPriority QueueUnion-Find Looptijd Extra ruimte

Conclusie