Mindste udspændende træ

Relaterede dokumenter
Mindste udspændende træ. Mindste udspændende træ. Introduktion. Introduktion

Mindste udspændende træ. Mindste udspændende træ. Introduktion. Introduktion

Mindste udspændende træ

Korteste veje. Introduktion Egenskaber for korteste veje Dijkstras algoritme Korteste veje på DAGs. Philip Bille

Korteste veje. Introduktion Egenskaber for korteste veje Dijkstras algoritme Korteste veje på DAGs. Philip Bille

Minimum udspændende Træer (MST)

Forén og find. Introduktion Hurtig find Hurtig forening Vægtet forening Stikompression Dynamiske sammenhængskomponenter.

Korteste veje. Korteste veje. Introduktion. Introduktion. Introduktion Egenskaber for korteste veje Dijkstras algoritme Korteste veje på DAGs

Korteste veje. Korteste veje. Introduktion. Introduktion. Introduktion Egenskaber for korteste veje Dijkstras algoritme Korteste veje på DAGs

Forén og find. Introduktion Hurtig find Hurtig forening Vægtet forening Stikompression Dynamiske sammenhængskomponenter.

Prioritetskøer og hobe. Philip Bille

Prioritetskøer. Prioritetskøer Træer og hobe Repræsentation af hobe Algoritmer på hobe Hobkonstruktion Hobsortering. Philip Bille

Minimum udspændende Træer (MST)

Prioritetskøer. Prioritetskøer. Prioritetskøer. Prioritetskøer

Korteste veje i vægtede grafer. Længde af sti = sum af vægte af kanter på sti.

Prioritetskøer. Prioritetskøer. Prioritetskøer. Prioritetskøer

Orienterede grafer. Orienterede grafer. Orienterede grafer. Vejnetværk

Korteste veje i vægtede grafer. Længde af sti = sum af vægte af kanter på sti.

Korteste veje i vægtede grafer. Længde af sti = sum af vægte af kanter på sti.

02105 Eksamensnoter. Lasse Herskind S maj Sortering 3

Minimum udspændende Træer (MST)

Danmarks Tekniske Universitet

Korteste veje. Korteste veje. Introduktion. Introduktion. Introduktion Egenskaber for korteste veje Dijkstras algoritme Korteste veje på DAGs

Definition : Et træ er en sammenhængende ikke-orienteret graf uden simple kredse. Sætning : En ikke-orienteret graf er et træ hvis og kun hvis der er

Orienterede grafer. Introduktion Repræsentation Søgning Topologisk sortering og DAGs Stærke sammenhængskomponenter Implicitte grafer.

Danmarks Tekniske Universitet

Orienterede grafer. Orienterede grafer. Orienterede grafer. Orienterede grafer

Danmarks Tekniske Universitet

Løs til optimalitet i eksponentiel tid Find tilnærmet løsning i polynomiel tid

DM02 Kogt ned. Kokken. Januar 2006

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer

Algoritmer og datastrukturer Course No Cheat Sheet May 15, 2012

Forén og find. Forén og find. Forén og find. Anvendelser

Forén og find. Forén og find. Forén og find. Forén og find

Binære søgetræer. Binære søgetræer. Nærmeste naboer. Nærmeste nabo

Binære søgetræer. Binære søgetræer. Nærmeste naboer. Nærmeste nabo

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer

.. if L(u) + w(u, v) < L(v) then.. begin... L(v) := L(u) + w(u, v)... F (v) := u.. end. med længde L(z)}

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507)

Vægtede grafer. I en vægtet graf har enhver kant tilknyttet en numerisk værdi, kaldet kantens vægt

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Grådige algoritmer. Et algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Algoritmeanalyse. Øvre grænse for algoritme. Øvre grænse for problem. Nedre grænse for problem. Identificer essentiel(le) operation(er)

Danmarks Tekniske Universitet

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Binære søgetræer. Nærmeste naboer Binære søgetræer Indsættelse Predecessor og successor Sletning Trægennemløb. Philip Bille

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

Skriftlig Eksamen Algoritmer og Datastrukturer 2 (2003-ordning)

