Minimum spenntrær. Lars Vidar Magnusson Kapittel 23. Kruskal Prim

Like dokumenter
Minimum Spenntrær - Kruskal & Prim

Korteste Vei II. Lars Vidar Magnusson Kapittel 24 Bellman-Ford algoritmen Dijkstra algoritmen

Øvingsforelesning 4. Topologisk sortering, Strongly Connected Components og Minimale spenntrær. Magnus Botnan

INF Algoritmer og datastrukturer

Grunnleggende Grafalgoritmer

IN Algoritmer og datastrukturer

INF1020 Algoritmer og datastrukturer GRAFER

INF Algoritmer og datastrukturer

Algdat - øvingsforelesning

GRAFER. Korteste vei i en vektet graf uten negative kanter. Korteste vei, en-til-alle, for: Minimale spenntrær

Korteste Vei I. Lars Vidar Magnusson Kapittel 24 Hvordan finne korteste vei Egenskaper ved korteste vei

MAT1030 Forelesning 22

Introduksjon. MAT1030 Diskret Matematikk. Introduksjon. En graf. Forelesning 22: Grafteori. Roger Antonsen

Introduksjon. MAT1030 Diskret matematikk. Søkealgoritmer for grafer. En graf

MAT1030 Diskret matematikk

INF Algoritmer og datastrukturer

Korteste vei i en vektet graf uten negative kanter

GRAFER. Noen grafdefinisjoner. Korteste vei i en uvektet graf V 2 V 1 V 5 V 3 V 4 V 6

Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer

Forelesning 23. Grafteori. Dag Normann april Oppsummering. Oppsummering. Oppsummering. Digresjon: Firefarveproblemet

MAT1030 Diskret matematikk

Oppsummering. MAT1030 Diskret matematikk. Oppsummering. Oppsummering. Forelesning 23: Grafteori

LO118D Forelesning 10 (DM)

Uretta grafar (1) Mengde nodar Mengde kantar som er eit uordna par av nodar

O, what a tangled. Fjerde forelesning. Robot-eksemplet som ikke ble gjennomgått sist blir frivillig selvstudium (ut fra foilene :-)

Ekstra ark kan legges ved om nødvendig, men det er meningen at svarene skal få plass i rutene på oppgavearkene. Lange svar teller ikke positivt.

Grunnleggende Grafalgoritmer II

MAT1030 Forelesning 24

MAT1030 Forelesning 22

MAT1030 Forelesning 25

Kombinatorikk. MAT1030 Diskret Matematikk. Oppsummering av regneprinsipper

MAT1030 Diskret Matematikk

MAT1030 Diskret Matematikk

LP. Leksjon 9: Kapittel 13: Nettverk strøm problemer, forts.2

Grafteori. MAT1030 Diskret Matematikk. Oppsummering. Oppsummering. Forelesning 24: Grafer og trær. Dag Normann

Eksamen i fag SIF8010 Algoritmer og datastrukturer Lørdag 9. august 2003, kl

Forelesning 25. MAT1030 Diskret Matematikk. Litt repetisjon. Litt repetisjon. Forelesning 25: Trær. Dag Normann

Studentnummer: Side 1 av 1. Løsningsforslag, Eksamen i TDT4120 Algoritmer og datastrukturer August 2005

IN Algoritmer og datastrukturer

MAT1140: Kort sammendrag av grafteorien

LO118D Forelesning 9 (DM)

LØSNINGSFORSLAG, EKSAMEN I ALGORITMER OG DATASTRUKTURER (IT1105)

Løsningsforslag for eksamen i fag SIF8010 Algoritmer og datastrukturer Lørdag 9. august 2003, kl

Høgskoleni østfold EKSAMEN. 4 dobbeltsidige ark med notater Lars Magnusson

Grunnleggende Grafalgoritmer III

Matchinger i ikke-bipartite grafer

LP. Leksjon 7. Kapittel 13: Nettverk strøm problemer

LP. Leksjon 8: Kapittel 13: Nettverk strøm problemer, forts.1

Plenumsregning 12. Diverse oppgaver. Roger Antonsen mai Eksamen 12/6-06 Oppgave 2. Plan

