Dijkstras algoritme Spørsmål
|
|
|
- Hanna Aase Aamodt
- 9 år siden
- Visninger:
Transkript
1 :: Forside s algoritme Åsmund Eldhuset asmunde *at* stud.ntnu.no folk.ntnu.no/asmunde/algdat/dijkstra.pdf
2 :: Vi er ofte interessert i å finne korteste, raskeste eller billigste vei mellom to punkter Gods- og persontransport GPS-kartsystemer Ruting av internettrafikk Kart og nettverk kan modelleres som vektede grafer, der hver kant har en lengde, pris eller tid Gitt en vektet graf og en startnode, finn de korteste stiene fra startnoden til hver av de andre nodene
3 :: i uvektede grafer I uvektede grafer har alle kanter samme lengde I vil da noder komme inn i (og ut av) køen i stigende rekkefølge mhp. avstand Startnoden (avstand 0) vil legge til alle nodene med avstand Hver node med avstand vil legge til naboer som har avstand 2, osv. Derfor fungerer til å finne korteste vei fra ett punkt til alle andre, fordi ALLE noder med avstand d er funnet før fjernere noder
4 :: i vektede grafer Prøver vi på en vektet graf, får vi problemer På grunn av de ulike vektene vil nodene komme inn i køen i feil rekkefølge Når vi tar ut en node v og legger til naboene dens, kan det hende at det egentlig fantes en kortere vei til v
5 :: Forside i vektede grafer Kø: A (0), B (2), C (4) E 7 5 F B 2 C C ble lagt inn i køen med avstand 4, men B kan tilby en kortere vei Når vi behandler C vil D legges til før F, selv om F har den korteste veien A 4 D
6 :: av Problem nr. : Vi risikerer å behandle noder som vi ikke har funnet den korteste veien til Idé nr. : i stedet for å ta ut den første noden fra køen, hva med å ta ut den noden med kortest avstand?
7 :: av Problem nr. 2: underveis kan vi finne kortere veier til noen noder, men da er nodene allerede markert som besøkt Idé nr. 2: hva med å tillate at man finner bedre avstander underveis? Må ikke markere noder som besøkt før man tar dem ut av køen Avstandene vi finner underveis, er ikke endelige de er bare estimater helt frem til vi er sikre på at vi har den korteste stien Når kan vi være sikre på at vi har funnet den korteste stien?
8 :: s algoritme Hvis vi modifiserer slik, får vi s algoritme Vi bruker en prioritetskø slik at vi raskt kan finne den korteste ubesøkte noden (den med kortest estimat) En prioritetskø kan lages slik: Et array som man holder sortert når man setter noe inn (treigt å sette inn, raskt å hente ut) Et array som man søker gjennom hver gang man skal ta noe ut (raskt å sette inn, treigt å hente ut) En heap ( haug ) (begge deler går temmelig raskt)
9 :: Pseudokode S er en tom liste Q er en prioritetskø sett alle estimater til sett startnodens estimat til 0 legg alle noder inn i Q så lenge Q ikke er tom: sett u til den "korteste" noden i Q fjern u fra Q legg u til de kjente nodene for hver nabo v av u: hvis u kan tilby en kortere sti til v: oppdater v sitt estimat sett u som v sin forgjenger
10 :: Sammenl. med koden i boka sett alle estimater til sett startnodens estimat til 0 S er en tom liste Q er en prioritetskø legg alle noder inn i Q så lenge Q ikke er tom: sett u til den "korteste" noden i Q fjern u fra Q legg u til de kjente nodene for hver nabo v av u: hvis u kan tilby en kortere sti til v: oppdater v sitt estimat og forgjenger INITIALIZE-SINGLE-SOURCE(G, s) S Q V[G] while Q do u EXTRACT-MIN(Q) S S {u} for each vertex v Adj[u] do RELAX(u, v, w)
11 :: Sammenl. med koden i boka sett alle estimater til sett startnodens estimat til 0 S er en tom liste Q er en prioritetskø legg alle noder inn i Q så lenge Q ikke er tom: sett u til den "korteste" noden i Q fjern u fra Q legg u til de kjente nodene for hver nabo v av u: hvis u kan tilby en kortere sti til v: oppdater v sitt estimat og forgjenger INITIALIZE-SINGLE-SOURCE(G, s) S Q V[G] while Q do u EXTRACT-MIN(Q) S S {u} for each vertex v Adj[u] do RELAX(u, v, w)
12 :: Sammenl. med koden i boka sett alle estimater til sett startnodens estimat til 0 S er en tom liste Q er en prioritetskø legg alle noder inn i Q så lenge Q ikke er tom: sett u til den "korteste" noden i Q fjern u fra Q legg u til de kjente nodene for hver nabo v av u: hvis u kan tilby en kortere sti til v: oppdater v sitt estimat og forgjenger INITIALIZE-SINGLE-SOURCE(G, s) S Q V[G] while Q do u EXTRACT-MIN(Q) S S {u} for each vertex v Adj[u] do RELAX(u, v, w)
13 :: Sammenl. med koden i boka sett alle estimater til sett startnodens estimat til 0 S er en tom liste Q er en prioritetskø legg alle noder inn i Q så lenge Q ikke er tom: sett u til den "korteste" noden i Q fjern u fra Q legg u til de kjente nodene for hver nabo v av u: hvis u kan tilby en kortere sti til v: oppdater v sitt estimat og forgjenger INITIALIZE-SINGLE-SOURCE(G, s) S Q V[G] while Q do u EXTRACT-MIN(Q) S S {u} for each vertex v Adj[u] do RELAX(u, v, w)
14 :: Sammenl. med koden i boka sett alle estimater til sett startnodens estimat til 0 S er en tom liste Q er en prioritetskø legg alle noder inn i Q så lenge Q ikke er tom: sett u til den "korteste" noden i Q fjern u fra Q legg u til de kjente nodene for hver nabo v av u: hvis u kan tilby en kortere sti til v: oppdater v sitt estimat og forgjenger INITIALIZE-SINGLE-SOURCE(G, s) S Q V[G] while Q do u EXTRACT-MIN(Q) S S {u} for each vertex v Adj[u] do RELAX(u, v, w)
15 :: Sammenl. med koden i boka sett alle estimater til sett startnodens estimat til 0 S er en tom liste Q er en prioritetskø legg alle noder inn i Q så lenge Q ikke er tom: sett u til den "korteste" noden i Q fjern u fra Q legg u til de kjente nodene for hver nabo v av u: hvis u kan tilby en kortere sti til v: oppdater v sitt estimat og forgjenger INITIALIZE-SINGLE-SOURCE(G, s) S Q V[G] while Q do u EXTRACT-MIN(Q) S S {u} for each vertex v Adj[u] do RELAX(u, v, w)
16 :: Sammenl. med koden i boka sett alle estimater til sett startnodens estimat til 0 S er en tom liste Q er en prioritetskø legg alle noder inn i Q så lenge Q ikke er tom: sett u til den "korteste" noden i Q fjern u fra Q legg u til de kjente nodene for hver nabo v av u: hvis u kan tilby en kortere sti til v: oppdater v sitt estimat og forgjenger INITIALIZE-SINGLE-SOURCE(G, s) S Q V[G] while Q do u EXTRACT-MIN(Q) S S {u} for each vertex v Adj[u] do RELAX(u, v, w)
17 :: Sammenl. med koden i boka sett alle estimater til sett startnodens estimat til 0 S er en tom liste Q er en prioritetskø legg alle noder inn i Q så lenge Q ikke er tom: sett u til den "korteste" noden i Q fjern u fra Q legg u til de kjente nodene for hver nabo v av u: hvis u kan tilby en kortere sti til v: oppdater v sitt estimat og forgjenger INITIALIZE-SINGLE-SOURCE(G, s) S Q V[G] while Q do u EXTRACT-MIN(Q) S S {u} for each vertex v Adj[u] do RELAX(u, v, w)
18 :: Sammenl. med koden i boka sett alle estimater til sett startnodens estimat til 0 S er en tom liste Q er en prioritetskø legg alle noder inn i Q så lenge Q ikke er tom: sett u til den "korteste" noden i Q fjern u fra Q legg u til de kjente nodene for hver nabo v av u: hvis u kan tilby en kortere sti til v: oppdater v sitt estimat og forgjenger INITIALIZE-SINGLE-SOURCE(G, s) S Q V[G] while Q do u EXTRACT-MIN(Q) S S {u} for each vertex v Adj[u] do RELAX(u, v, w)
19 :: 7 E 5 B F 2 C A 4 D
20 :: B 7 E 5 F Nodeavstander <A: 0 (-)> B:? (-) C:? (-) D:? (-) E:? (-) F:? (-) 2 C A 4 D
21 :: B 7 E 5 F Nodeavstander <A: 0 (-)> B: 2 (A) C: 4 (A) D:? (-) E:? (-) F:? (-) 2 C A 4 D
22 :: B 7 E 5 F Nodeavstander A: 0 (-) <B: 2 (A)> C: 4 (A) D:? (-) E:? (-) F:? (-) 2 C A 4 D
23 :: B 7 E 5 F Nodeavstander A: 0 (-) <B: 2 (A)> C: (B) D:? (-) E: 9 (B) F:? (-) 2 C A 4 D
24 :: B 7 E 5 F Nodeavstander A: 0 (-) B: 2 (A) <C: (B)> D:? (-) E: 9 (B) F:? (-) 2 C A 4 D
25 :: B 7 E 5 F Nodeavstander A: 0 (-) B: 2 (A) <C: (B)> D: 6 (C) E: 9 (B) F: 4 (C) 2 C A 4 D
26 :: B 7 E 5 F Nodeavstander A: 0 (-) B: 2 (A) C: (B) D: 6 (C) E: 9 (B) <F: 4 (C)> 2 C A 4 D
27 :: B 7 E 5 F Nodeavstander A: 0 (-) B: 2 (A) C: (B) D: 5 (F) E: 9 (F) <F: 4 (C)> 2 C A 4 D
28 :: B 7 E 5 F Nodeavstander A: 0 (-) B: 2 (A) C: (B) <D: 5 (F)> E: 9 (F) F: 4 (C) 2 C A 4 D
29 :: B 7 E 5 F Nodeavstander A: 0 (-) B: 2 (A) C: (B) <D: 5 (F)> E: 8 (D) F: 4 (C) 2 C A 4 D
30 :: B 7 E 5 F Nodeavstander A: 0 (-) B: 2 (A) C: (B) D: 5 (F) <E: 8 (D)> F: 4 (C) 2 C A 4 D
31 :: B 7 E 5 F Nodeavstander A: 0 (-) B: 2 (A) C: (B) D: 5 (F) <E: 8 (D)> F: 4 (C) 2 C A 4 D
32 :: B 7 E 5 F Nodeavstander A: 0 (-) B: 2 (A) C: (B) D: 5 (F) E: 8 (D) F: 4 (C) 2 C A 4 D
33 :: B 7 E 5 F Nodeavstander A: 0 (-) B: 2 (A) C: (B) D: 5 (F) E: 8 (D) F: 4 (C) 2 C A 4 D
34 :: -tre B 2 A 2 4 E C D F I forrige eksempel lå alle nodene etter hverandre på den korteste stien Som regel vil man heller få et tre av korteste stier Et eksempel vises til høyre (grafen har andre vekter enn i sted) Merk at vi nå også har funnet korteste stier mellom alle noder i samme gren (B ~> E, B ~> F, E ~> F, B ~> C, B ~> D og C ~> D), men ikke mellom noder i forskjellige greiner (f.eks. E ~> C)
35 :: Vi må vise at når vi tar ut en node fra prioritetskøen, er estimatet til noden faktisk den korteste distansen Er det mulig å finne kortere veier? Når vi tar ut en node u fra prioritetskøen, vet vi at vi har undersøkt alle stier som har kortere lengde enn u sitt estimat Dersom det fantes kortere stier, måtte de ha begynt fra en node x med kortere distanse Men hvis x hadde kortere distanse enn u, ville x ha blitt tatt ut av prioritetskøen før u, og da ville den kortere veien ha blitt funnet
36 :: Illustrasjon av korrekthet u a s b x La oss tenke oss at gjør en tabbe på et tidspunkt, ved å legge en node u til de kjente nodene uten at estimatet til u faktisk er kortest. La oss se på situasjonen der vi tar ut u fra prioritetskøen og skal til å legge den til de kjente nodene. Vi vil bevise at det faktisk ikke er mulig at det finnes en annen vei som er kortere. - Dersom det finnes en kortere vei fra s til u, kan vi spore den veien til det punktet hvor den går fra en kjent node b til en ukjent node x - x ligger i prioritetskøen siden den er ukjent - b er en kjent node, med korrekt korteste avstand (siden u er den første noden der vi gjorde en tabbe) -Da b ble lagt til, oppdaterte vi estimatet til alle nabonodene, deriblant x. Dermed har x også riktig estimat, siden b -> x ligger på en korteste vei - Dersom alle kantvektene er positive, må x ha et estimat som er kortere enn u sitt - Men da skulle x ha blitt tatt ut fra prioritetskøen FØR u! - Vi har altså en selvmotsigelse, så det er ikke mulig at det finnes kortere stier når vi tar ut en node
37 Negative kantvekter :: Merk argumentet på forrige slide: "Dersom alle kantvektene er positive..." Essensen er at noder på den korteste veien til u må ha kortere estimat enn u Dersom det finnes negative kanter, gjelder ikke beviset lenger! Det blir da mulig å gå fra en node med estimat d, følge en negativ kant, og ende opp med en distanse som er mindre enn d Konklusjon: s algoritme fungerer ikke når grafen inneholder negative kanter!
38 :: INITIALIZE-SINGLE-SOURCE(G, s) 2 S Q V[G] 4 while Q 5 do u EXTRACT-MIN(Q) 6 S S {u} 7 for each vertex v Adj[u] 8 do RELAX(u, v, w) Konstruksjon av Q med V elementer () While-løkka kjøres V ganger Ett uttak fra Q hver gang (5) For-løkka kjøres totalt E ganger (7) I verste fall én oppdatering i Q hver gang (8)
39 Valg av prioritetskø-struktur :: Med n elementer i prioritetskøen har vi følgende kompleksiteter: Usortert array Konstruksjon: O(V) Uttak: O(n) Oppdatering: O() Heap Konstruksjon: O(V) Uttak: O(lg n) Oppdatering: O(lg n)
40 Valg av prioritetskø-struktur :: Vi hadde altså konstruksjon, V uttak og E oppdateringer Usortert array: totalt O(V + V 2 + E) = O(V 2 ) Konstruksjon: O(V) Uttak: O(V 2 ) Oppdatering: O(E) Heap: totalt O(V + V lg V + E lg V) = O(E lg V) Konstruksjon: O(V) Uttak: O(V lg V) Oppdatering: O(E lg V)
41 Valg av prioritetskø-struktur :: Dersom heap skal lønne seg, må E lg V = o(v 2 ) (altså E lg V < V 2 ) Generelt sett kan vi ikke si noe annet enn at E = O(V 2 ) (maksimalt én kant mellom hvert par av noder) Hvis vi vet hvor mange noder og kanter en bestemt graf har, kan vi finne tettheten (formelen fra øving 5): T = E / V 2 Dersom T < / lg V, lønner det seg åbruke heap
42 8: Mumien :: Her går det ut på å finne "mest sannsynlige vei" Hver node har en viss sannsynlighet Hint: Sannsynligheten til en kant er lik sannsynligheten til noden kanten går til Problem: Finne en vei der produktet av sannsynlighetene er størst mulig Klarer vi å transformere dette til et problem om å finne en vei der en sum skal være minst mulig?
43 ::?
Øvingsforelesning 7. Dijkstras algoritme. Foiler: Fredrik Ludvigsen Foreleser: Jon Marius Venstad 10/4/09 1
Øvingsforelesning 7 ijkstras algoritme oiler: redrik Ludvigsen oreleser: Jon Marius Venstad 0/4/09 Korteste sti - hvorfor? ksempel på bruk GPS-systemer ilde-krymping (som vist forrige mandag) Routing-protokoller
Dijkstras algoritme. Her finnes det også (minst) en riktig rekkefølge for Relax, men den må vi oppdage litt etter hvert.
Her finnes det også (minst) en riktig rekkefølge for Relax, men den må vi oppdage litt etter hvert. Tenk vann som sprer seg i rør: Vi behandler krysningspunktene i den rekkefølgen de fylles. Det må gi
Teoriøving 7 + litt om Ford-Fulkerson. Magnus Lie Hetland
Teoriøving 7 + litt om Ford-Fulkerson Magnus Lie Hetland Oppgave 1 a s 7 t 3 x 4 2 2 8 2 u 6 v 3 w Bruk DIJKSTRA eller BELLMAN-FORD og finn minste avstand fra s til de andre nodene. Svar/utregning (DIJKSTRA):
Eksamensoppgave i TDT4120 Algoritmer og datastrukturer
Eksamensoppgave i TDT4120 Algoritmer og datastrukturer Faglig kontakt under eksamen Magnus Lie Hetland Tlf. 91851949 Eksamensdato 7. desember 2013 Eksamenstid (fra til) 0900 1300 Hjelpemiddelkode Målform/språk
KORTESTE STI. Vektede Grafer. Korteste Sti. Dijkstra s Algoritme. Vektet Urettet Graf
Vektet Urettet Graf KORTESTE STI Finn: fra en Enkel Kilde til Alle Noder. (Engelsk: Single Source Shortest Path - SSSP) Vektede Grafer vekter på kanter representerer f.eks. avstand, kostnad, båndbredde...
Eksamensoppgave i TDT4120 Algoritmer og datastrukturer
Eksamensoppgave i TDT4120 Algoritmer og datastrukturer Faglig kontakt under eksamen Magnus Lie Hetland Tlf. 91851949 Eksamensdato 11. august 2014 Eksamenstid (fra til) 0900 1300 Hjelpemiddelkode D. Ingen
Øvingsforelesning Korteste vei: Alle til alle
Øvingsforelesning Korteste vei: Alle til alle TDT4120 Algoritmer og datastrukturer Ole Kristian Pedersen 02. november, 2018 IDI, NTNU Plan for dagen Løsninger teoriøving 10 Alle til alle med Dijkstra &
Dijkstras algoritme. Her finnes det også (minst) en riktig rekkefølge for Relax, men den må vi oppdage litt etter hvert.
Her finnes det også (minst) en riktig rekkefølge for Relax, men den må vi oppdage litt etter hvert. Tenk vann som sprer seg i rør: Vi behandler krysningspunktene i den rekkefølgen de fylles. Det må gi
Minimum Spenntrær - Kruskal & Prim
Minimum Spenntrær - Kruskal & Prim Lars Vidar Magnusson 4.4.2014 Kapittel 23 Kruskal algoritmen Prim algoritmen Kruskal Algoritmen Kruskal algoritmen kan beskrives med følgende punkter. Vi har en en sammenkoblet
Eksamensoppgave i TDT4120 Algoritmer og datastrukturer
Eksamensoppgave i TDT4120 Algoritmer og datastrukturer Faglig kontakt under eksamen Magnus Lie Hetland Tlf. 91851949 Eksamensdato 11. august 2014 Eksamenstid (fra til) 0900 1300 Hjelpemiddelkode D. Ingen
INF1020 Algoritmer og datastrukturer GRAFER
GRAFER Dagens plan: Definisjon av en graf (kapittel 9.1) Grafvarianter Intern representasjon av grafer (kapittel 9.1.1) Topologisk sortering (kapittel 9.2) Korteste vei, en-til-alle, for: uvektet graf
INF Algoritmer og datastrukturer
INF2220 - Algoritmer og datastrukturer HØSTEN 2016 Institutt for informatikk, Universitetet i Oslo Forelesning 6: Grafer II Ingrid Chieh Yu (Ifi, UiO) INF2220 28.09.2016 1 / 30 Dagens plan: Dijkstra fort.
Søk i tilstandsrom. Backtracking (Kap. 10) Branch-and-bound (Kap. 10) Iterativ fordypning. Dijkstras korteste sti-algoritme A*-søk (Kap.
Søk i tilstandsrom Backtracking (Kap. 10) DFS i tilstandsrommet. Trenger lite lagerplass. Branch-and-bound (Kap. 10) BFS Trenger mye plass: må lagre alle noder som er «sett» men ikke studert. Kan også
Grunnleggende Grafalgoritmer
Grunnleggende Grafalgoritmer Lars Vidar Magnusson 19.3.2014 Kapittel 22 Representere en graf Bredde-først søk Grafer i Informatikken Problem med grafer går ofte igjen i informatikkens verden, så det å
INF Algoritmer og datastrukturer
INF2220 - Algoritmer og datastrukturer HØSTEN 2015 Ingrid Chieh Yu Institutt for informatikk, Universitetet i Oslo Forelesning 5: Grafer I Ingrid Chieh Yu (Ifi, UiO) INF2220 H2015, forelesning 5 1 / 55
IN Algoritmer og datastrukturer
IN00 - Algoritmer og datastrukturer HØSTEN 08 Institutt for informatikk, Universitetet i Oslo Forelesning 5: Grafer II Ingrid Chieh Yu (Ifi, UiO) IN00 8.09.08 / Dagens plan: Korteste vei en-til-alle vektet
Algdat - Øvingsforelesning. Maks flyt
Algdat - Øvingsforelesning Maks flyt Dagens plan 1. LF teoriøving 7 2. Maks flyt 3. Ford-Fulkerson 4. Maksimal bipartitt matching 5. Presentasjon av øving 9 2 Øving 7 4b) I hvilken rekkefølge velges noder
GRAFER. Korteste vei i en vektet graf uten negative kanter. Korteste vei, en-til-alle, for: Minimale spenntrær
IN Algoritmer og datastrukturer GRAER IN Algoritmer og datastrukturer Dagens plan: orteste vei, en-til-alle, for: ektet rettet graf uten negative kanter (apittel 9..) (Dijkstras algoritme) ektet rettet
Eksamensoppgave i TDT4120 Algoritmer og datastrukturer
Eksamensoppgave i TDT4120 Algoritmer og datastrukturer Faglig kontakt under eksamen Magnus Lie Hetland Tlf. 91851949 Eksamensdato 7. desember 2013 Eksamenstid (fra til) 0900 1300 Hjelpemiddelkode Målform/språk
ALGORITMER OG DATASTRUKTURER
Stud. nr: Side 1 av 7 NTNU Norges teknisk-naturvitenskapelige universitet BOKMÅL Fakultet for informasjonsteknologi, matematikk og elektroteknikk Institutt for datateknikk og informasjonsvitenskap AVSLUTTENDE
Korteste Vei I. Lars Vidar Magnusson 9.4.2014. Kapittel 24 Hvordan finne korteste vei Egenskaper ved korteste vei
Korteste Vei I Lars Vidar Magnusson 9.4.2014 Kapittel 24 Hvordan finne korteste vei Egenskaper ved korteste vei Korteste Vei Problemet I denne forelesningen skal vi se på hvordan vi kan finne korteste
Korteste Vei II. Lars Vidar Magnusson 11.4.2014. Kapittel 24 Bellman-Ford algoritmen Dijkstra algoritmen
Korteste Vei II Lars Vidar Magnusson 11.4.2014 Kapittel 24 Bellman-Ford algoritmen Dijkstra algoritmen Bellman-Ford Algoritmen Bellman-Ford er en single-source korteste vei algoritme. Den tillater negative
Grunnleggende Grafteori
Grunnleggende Grafteori 2. September, 2019 Institutt for Informatikk 1 Dagens plan Terminologi og definisjoner Hvordan representere grafer i datamaskinen Traversering Dybde-først-søk Bredde-først-søk Topologisk
Vi skal se på grafalgoritmer for:
Grafalgoritmer Vi skal se på grafalgoritmer for: Traversering: Oppsøk alle nodene i grafen en og bare en gang, på en eller annen systematisk måte Nåbarhet: Finnes det en vei fra en node til en annen node?
Løsningsforslag - Korteste vei
Sist endret: 17.08.2010 Hovedside FAQ Beskjeder Timeplan Ukeplan Øvinger Gruppeøving Eksamensoppgaver Pensum Løsningsforslag - Korteste vei [Oppgave] [Levering] [Løsningsforslag] Innleveringsfrist: 21.10.2011
INF Algoritmer og datastrukturer
INF2220 - Algoritmer og datastrukturer HØSTEN 2016 Ingrid Chieh Yu Institutt for informatikk, Universitetet i Oslo Forelesning 5: Grafer I Ingrid Chieh Yu (Ifi, UiO) INF2220 H2016, forelesning 5 1 / 49
MAT1030 Forelesning 25
MAT1030 Forelesning 25 Trær Dag Normann - 27. april 2010 (Sist oppdatert: 2010-04-27 14:16) Forelesning 25 Litt repetisjon Vi har snakket om grafer og trær. Av begreper vi så på var følgende: Eulerstier
PG4200 Algoritmer og datastrukturer Forelesning 10
PG4200 Algoritmer og datastrukturer Forelesning 10 Lars Sydnes, NITH 9. april 2014 NOE Å STUSSE PÅ? Quadratic probing i Hash-tabell: ( ) 2 i + 1 p = p + ( 1) i+1 2 Underforstått forutsetning: Heltallsaritmetikk
Oppgave 1. Sekvenser (20%)
Det matematisk-naturvitenskapelige fakultet UNIVERSITETET I BERGEN Eksamen i emnet I 20 - Algoritmer, datastrukturer og programmering Mandag 2.Mai 200, kl. 09-5. Ingen hjelpemidler tillatt. Oppgavesettet
Forelesning 25. MAT1030 Diskret Matematikk. Litt repetisjon. Litt repetisjon. Forelesning 25: Trær. Dag Normann
MAT1030 Diskret Matematikk Forelesning 25: Trær Dag Normann Matematisk Institutt, Universitetet i Oslo Forelesning 25 27. april 2010 (Sist oppdatert: 2010-04-27 14:16) MAT1030 Diskret Matematikk 27. april
Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer
Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer Eksamensdato 14. desember 2011 Eksamenstid 1500 1900 Sensurdato 14. januar Språk/målform Bokmål Kontakt under eksamen Magnus Lie Hetland (tlf.
INF Algoritmer og datastrukturer
INF2220 - Algoritmer og datastrukturer HØSTEN 2009 Institutt for informatikk, Universitetet i Oslo INF2220, forelesning 6: Grafer Bjarne Holen (Ifi, UiO) INF2220 H2009, forelesning 6 1 / 31 Dagens plan:
MAT1030 Diskret Matematikk
MAT1030 Diskret Matematikk Forelesning 25: Trær Dag Normann Matematisk Institutt, Universitetet i Oslo 27. april 2010 (Sist oppdatert: 2010-04-27 14:15) Forelesning 25 MAT1030 Diskret Matematikk 27. april
Algdat Eksamensforelesning. Nils Barlaug
Algdat Eksamensforelesning Nils Barlaug Eksamen Pensum Eksamen Pensum Oppgaver du har gjort og ting du har lest Eksamen Pensum Oppgave på eksamen Oppgaver du har gjort og ting du har lest Eksamen Pensum
HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL
HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL Kandidatnr: Eksamensdato:. desember 00 Varighet: timer (9:00 1:00) Fagnummer: LO117D Fagnavn: Algoritmiske metoder Klasse(r): DA DB
Algdat Redux. Fjortende forelesning. Repetisjon av utvalgte emner.
Algdat Redux Fjortende forelesning Repetisjon av utvalgte emner. 1 Nå har vi en brukbar (om enn ikke helt intuitiv) definisjon av «alt» og nå ønsker vi å lage oss en liste med de problemene som er «verst
INF Algoritmer og datastrukturer
INF2220 - Algoritmer og datastrukturer HØSTEN 2017 Ingrid Chieh Yu Institutt for informatikk, Universitetet i Oslo Forelesning 5: Grafer I Ingrid Chieh Yu (Ifi, UiO) INF2220 H2017, forelesning 5 1 / 53
Prioritetskøer. Prioritetskøer. Binære heaper (vanligst) Prioritetskøer
Binære heaper (Leftist) Prioritetskøer Prioritetskøer er viktige i bla. operativsystemer (prosesstyring i multitaskingssystemer), og søkealgoritmer (A, A*, D*, etc.), og i simulering. Prioritetskøer Prioritetskøer
ALGORITMER OG DATASTRUKTURER
Stud. nr: Side 1 av 6 NTNU Norges teknisk-naturvitenskapelige universitet BOKMÅL Fakultet for informasjonsteknologi, matematikk og elektroteknikk Institutt for datateknikk og informasjonsvitenskap LØSNINGSFORSLAG,
Repetisjon og mer motivasjon. MAT1030 Diskret matematikk. Repetisjon og mer motivasjon
Repetisjon og mer motivasjon MAT030 Diskret matematikk Forelesning 22: Grafteori Roger Antonsen Matematisk Institutt, Universitetet i Oslo 4. april 2008 Først litt repetisjon En graf består av noder og
Høgskoleni østfold EKSAMEN. 4 dobbeltsidige ark med notater Lars Magnusson
Høgskoleni østfold EKSAMEN Emnekode: ITF 20006 Emne: Algoritmer og Datastrukturer Dato: 22.05.2015 Eksamenstid: kl 09.00 til kl 13.00 Hjelpemidler: Faglærer: 4 dobbeltsidige ark med notater Lars Magnusson
Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer
Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer Eksamensdato 14. desember 2011 Eksamenstid 1500 1900 Sensurdato 14. januar Språk/målform Bokmål Kontakt under eksamen Magnus Lie Hetland (tlf.
TMA4140 Diskret Matematikk Høst 2016
Norges teknisk naturvitenskapelige universitet Institutt for matematiske fag TMA4140 Diskret Matematikk Høst 2016 Seksjon 10.2 18 La G = (V,E) være en enkel graf med V 2. Ettersom G er enkel er de mulige
Grafteori. MAT1030 Diskret Matematikk. Repetisjon og mer motivasjon. Repetisjon og mer motivasjon. Forelesning 23: Grafteori.
MAT030 Diskret Matematikk Forelesning 23: Grafteori Dag Normann Matematisk Institutt, Universitetet i Oslo Grafteori 20. april 200 (Sist oppdatert: 200-04-20 4:8) MAT030 Diskret Matematikk 20. april 200
MAT1030 Diskret Matematikk
MAT1030 Diskret Matematikk Forelesning 23: Grafteori Dag Normann Matematisk Institutt, Universitetet i Oslo 20. april 2010 (Sist oppdatert: 2010-04-20 14:17) Grafteori MAT1030 Diskret Matematikk 20. april
MAT1030 Forelesning 23
MAT030 Forelesning 23 Grafteori Roger Antonsen - 22. april 2009 (Sist oppdatert: 2009-04-22 2:36) Forelesning 23 Repetisjon og mer motivasjon Først litt repetisjon En graf består av noder og kanter Kanter
Forelesning 23. MAT1030 Diskret Matematikk. Repetisjon og mer motivasjon. Repetisjon og mer motivasjon. Forelesning 23: Grafteori.
MAT030 Diskret Matematikk Forelesning 23: Grafteori Roger Antonsen Institutt for informatikk, Universitetet i Oslo Forelesning 23 22. april 2009 (Sist oppdatert: 2009-04-22 2:37) MAT030 Diskret Matematikk
Grunnleggende Grafalgoritmer II
Grunnleggende Grafalgoritmer II Lars Vidar Magnusson March 17, 2015 Kapittel 22 Dybde-først søk Topologisk sortering Relasjonen til backtracking Dybde-Først Søk Dybde-først søk i motsetning til et bredde-først
Prioritetskøer. Binære heaper Venstrevridde heaper (Leftist) Binomialheaper Fibonacciheaper
Prioritetskøer Binære heaper Venstrevridde heaper (Leftist) Binomialheaper Fibonacciheaper Prioritetskøer er viktige i bla. operativsystemer (prosesstyring i multitaskingssystemer), og søkealgoritmer (A,
Dagens plan: INF Algoritmer og datastrukturer. Grafer vi har sett allerede. Det første grafteoretiske problem: Broene i Königsberg
Dagens plan: INF2220 - Algoritmer og datastrukturer HØSTEN 2009 Institutt for informatikk, Universitetet i Oslo INF2220, forelesning 6: Grafer Definisjon av en graf Grafvarianter Intern representasjon
O, what a tangled. Fjerde forelesning. Robot-eksemplet som ikke ble gjennomgått sist blir frivillig selvstudium (ut fra foilene :-)
Dagens oppvarming 1 O, what a tangled Fjerde forelesning Robot-eksemplet som ikke ble gjennomgått sist blir frivillig selvstudium (ut fra foilene :-) O, what a tangled web we weave / When first we practice
Alle mot alle. Åttende forelesning. (eller eller Bellman-Ford, eller BFS, alt ettersom) fra alle noder.
Enkel alle-til-allealgoritme: Kjør Dijkstra (eller eller Bellman-Ford, eller BFS, alt ettersom) fra alle noder. Kan fungere for spinkle grafer blir dyrt ellers. Alle mot alle Åttende forelesning 1 Dijkstra
Forelesning 30: Kompleksitetsteori
MAT1030 Diskret Matematikk Forelesning 30: Kompleksitetsteori Roger Antonsen Institutt for informatikk, Universitetet i Oslo Forelesning 30: Kompleksitetsteori 19. mai 2009 (Sist oppdatert: 2009-05-19
Løsningsforslag for utvalgte oppgaver fra kapittel 9
Løsningsforslag for utvalgte oppgaver fra kapittel 9 9.2 1 Grafer og minne.......................... 1 9.2 4 Omvendt graf, G T......................... 2 9.2 5 Kompleksitet............................
INF2220: Time 4 - Heap, Huffmann
INF0: Time 4 - Heap, Huffmann Mathias Lohne mathialo Heap (prioritetskø) En heap (også kalt prioritetskø) er en type binært tre med noen spesielle struktur- og ordningskrav. Vi har to typer heap: min-
EKSAMEN med løsningsforslag
EKSAMEN med løsningsforslag Emnekode: ITF20006 Emne: Algoritmer og datastrukturer Dato: Eksamenstid: 20. mai 2009 kl 09.00 til kl 13.00 Hjelpemidler: 8 A4-sider (4 ark) med egne notater Kalkulator Faglærer:
Øvingsforelesning 4. Topologisk sortering, Strongly Connected Components og Minimale spenntrær. Magnus Botnan
Øvingsforelesning 4 Topologisk sortering, Strongly Connected Components og Minimale spenntrær Magnus Botnan [email protected] 09/10/09 1 I dag Topologisk Sortering Sterke Komponenter Minimale Spenntrær
Eksamensoppgave i TDT4120 Algoritmer og datastrukturer
Institutt for datateknikk og informasjonsvitenskap Eksamensoppgave i TDT0 Algoritmer og datastrukturer Faglig kontakt under eksamen Magnus Lie Hetland Telefon 98 5 99 Eksamensdato 0. desember, 08 Eksamenstid
Forelesning 24. Grafer og trær. Dag Normann april Vektede grafer. En kommunegraf
Forelesning 24 Grafer og trær Dag Normann - 21. april 2008 Vi har snakket om grafer og trær. Av begreper vi så på var Eulerkretser og Eulerstier Hamiltonkretser Minimale utspennende trær. Vi skal nå se
Løsnings forslag i java In115, Våren 1996
Løsnings forslag i java In115, Våren 1996 Oppgave 1a For å kunne kjøre Warshall-algoritmen, må man ha grafen på nabomatriseform, altså en boolsk matrise B, slik at B[i][j]=true hvis det går en kant fra
Vektede grafer. MAT1030 Diskret matematikk. En kommunegraf. En kommunegraf. Oppgave
MAT1030 Diskret matematikk Forelesning 24: Grafer og trær Dag Normann Matematisk Institutt, Universitetet i Oslo 21. april 2008 Vi har snakket om grafer og trær. Av begreper vi så på var Eulerkretser og
INF Algoritmer og datastrukturer
INF0 - Algoritmer og datastrukturer HØSTEN 05 Institutt for informatikk, Universitetet i Oslo Forelesning 6: Grafer II Ingrid Chieh Yu (Ifi, UiO) INF0.09.05 / 8 Dagens plan: Minimale spenntrær Prim Kruskal
Eksamensoppgave i TDT4120 Algoritmer og datastrukturer
Institutt for datateknikk og informasjonsvitenskap Eksamensoppgave i TDT4120 Algoritmer og datastrukturer Faglig kontakt under eksamen Magnus Lie Hetland Telefon 918 51 949 Eksamensdato 4. desember, 2017
IN Algoritmer og datastrukturer
IN010 - Algoritmer og datastrukturer HØSTEN 018 Institutt for informatikk, Universitetet i Oslo Forelesning 6: Grafer III Ingrid Chieh Yu (Ifi, UiO) IN010 0.10.018 1 / 0 Dagens plan: Dybde-først søk Biconnectivity
Korteste vei i en vektet graf uten negative kanter
Dagens plan: IN - Algoritmer og datastrukturer HØSTEN 7 Institutt for informatikk, Universitetet i Oslo IN, forelesning 7: Grafer II Korteste vei, en-til-alle, for: Vektet rettet graf uten negative kanter
Heap og prioritetskø. Marjory the Trash Heap fra Fraggle Rock
Heap og prioritetskø Marjory the Trash Heap fra Fraggle Rock Binær heap En heap er et komplett binært tre: Alle nivåene i treet, unntatt (muligens) det nederste, er alltid helt fylt opp med noder Alle
Eksamensoppgave i TDT4120 Algoritmer og datastrukturer
Institutt for datateknikk og informasjonsvitenskap Eksamensoppgave i TDT0 Algoritmer og datastrukturer Faglig kontakt under eksamen Magnus Lie Hetland Telefon 98 5 99 Eksamensdato 9. august, 07 Eksamenstid
Øvingsforelesning 6. Sorteringsalgoritmer. Kristian Veøy
Øvingsforelesning 6 Sorteringsalgoritmer Kristian Veøy [email protected] 26.09.08 1 Spørsmål fra øvingsgruppene Må jeg kunne python på eksamen? (Nei) Er det lurt å gjøre alle programmeringsøvingene? (Ikke
SIF8010 ALGORITMER OG DATASTRUKTURER
SIF8010 ALGORITMER OG DATASTRUKTURER KONTINUASJONSEKSAMEN, 1999; LØSNINGSFORSLAG Oppgave 1 (12%) Anta at du skal lage et støtteprogram som umiddelbart skal varsle om at et ord blir skrevet feil under inntasting
Løsningsforslag for eksamen i fag TDT4120 Algoritmer og datastrukturer Tirsdag 9. desember 2003, kl
TDT4120 2003-12-09 Stud.-nr: Antall sider: 1/7 Løsningsforslag for eksamen i fag TDT4120 Algoritmer og datastrukturer Tirsdag 9. desember 2003, kl. 0900 1500 Faglig kontakt under eksamen: Arne Halaas,
MAT1030 Forelesning 22
MAT1030 Forelesning 22 Grafteori Roger Antonsen - 21. april 2009 (Sist oppdatert: 2009-04-21 15:13) Introduksjon Introduksjon Vi skal nå over til kapittel 10 & grafteori. Grafer fins overalt rundt oss!
MAT1030 Forelesning 25
MAT1030 Forelesning 25 Trær Roger Antonsen - 29. april 2009 (Sist oppdatert: 2009-04-29 00:28) Forelesning 25 Litt repetisjon Vi har snakket om grafer og trær. Av begreper vi så på var følgende. Eulerstier
Introduksjon. MAT1030 Diskret matematikk. Søkealgoritmer for grafer. En graf
Introduksjon MAT13 Diskret matematikk Forelesning 21: Grafteori Roger Antonsen Matematisk Institutt, Universitetet i Oslo 9. april 28 Vi skal nå over til kapittel 1 & grafteori. Grafer fins overalt rundt
MAT1030 Diskret matematikk
MAT1030 Diskret matematikk Forelesning 21: Grafteori Roger Antonsen Matematisk Institutt, Universitetet i Oslo 9. april 2008 Introduksjon Vi skal nå over til kapittel 10 & grafteori. Grafer fins overalt
Eksamensoppgave i TDT4120 Algoritmer og datastrukturer
Eksamensoppgave i TDT4120 Algoritmer og datastrukturer Faglig kontakt under eksamen Magnus Lie Hetland Tlf. 918 51 949 Eksamensdato 12. august, 2014 Eksamenstid (fra til) 0900 1300 Hjelpemiddelkode D.
Introduksjon. MAT1030 Diskret Matematikk. Introduksjon. En graf. Forelesning 22: Grafteori. Roger Antonsen
MAT1030 Diskret Matematikk Forelesning 22: Grafteori Roger Antonsen Institutt for informatikk, Universitetet i Oslo Introduksjon 21. april 2009 (Sist oppdatert: 2009-04-21 15:13) MAT1030 Diskret Matematikk
MAT1030 Forelesning 22
MAT1030 Forelesning 22 Grafteori Dag Normann - 14. april 2010 (Sist oppdatert: 2010-04-14 12:45) Kombinatorikk Oppsummering av regneprinsipper Ordnet utvalg med repetisjon: n r Ordnet utvalg uten repetisjon:
Kombinatorikk. MAT1030 Diskret Matematikk. Oppsummering av regneprinsipper
MAT1030 Diskret Matematikk Forelesning 22: Grafteori Dag Normann Matematisk Institutt, Universitetet i Oslo Kombinatorikk 14. april 2010 (Sist oppdatert: 2010-04-14 12:43) MAT1030 Diskret Matematikk 14.
MAT1030 Diskret Matematikk
MAT1030 Diskret Matematikk Forelesning 22: Grafteori Dag Normann Matematisk Institutt, Universitetet i Oslo 14. april 2010 (Sist oppdatert: 2010-04-14 12:42) Kombinatorikk MAT1030 Diskret Matematikk 14.
Først litt praktisk info. Sorteringsmetoder. Nordisk mesterskap i programmering (NCPC) Agenda
Først litt praktisk info Sorteringsmetoder Gruppeøvinger har startet http://selje.idi.ntnu.no:1234/tdt4120/gru ppeoving.php De som ikke har fått gruppe må velge en av de 4 gruppende og sende mail til [email protected]
Algdat - øvingsforelesning
Algdat - øvingsforelesning Topologisk sortering og minimale spenntrær Nils Barlaug Dagens plan 1. 2. 3. 4. 5. Praktisk og dagens plan Topologisk sortering Minimale spenntrær a. Kruskal b. Prim Tips til
Det første grafteoretiske problem: Broene i Königsberg
Dagens plan: INF0 - Algoritmer og datastrukturer HØSTEN 007 Institutt for informatikk, Universitetet i Oslo INF0, forelesning 6: Grafer Denisjon av en graf (kap. 9.1) Grafvarianter Intern representasjon
Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer
Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer Eksamensdato 3. desember 2012 Eksamenstid 0900 1300 Sensurdato 3. januar 2013 Språk/målform Bokmål Kontakt under eksamen Magnus Lie Hetland (tlf.
Forelesning 25. MAT1030 Diskret Matematikk. Litt repetisjon. Litt repetisjon. Forelesning 25: Trær. Roger Antonsen
MAT1030 Diskret Matematikk Forelesning 25: Trær Roger Antonsen Institutt for informatikk, Universitetet i Oslo Forelesning 25 29. april 2009 (Sist oppdatert: 2009-04-29 00:28) MAT1030 Diskret Matematikk
Forelesning 23. Grafteori. Dag Normann april Oppsummering. Oppsummering. Oppsummering. Digresjon: Firefarveproblemet
Forelesning 23 Grafteori Dag Normann - 16. april 2008 Oppsummering En graf består av noder og kanter Kanter ligger inntil noder, og noder kan være naboer. Vi bør kjenne til begrepene om sammenhengende
INF1020 Algoritmer og datastrukturer GRAFER
GRAFER Dagens plan: Avsluttende om grådige algoritmer Huffman-koding (Kapittel 10.1.2) Dynamisk programmering Floyds algoritme for korteste vei alle-til-alle (Kapittel 10.3.4) Ark 1 av 16 Forelesning 22.11.2004
Korteste vei problemet (seksjon 15.3)
Korteste vei problemet (seksjon 15.3) Skal studere et grunnleggende kombinatorisk problem, men først: En (rettet) vandring i en rettet graf D = (V, E) er en følge P = (v 0, e 1, v 1, e 2,..., e k, v k
Uretta grafar (1) Mengde nodar Mengde kantar som er eit uordna par av nodar
Kapittel 13, Grafar Uretta grafar (1) Ein uretta graf Mengde nodar Mengde kantar som er eit uordna par av nodar To nodar er naboar dersom dei er knytta saman med einkant Ein node kan ha kant til seg sjølv.
MAT1030 Diskret matematikk
MAT1030 Diskret matematikk Forelesning 23: Grafteori Dag Normann Matematisk Institutt, Universitetet i Oslo 16. april 2008 Oppsummering En graf består av noder og kanter Kanter ligger inntil noder, og
Oppsummering. MAT1030 Diskret matematikk. Oppsummering. Oppsummering. Forelesning 23: Grafteori
Oppsummering MAT1030 Diskret matematikk Forelesning 23: Grafteori Dag Normann Matematisk Institutt, Universitetet i Oslo 16. april 2008 En graf består av noder og kanter Kanter ligger inntil noder, og
Algoritmer og datastrukturer Kapittel 11 Delkapittel 11.2
Delkapittel 11.2 Korteste vei i en graf Side 1 av 17 Algoritmer og datastrukturer Kapittel 11 Delkapittel 11.2 11.2 Vektede grafer 11.2.1 Datastruktur for vektede grafer En graf representeres normalt ved