Datastrukturer (recap)

Danmarks Tekniske Universitet

Introduktion til datastrukturer. Introduktion til datastrukturer. Introduktion til datastrukturer. Datastrukturer

Sammenhængskomponenter i grafer

Danmarks Tekniske Universitet

Grafer og graf-gennemløb

Grafer og graf-gennemløb

Danmarks Tekniske Universitet

P (n): rekursiv beregning af f n kræver f n beregninger af f 1. P (n) er sand for alle n 2.

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

Danmarks Tekniske Universitet

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

Introduktion til datastrukturer

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

Grafer og graf-gennemløb

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

Danmarks Tekniske Universitet

Grafer og graf-gennemløb

Grafer og graf-gennemløb

Introduktion til datastrukturer. Introduktion til datastrukturer. Introduktion til datastrukturer. Datastrukturer

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507)

Datastrukturer (recap) Datastruktur = data + operationer herpå

Danmarks Tekniske Universitet

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

Datastrukturer (recap)

DM507 - Algoritmer og datastrukturer

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: n 3/2. n logn (3/2) n. 2 3logn (3/2) n

DATALOGISK INSTITUT, AARHUS UNIVERSITET

Introduktion til datastrukturer. Philip Bille

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

DATALOGISK INSTITUT, AARHUS UNIVERSITET

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: 7 n 1/ log n. (log n) 4

Dynamisk programmering

DATALOGISK INSTITUT, AARHUS UNIVERSITET

Symmetrisk Traveling Salesman Problemet

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET EKSAMEN. Grundkurser i Datalogi. Algoritmer og Datastrukturer 1 (2003-ordning)

Datastrukturer. Datastruktur = data + operationer herpå

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen (bemærk at log n betegner totals logaritmen): n 2 (log n) 2 2.

Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Ideen er simpel:

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

Transkript:

Mindste udspændende træ Introduktion Repræsentation af vægtede grafer Egenskaber for mindste udspændende træer Prims algoritme Kruskals algoritme Philip Bille

Mindste udspændende træ Introduktion Repræsentation af vægtede grafer Egenskaber for mindste udspændende træer Prims algoritme Kruskals algoritme

Introduktion Vægtede grafer. Vægt w(e) på hver kant e i G. Udspændende træ. Delgraf T af G over alle knuder der er sammenhængende og acyklisk. Mindste udspændende træ (MST). Udspændende træ af minimal samlet vægt. 2 2 3 1 23 1 9 1 10 11 1 21 Graf G

Introduktion Vægtede grafer. Vægt w(e) på hver kant e i G. Udspændende træ. Delgraf T af G over alle knuder der er sammenhængende og acyklisk. Mindste udspændende træ (MST). Udspændende træ af minimal samlet vægt. 2 2 3 1 23 1 9 1 10 11 1 21 Ikke sammenhængende

Introduktion Vægtede grafer. Vægt w(e) på hver kant e i G. Udspændende træ. Delgraf T af G over alle knuder der er sammenhængende og acyklisk. Mindste udspændende træ (MST). Udspændende træ af minimal samlet vægt. 2 2 3 1 23 1 9 1 10 11 1 21 Sammenhængende og cyklisk

Introduktion Vægtede grafer. Vægt w(e) på hver kant e i G. Udspændende træ. Delgraf T af G over alle knuder der er sammenhængende og acyklisk. Mindste udspændende træ (MST). Udspændende træ af minimal samlet vægt. 2 2 3 1 23 1 9 1 10 11 1 21 Sammenhængende og acyklisk = udspændende træ T Vægt af T = + + 23 + 2 + 9 + 11 + =

Introduktion Vægtede grafer. Vægt w(e) på hver kant e i G. Udspændende træ. Delgraf T af G over alle knuder der er sammenhængende og acyklisk. Mindste udspændende træ (MST). Udspændende træ af minimal samlet vægt. 2 2 3 1 23 1 9 1 10 11 1 21 Mindste udspændende træ T Vægt af T = + + + + 11 + 9 + = 0