O, what a tangled. Fjerde forelesning. O, what a tangled web we weave / When first we practice to deceive! Sir Walter Scott, *Marmion*

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Forelesning 24. Grafer og trær. Dag Normann april Vektede grafer. En kommunegraf

Løsnings forslag i java In115, Våren 1998

Vektede grafer. MAT1030 Diskret matematikk. En kommunegraf. En kommunegraf. Oppgave

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

MAT1030 Forelesning 25

MAT1140: Kort sammendrag av grafteorien

Forelesning 25. MAT1030 Diskret Matematikk. Litt repetisjon. Litt repetisjon. Forelesning 25: Trær. Roger Antonsen

Algdat - Øvingsforelesning. Maks flyt

Løsningsforslag - Korteste vei

Eksamen i fag SIF8010 Algoritmer og Datastrukturer Tirsdag 18. Desember 2000, kl

Algdat Redux. Fjortende forelesning. Repetisjon av utvalgte emner.

Quicksort. Lars Vidar Magnusson Kapittel 7 Quicksort Randomisert Quicksort Analyse av Quicksort

HØGSKOLEN I BERGEN Avdeling for ingeniørutdanning

Forelesningsplan. Grådighet. LF Øving 9. Hva er grådighet? Aktivitetsvelger En grådig strategi Grådig eller dynamisk? Knapsack Huffmankoding

Algdat Eksamensforelesning. Nils Barlaug

Kompleksitet og Beregnbarhet

TMA4140 Diskret Matematikk Høst 2016

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Grådige algoritmer. Lars Vidar Magnusson Kapittel 16. Aktivitetvelgingsproblemet Huffmankoder

Løsningsforslag for utvalgte oppgaver fra kapittel 9

Løsningsforslag: Deloppgave om heuristiske søkemetoder ALGKON 2002, ordinær eksamen

UNIVERSITETET I OSLO

Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer

Eksamen i tdt4120 Algoritmer og datastrukturer

Øvingsforelesning 12 Maks flyt

Korteste vei problemet (seksjon 15.3)

Divide-and-Conquer II

UNIVERSITETET I OSLO

Lars Vidar Magnusson Kapittel 13 Rød-Svarte (Red-Black) trær Rotasjoner Insetting Sletting

Online datingtjeneste The Hungarian Algorithm

En litt annen måte å forklare traversering på. Traversering

ingen Fase I nødvendig konvergerer dersom LP er begrenset og konsistent skifter mellom primal og dual pivotering MoD233 - Geir Hasle - Leksjon 8 2

KORTESTE STI. Vektede Grafer. Korteste Sti. Dijkstra s Algoritme. Vektet Urettet Graf

Oppgave 1 LØSNINGSFORSLAG. Eksamen i INF desember Betrakt følgende vektede, urettede graf:

Universitetet i Oslo Institutt for informatikk. Visualisering av grafalgoritmer. Lars Duvaas. Hovedoppgave

IN Algoritmer og datastrukturer

Morfologi i Binære Bilder II

Eksamen i fag SIF8010 Algoritmer og Datastrukturer Tirsdag 14. Desember 1999, kl

Kjøretidsanalyse. Hogne Jørgensen

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Vi skal se på grafalgoritmer for:

Grunnleggende Grafteori

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Øvingsforelesning Korteste vei: Alle til alle

Løsningsforslag for eksamen i fag SIF8010 Algoritmer og Datastrukturer Tirsdag 18. Desember 2000, kl

Heapsort. Lars Vidar Magnusson Kapittel 6 Heaps Heapsort Prioritetskøer

Øvingsforelesning 9. Flytnettverk, maksimum flyt og maksimum bipartitt matching. Jon Marius Venstad

Spenntrær, oppsummert: Kruskal: Traverserer ikke. Plukker kanter i hytt og vær Prim: Legger alltid til den noden som er nærmest treet

Transkript:

Minimum Spenntrær Lars Vidar Magnusson 2.4.2014 Kapittel 23 Minimum spenntrær Kruskal Prim

