INF 295 Forelesning 16 - kap 9 Minimalt spenntre og korteste vei i grafer Hans Fredrik Nordhaug (Ola Bø)

Slides:



Advertisements
Liknende presentasjoner
TDT4120 Algoritmer og datastrukturer Trær og søking i dem, samt litt diverse emner Kristian Veøy
Advertisements

The Travelling Salesperson. LOG530 Distribusjonsplanlegging 2 2 Et forsyningsskip skal starte fra VestBase for å betjene 10 forskjellig installasjoner.
Bellman-Ford og Floyd-Warshall Kristian Veøy
Korteste vei. LOG530 Distribusjonsplanlegging 2 2 Ofte står en overfor ønsket om å finne korteste kjørerute fra et gitt utgangspunkt til et ønsket bestemmelsessted.
Komplett avstandstabell. LOG530 Distribusjonsplanlegging 2 2 Noen ganger er det behov for en komplett avstandstabell mellom alle nodene i et nettverk.
Øvingsforelesning 9 Flytnettverk, maksimum flyt og maksimum bipartitt matching Jon Marius Venstad Redigert og forelest av Gleb Sizov.
Ideutvikling - Problemdefinisjonen. Hva gjør de erfarne problemløserne? •Samler og analyserer informasjon og data •Snakker med mennesker som kjenner problemet.
Forside Korteste sti BFS Modifikasjon Dijkstra Eksempel Korrekthet Analyse Øving Spørsmål Dijkstras algoritme Åsmund Eldhuset asmunde *at* stud.ntnu.no.
Dijkstras algoritme Åsmund Eldhuset asmunde *at* stud.ntnu.no
Teoriøving 4 (1) Strongly connected component: ”det maksimale settet med noder slik at for alle nodepar (u,v) i settet finnes kantene u -> v og v -> u.
Øvingsforelesning 9 Flytnettverk, maksimum flyt og
1 Øvingsforelesning Andreas Knudsen Nils Grimsmo
Øvingsforelesning 3 Grafer, BFS, DFS og hashing
Kompleksitetsanalyse
Øvingsforelesning 12 Redusering av problemer,
Alg. Dat Øvingsforelesning 3 Grafer, BFS, DFS og hashing Børge Rødsjø
Øvingsforelesning Magnus Haug
Forside Motivasjon Analyse Forside Motivasjon Analyse  -notasjon O og  Relasjoner Klasser Fallgruver Spørsmål Kompleksitetsanalyse Åsmund Eldhuset asmunde.
INF 295 Forelesning 15 - kap 9 Grafer Hans Fr. Nordhaug (Ola Bø)
Lokalisering av avfallsanlegg - størst minsteavstand.
Minimal Spanning Tree. LOG530 Distribusjonsplanlegging 2 2 Nettverket viser avstanden mellom 8 noder, der nodene A – G beskriver oljefelt som skal knyttes.
Reiserute med maksimal opplevelse. LOG530 Distribusjonsplanlegging 2 2 I følgende eksempel er det en turist som ønsker å velge kjøreruten med mest severdigheter,
LOG530 Distribusjonsplanlegging
P-MP modeller. LOG530 Distribusjonsplanlegging 2 2 Det skal opprettes p fasiliteter (lager) for å betjene en gitt mengde kunder. Kundenodene er også potensielle.
Lokalisering og minimum maxavstand. LOG530 Distribusjonsplanlegging 2 2 I mange situasjoner ønsker en å finne lokaliseringer som minimerer maksimalavstanden.
UFLP modeller. LOG530 Distribusjonsplanlegging 2 2 Det skal opprettes p fasiliteter (lager) for å betjene en gitt mengde kunder. Kundenodene er også potensielle.
The Postmans Problem. LOG530 Distribusjonsplanlegging 2 2 Mista har fått i oppdrag å vedlikeholde veiene i landsdelen. Dette er et eksempel på den klassiske.
P-CP modeller. LOG530 Distribusjonsplanlegging 2 2 Det skal opprettes p fasiliteter for å betjene en gitt mengde kunder. Kundenodene er også potensielle.
Øvingsforelesning 9 - Børge Rødsjø
Algoritmer og Datastrukturer
Kap 10 Graf.
INF 295 Algoritmer og datastrukturer Forelesning 21 Merge, Quick og Bøtte, Radix og ekstern sortering Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 7 ADT Lister, Stakker og Køer Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 1 - kapittel 1 Introduksjon Hans F. Nordhaug (Ola Bø) (Ketil Danielsen, 2007)
INF 295 forelesning 14 - kap 8 Disjunkt mengde ADT Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 9a Søketrær Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 8 Trær Hans Fr. Nordhaug (Ola Bø)
INF 295 forelesning 13 - kap 6 Prioritetskø (Heap) Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 11 Når RAM ikke strekker til - B-trær og Utvidbar hashing Hans Fr. Nordhaug (Ola Bø)
INF 295 Forelesning 17 - kap 9 Korteste vei i grafer Hans Fr. Nordhaug (Ola Bø)
INF 295 Forelesning 20 - Kapittel 7 Boble-, innstikk-, Shell-, Heap-, Quick-, Mergesortering Hans Fr. Nordhaug (Ola Bø)
Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 4 Algoritmeanalyse Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 2 - kapittel 1 Hans F. Nordhaug (Ola Bø)
INF 295 forelesning 13 - kap 6 Andre prioritetskøer Hans Fr. Nordhaug (Ola Bø)
INF 295 Forelesning 18 - kap 9 Aktivitetsgrafer
INF 295 Algoritmer og datastrukturer Forelesning 6 ADT Lister, Stakker og Køer Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 24 Repetisjon
INF 295 Algoritmer og datastrukturer Forelesning 9b Balanserte (binære) trær Hans Fr. Nordhaug.
INF 295 Forelesning 19 - Dynamisk programmering Korteste vei alle til alle (Floyd) Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 10 Invarianter og Hashing Hans Fr. Nordhaug (Ola Bø)
Hovedfagspresentasjon
Oppgave 1. Automaten aksepterer språket over alfabetet {a,b} bestående av strenger med et like antall forekomster av a og et like antall forekomster av.
INF 4130 Eksamen 2008 Gjennomgang.
Magnus Haug Algoritmer og Datastrukturer
Lokalisering og betjening av greiner. LOG530 Distribusjonsplanlegging 2 2 Mista har fått i oppdrag å vedlikeholde veiene i landsdelen. De må derfor opprette.
INF 295 forelesning 12 Repetisjon per 17. februar Hans F. Nordhaug (Ola Bø)
Alg. Dat Øvingsforelesning 11 Dynamisk programmering, grådighet
INF 295 Algoritmer og datastrukturer Forelesning 5 Algoritmeanalyse Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 22 Teknikker for algoritmeutvikling Hans Fr. Nordhaug/ Ola Bø.
Sorterings- Algoritmer Algoritmer og Datastrukturer.
Sterke og 2-sammenhengende komponeneter, DFS
Prioritetskøer Binære heaper Venstrevridde heaper (Leftist) Skeive heaper (Skew) Binomialheaper Fibonacciheaper Prioritetskøer er viktige i bla. operativsystemer.
Praktisk Midtveisevaluering av kurset («femminutterslapper») i pausen. Undervisningsfri neste uke (ingen forelesninger eller grupper). NM i programmering.
UFLP modeller. LOG530 Distribusjonsplanlegging 2 2 Det skal opprettes p fasiliteter (lager) for å betjene en gitt mengde kunder. Kundenodene er også potensielle.
Lokalisering og max minimumavstand. LOG530 Distribusjonsplanlegging 2 2 Anta at nettverket angir en region hvor McBurger skal opprettes 3 konkurrerende.
Korteste vei. LOG530 Distribusjonsplanlegging 2 2 Ofte står en overfor ønsket om å finne korteste kjørerute fra et gitt utgangspunkt til et ønsket bestemmelsessted.
INF 295 Algoritmer og datastrukturer Forelesning 23 Kompleksitet Hans Fr. Nordhaug/ Ola Bø.
1 Øvingsforelesning 4 Topologisk sortering Minimale spenntrær Håkon Jacobsen
Øvingsforelesning 10 Grådighet
Utskrift av presentasjonen:

INF 295 Forelesning 16 - kap 9 Minimalt spenntre og korteste vei i grafer Hans Fredrik Nordhaug (Ola Bø)

Minimale spenntrær Spenntre for en graf Et tre som inneholder de kantene som er nødvendig for å kople sammen alle nodene i grafen. Skal grafen ha et spenntre på den være connected (sammenknyttet) Det vil som oftest være flere mulige spenntrær Et minimalt spenntre er et spenntre med lavest mulig total kostnad Det kan være flere mulige minimale spenntrær

Minimale spenntrær Antall kanter |V|-1 Å legge til kant til spenntre gir sykel Sykelen kan fjernes ved å fjerne en annen kant Har den andre kanten høyere pris får vi et "billigere" spenntre Algoritmer som tar billigste brukbare kanter først gir et minimalt spenntre DVS grådige algoritmer fungerer for spenntrær

Prims algoritme For hvert trinn, velg den korteste kant som forbinder treet med en node som ikke er i treeet Merk noden som kjent Oppdater avstand til alle ukjente noder som kan nås fra den nytilknyttede noden Kjøretid O(|V| 2 ) uten heap - OK for tette grafer O(|E|log|V|) med heap - Bedre for glisne grafer

Tabell for Prims algoritme nodekjentavstandforgjenger