Anvendelser Netværk design. Computer, vej, telefon, elektrisk, kredsløb, kabel tv, hydralisk, Approksimationsalgoritmer. Handelsrejsendes problem, steiner træer. Andre anvendelser. Meteorologi, kosmologi, biomedicinsk analyse, kodning, billedanalyse, Se f. eks. http://www.ics.uci.edu/~eppstein/gina/mst

Mindste udspændende træ Introduktion Repræsentation af vægtede grafer Egenskaber for mindste udspændende træer Prims algoritme Kruskals algoritme

Repræsentation af vægtede grafer Incidensmatrix og incidensliste. Tilsvarende for orienterede grafer. 1 1 3 2 1 0 2 0 1 2 3 0 0 2 0 0 0 0 1 0 3 0 0 0 0 2 3 0 2 0 0 3 2 0 0 0 0 0 0 2 0 0 1 0 1 0 0 0 1 0 2 0 0 0 0 2 0 0 0 0 0 1 0 2 2 0 1 2 3 2 3 1 2 0 2 3 0 1 3 2 3 3 0 2 2 1 2 2 1 1 1 2 2 3 2 1

Mindste udspændende træ Introduktion Repræsentation af vægtede grafer Egenskaber for mindste udspændende træer Prims algoritme Kruskals algoritme

Egenskaber for MST Simplificerende antagelse. Alle kantvægte i G er forskellige. G er sammenhængende MST eksisterer og er unik.

Snitegenskab Def. Et snit er en opdeling af knuderne i to (ikke-tomme) mængder. Def. En snitkant i et snit er en kant med et endepunkt i hver side af snittet. Snitegenskab. For et vilkårligt snit, er den letteste snitkant med i MST. Bevis. Modstridsbevis. Antag den letteste snitkant e for et snit ikke er med i MST. Hvis vi tilføjer e til MST laver vi en kreds. Der er en anden snitkant f i kredsen. Hvis vi fjerner f og tilføjer e har vi et nyt udspændende træ T. Da w(e) < w(f) er w(t) < w(mst). snitkanter e f

Kredsegenskab Kredsegenskab. For en vilkårlig kreds, er den tungeste kant i kreds ikke med i MST. Bevis. Modstridsbevis Antag tungeste kant f på en kreds K er indeholdt i MST. Der er lettere kant e i K, der ikke er indeholdt i MST. Hvis vi fjerner f og tilføjer e har vi et nyt udspændende træ T. Da w(e) < w(f) er w(t) < w(mst). kreds K e f

Egenskaber for MST Snitegenskab. For et vilkårligt snit, er den letteste snitkant med i MST. Kredsegenskab. For en vilkårlig kreds, er den tungeste kant i kreds ikke med i MST. e f e f

Mindste udspændende træ Introduktion Repræsentation af vægtede grafer Egenskaber for mindste udspændende træer Prims algoritme Kruskals algoritme

Prims algoritme Start ved en knude s og opbyg et træ T fra s. I hvert skridt, tilføj letteste kant med netop et endepunkt i T. Stop når T har n-1 kanter. s

Prims algoritme Start ved en knude s og opbyg et træ T fra s. I hvert skridt, tilføj letteste kant med netop et endepunkt i T. Stop når T har n-1 kanter. Opgave. Håndkør Prims algoritme fra knude 0 på følgende graf. 1 1 11 1 3 0 2 10 9 2 1 1 3

Prims algoritme Lemma. Prims algoritme beregner MST. Bevis. Kig på snit mellem besøgte og ikke besøgte knuder i et skridt af algoritme. Vi tilføjer letteste snitkant e til T. Snitegenskab kanten e er i MST T er MST efter n-1 skridt. s

Prims algoritme Implementation. Hvordan implementerer vi Prims algoritme? Udfordring. Find den letteste kant med netop et endepunkt i T. s

Prims algoritme Implementation. Vedligehold knuder uden for snit i prioritetskø. Nøgle af knude v = letteste kant der forbinder v til træet. ( hvis ikke forbundet). I hvert skridt: Find letteste kant = EXTRACT-MIN Opdater vægt af naboer af ny knude med DECREASE-KEY. 11 s 3 3 10 10