Minimum Spenntrær Et spenntre er et tre som spenner over alle nodene i en graf G = (V, E). Et minimum spenntre (MST) er det spenntreet med lavest vekt på kantene. Vi har en urettet graf G = (V, E) med en vekt w(u, v) satt på hver kant (u, v) E. Vi kan finne et minimum spenntre T E slik at. T kobler sammen alle nodene i grafen, og w(t ) = (u,v) T w(u, v) er minst mulig Merk at en graf kan ha flere enn et MST.

Et Eksempel på Anvendelse av Minimum Spenntrær Vi skal se på et konkret eksempel på anvendelse for minimum spenntrær. En by har et sett med hus og et sett med veier. En vei går bare mellom 2 hus. Hver vei har en reparasjonskostnad (w(u, v)). Oppgaven går da ut på å repareren akkurat nok vei. Alle husene må være sammenkoblede med et veinett. Reparasjonskostnaden skal være så liten som mulig.

En Eksempelgraf med Minimum Spenntre Figuren under viser en graf med minimum spenntree merket med grå kanter.

Vokse Minimum Spenntrær Vi skal se på hvordan vi kan vokse frem minimum spenntrær. Vi begynner med å se på et noen egenskaper med et MST. Treet har V 1 kanter. Det har ingen sykler (da hadde det ikke lenger vært et tre) Det er ikke nødvendigvis unikt i.e. det kan finnes flere MST for en graf. Vi kan skissere en løsning på problemet med følgende punkter Vi bygger et sett A med kanter. Til og begynne med er A =. A vil til enhver tid være et subset av et MST. Vi legger bare til trygge (safe) kanter (u, v) slik at hvis A er et subset av et MST så er A {(u, v)} også et subset av et MST.

Pseudokode for en Generisk Minimum Spenntre Algoritme Pseudokoden for en generisk minimum spenntree algoritme kalt Generic-MST er listet under. Denne algoritmen ivaretar en loop invariant slik at A til enhver tid er et subset av en MST. Intialization Mainenance Termination

Hvordan Finne Trygge Kanter Vi skal se på hvordan vi finner trygge kanter til å vokse frem et MST. La oss ta en titt på et eksempel. Vi har en kant (h, g) som har den laveste vekten av alle kantene i grafen. Kan vi trygt legge til denne kanten til A =? Vi deler opp grafen i to deler S og V S slik at h er med i S og g er med i V S. Det må finnes en kant som forbinder S med V S siden vi skal lage et spenntre. Intuitivt kan vi kanskje enkelt si at det er greit å velge (h, g) for å være med i A. For å kunne vite det samme formelt sett må vi først få på plass noen definisjoner.

Diverse Definisjoner For å kunne bevise at vi velger trygge kanter trenger vi noen definisjoner. Vi lar S V og A E. Et kutt (cut) (S, V S) er partisjonering av nodene i to disjunkte sett S og V S. En kant (u, v) krysser (crosses) et kutt (S, V S) hvis en av sluttpunktene er i S og en i V S. Et kutt respekterer (respect) A hvis ingen av kantene i A krysser kuttet. En kant er en lett kant (light edge) hvis vekten til kanten er den minste av alle kantene som krysser kuttet. For ethvert kutt er det > 1 antall lette kanter.

Et Eksempel på et Kutt Figuren under viser et eksempel på et kutt.

Hvordan Vite at en Kant er Trygg Vi skal se på et teorem som sier når en kant er trygg. Teorem Vi lar A være et subsett av et MST, (S, V S) et kutt som respekterer A, og (u, v) være en lett kant som krysser (S, V S). Da er (u, v) en trygg kant for A. Vi skal ikke formelt bevise teoremet fullt ut, men vi skal ta for oss de viktigste delene.

Beviset for Teoremet Beviset for teoremet på forrige slide bygger på følgende resonnement. Vi lar T være et MST som inneholder et subsettet A. Den lette kanten (u, v) som krysser kuttet (S, V S) er ikke med i T. Vi lar stien p være de kantene som forbinder u og v i T. Stien p må krysse kuttet (S, V S) minst en gang Siden kanten (x, y) er med T, og w(u, v) w(x, y), må også (u, v) være med i et MST.