Download - Algoritmer og Datastrukturer 2
![Page 1: Algoritmer og Datastrukturer 2](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813e6a550346895da87d0e/html5/thumbnails/1.jpg)
Algoritmer og Datastrukturer 2
Gerth Stølting Brodal
Minimum Udspændende Træer (MST) [CLRS, kapitel 23]
![Page 2: Algoritmer og Datastrukturer 2](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813e6a550346895da87d0e/html5/thumbnails/2.jpg)
Minimum Udspændende Træ (MST)
Problem Find et udspændende træ for en sammenhængende uorienteret vægtet graf således at summen af kanterne er mindst mulig
![Page 3: Algoritmer og Datastrukturer 2](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813e6a550346895da87d0e/html5/thumbnails/3.jpg)
Minimum Udspændende Træer: Snit
Sætning Hvis alle vægte er forskellige, så gælder der for ethvert snit (S,V-S) at den letteste kant der krydser snittet er med i et minimum udspændende træ
![Page 4: Algoritmer og Datastrukturer 2](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813e6a550346895da87d0e/html5/thumbnails/4.jpg)
Sætning Hvis alle vægte er forskellige, så gælder der for ethvert snit (S,V-S) at den letteste kant der krydser snittet er med i et minimum udspændende træ
9
3
5
7
e’ = 9
e = 3
5
7
snit
Nyt udspændende træ med mindre vægt
Antag modsætningsvis et MST med et snit hvor mindste kant e ikke er med i MST
uv u
v
![Page 5: Algoritmer og Datastrukturer 2](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813e6a550346895da87d0e/html5/thumbnails/5.jpg)
Sætning Hvis alle vægte er forskellige, så gælder der for enhver cykel at den tungeste kant i cyklen ikke er med i et minimum udspændende træ
e = 7
v
u
e’ = 5
7
v
u
5
Nyt udspændende træ med mindre vægt
Antag modsætningsvis et MST og cykel hvor tungeste kant e er med i MST
![Page 6: Algoritmer og Datastrukturer 2](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813e6a550346895da87d0e/html5/thumbnails/6.jpg)
Minimum Udspændende Træer: Grådig generel algoritme
En letteste kant over et snit (som ikke allerede indeholder kanter fra A)
![Page 7: Algoritmer og Datastrukturer 2](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813e6a550346895da87d0e/html5/thumbnails/7.jpg)
Kruskall’s Algoritme
flaskehals i algoritmen
Tid O(m·log n)
Union-Find datastruktur
![Page 8: Algoritmer og Datastrukturer 2](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813e6a550346895da87d0e/html5/thumbnails/8.jpg)
Kruskall’s Algoritme: Eksempel
Kantene betrages efter stigende vægte (angivet med )
For hver kant er angivet snittet hvor den er en letteste kant eller cyklen hvor den er en tungeste kant
![Page 9: Algoritmer og Datastrukturer 2](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813e6a550346895da87d0e/html5/thumbnails/9.jpg)
Prim’s Algoritme
Tid O(m·log n)
flaskehals i algoritmen - prioritetskø
r
![Page 10: Algoritmer og Datastrukturer 2](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813e6a550346895da87d0e/html5/thumbnails/10.jpg)
Prim’s Algoritme: Eksempel
![Page 11: Algoritmer og Datastrukturer 2](https://reader036.vdocuments.site/reader036/viewer/2022062517/56813e6a550346895da87d0e/html5/thumbnails/11.jpg)
Minimum Udspænding Træer
Kruskall (1956) (mange træer; sorterer kanterne)
O(m·log n)
Prim (1930)(et træ; prioritetskø over naboknuder)
O(m·log n)
O(m+n·log n)(Fibonnaci heaps [CLRS, kapitel 19] (1984))
Borůvka (1926)(mange træer samtidigt; kontraktion)
O(m·log n)
Fredman, Tarjan (1984)(Borůvka (1926) + Fibonnaci heaps)
O(m·log* n)
Chazelle (1997) O(m·α(m,n))
Pettie, Ramachandran (2000) ? (men optimal determinisksammenligningsbaseret)
Karger, Klein, Tarjan (1995) (Randomiseret)
Fredmand, Willard (1994) (RAM)O(m)