Prims algoritme PRIM(G, s) for alle knuder v V v.key = v.π = null INSERT(P,v) DECREASE-KEY(P,s,0) while (P ) u = EXTRACT-MIN(P) for alle naboer v af u if (v P and w(u,v)<key[v]) DECREASE-KEY(P,v,w(u,v)) v.π = u Tid. n EXTRACT-MIN n INSERT O(m) DECREASE-KEY Samlet tid med min-hob. O(n log n + n log n + m log n) = O(m log n)

Prims algoritme Theorem. Prims algoritme implementeret med en min-hob beregner en MST i O(m log n) tid. Grådighed. Prims algoritme er eksempel på en grådig algoritme. I hvert skridt, træf det optimale lokale valg. global optimal løsning.

Prims algoritme Prioritetskøer og Prim. Kompleksitet af Prims algoritme afhænger af prioritetskø: n INSERT n EXTRACT-MIN m + 1 DECREASE-KEY Prioritetskø INSERT EXTRACT-MIN DECREASE-KEY Total tabel O(1) O(n) O(1) O(n 2 ) binær hob O(log n) O(log n) O(log n) O(m log n) Fibonacci hob O(1) O(log n) O(1) O(m + n log n) = amortiseret køretid

Mindste udspændende træ Introduktion Repræsentation af vægtede grafer Egenskaber for mindste udspændende træer Prims algoritme Kruskals algoritme

Kruskals algoritme Kig på kanter fra letteste til tungeste. I hvert skridt, tilføj kant til T hvis den ikke medfører en kreds i T. Stop når T har n-1 kanter. 11 1 9 1 3 12 13 2 1 9 10 1

Kruskals algoritme Lemma. Kruskals algoritme beregner MST. Bevis. Algoritme kigger på kanter fra letteste til tungest. To tilfælde for en kant e = (u,v). Tilfælde 1. e danner kreds og bliver ikke tilføjet til T. e er tungeste kant på kreds. Kredsegenskab e er ikke med i MST. Tilfælde 2. e danner ikke kreds og bliver tilføjet til T. e er letteste kant på snittet givet ved sammenhængskomponenter for u og v. Snitegenskab e er med i MST. T er MST når n-1 kanter er tilføjet.

Kruskals algoritme Implementation. Hvordan implementerer vi Kruskals algoritme? Udfordring. Afgør om en kant danner en kreds. 11 1 9 1 3 12 13 2 1 9 10 1

Kruskals algoritme Implementation. Vedligehold kanter i T i datastruktur til dynamiske sammenhængskomponenter. I hvert skridt: Undersøg om kant danner en kreds = CONNECTED. Tilføj ny kant = INSERT. 11 1 9 1 3 12 13 2 1 9 10 1

Kruskals algoritme KRUSKAL(G) Sorter kanter INIT(n) for alle kanter (u,v) i sort. orden if (!CONNECTED(u,v)) INSERT(u,v) return indsatte kanter Tid. Sortering af m kanter. 1 INIT m CONNECTED n INSERT Samlet tid med vægtet forening. O(m log m + n + m log n + n log n) = O(m log n).

Kruskals algoritme Theorem. Kruskals algoritme implementeret med vægtet forening beregner en MST i O(m log n) tid. Grådighed. Kruskals algoritme er også eksempel på en grådig algoritme.

Mindste udspændende træ Hvad er den bedste algoritme til MST? Kan man løse problemet i lineær tid? År Tid Opdaget af??? O(n log m) Jarnik, Prim, Dijkstra, Kruskal, Boruvka,? 19 O(m log log n) Yao 19 O(m log* n) Fredman, Tarjan 199 O(m) Karger, Klein, Tarjan 2000 O(nɑ(m,n)) Chazelle 2002 optimal Pettie, Ramachandran 20xx O(m)??? = randomiseret køretid

Mindste udspændende træ Introduktion Repræsentation af vægtede grafer Egenskaber for mindste udspændende træer Prims algoritme Kruskals algoritme