Kruskals algoritme Velg alltid korteste kant Godta kanten hvis den ikke lager sykel Kruskals bruker egentlig en samling av trær Starter med |V| en-nodes trær En akseptert kant kopler sammen to trær Vi er ferdig når alle noder er koplet sammen

Tabell for Kruskals algoritme KantKostnadResultat

Kruskals algoritme Avsluttes når nok kanter er akseptert Tre-medlemskap administreres ved hjelp av Disjunkte Mengder union(u,v) for å kople sammen to trær find(u) for å sjekke hvilken mengde noden er i Invariant: to noder er i samme mengde hvis de er koplet sammen (er i samme tre) hvis kantens endenoder er i samme tre, kan kanten ikke aksepteres fordi den danner en sykel Kjøretidsbetraktninger: Kanter i heap er effektivt Worst case: O(|E|log|E|) Mye raskere i praksis

Korteste vei algoritner Veid og uveid veilengde Korteste vei fra ett utgangspunkt-problemet Problemet med negative kostnader Negativ kost-syklus gir ubestemmelig korteste vei Mange anvendelser Algoritmer: Ingen eksisterende algoritmer som er raskere på en til en enn på en til alle Fire versjoner av problemet med korteste vei Uvektet graf O(|E|+|V|) Veid graf uten negative kanter O(|E|log|V|) Graf med negative kanter: enkelt, men O(|E|*|V|) Asyklisk graf: O(N)

Uveid korteste vei Spesialtilfelle av veid graf Algoritme 1. Starte med en node avstand 0 2. Deretter alle naboene avstand 1 3. Så ubesøkte naboer av dem igjen... Bredde først Trenger avstand, forgjenger, behandlet Veien finnes ved å gå tilbake fra enden

Algoritme 1

Algoritme 2

Veid graf uten negative kanter Dijkstras algoritme Samme ide som forrige algoritme Trenger Kjent Tentativ avstand d v : avstand bare via behandlede noder Forgjenger pv: siste node som endrer dv For hvert steg: velg noden v med lavest dv av de som ikke er kjent oppdater avstand hos alle naboer w av denne noden hvis det er kortere å gå via v Dijkstras er en greedy algoritme

Greedy algoritmer Greedy algoritmer løser problem trinnvis ved å gjøre det som synes best for hvert trinn Vekslingsalgoritme Kan svikte i noen situasjoner Vekslingsalgoritme

Kjøretid for dijkstra Scanne etter korteste dv: O(|E|+|V 2 |) OK for tette grafer der |E|=O(|V 2 |) Tynne (sparse) grafer trenger bedre løsninger priority queue: deleteMin og decreaseKey  O(|E|log|V|+|V|log|V|))=O(|E|log|V|) Eller sette inn i heapen på nytt ved oppdatering  Gir flere forekomster av samme node i heapen  Hoppe over kjente noder  Enkel og rask løsning, men plasskrevende