Vi skal se på grafalgoritmer for:
|
|
- Oddvin Ødegaard
- 7 år siden
- Visninger:
Transkript
1 Grafalgoritmer
2 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? Korteste vei: Hvor lang er den korteste veien mellom par av noder i en vektet graf?
3 Traversering av grafer Traversering (kalles også søking i grafen ): Gå innom/søke opp alle noder i grafen en og bare en gang Problemer ved graftraversering: Det er ofte ingen rot eller naturlig startpunkt i en graf Grafen kan være cyklisk slik at en node oppsøkes flere ganger Grafen kan være usammenhengende eller svakt sammenhengede, slik at ikke alle noder kan nås fra en gitt node
4 DFS og BFS To standard rekkefølger for traversering av grafer: DFS: Dybde-først søk (Depth-First Search) BFS: Bredde-først søk (Breadth-First Search) Felles for begge traverseringsmetoder: Starter med en første node som markeres oppsøkt Går deretter videre til sist oppsøkte nodes uoppsøkte naboer, på en eller annen systematisk måte Traversering med nabomatrise er alltid O(n²)
5 Forskjellen på DFS og BFS Dybde-først: Går rekursivt direkte videre til første uoppsøkte node Vil gå i dybden langs veier med uoppsøkte noder Bredde-først: Lagrer uoppsøkte noder i en (FIFO) kø De uoppsøkte nodene nærmest startnoden oppsøkes først Søkingen brer seg i ringer fra utgangspunktet
6 Traversering: Eksempel Urettet graf, starter i node 2 Uoppsøkte naboer oppsøkes i stigende rekkefølge DFS: BFS:
7 Traversering: Eksempel Rettet graf, starter i node 2 Uoppsøkte naboer oppsøkes i stigende rekkefølge DFS: BFS:
8 Urettet graf, starter i node A Traversering: Eksempel Uoppsøkte naboer oppsøkes i alfabetisk rekkefølge DFS: A D M E B C F I G K J P O Q L H N BFS: A D F M B C E H Q I J L N G K P O
9 Animasjon av DFS og BFS
10 Traversering og spenn-trær * Spenn-tre: Et tre som består av alle nodene i en graf og et utvalg av kantene, slik at alle nodene er forbundet I læreboka: Algoritme for å finne spenn-treet med minst total veilengde (minimum spanning tree) i en vektet graf Kantene som følges i en traversering, vil alltid utgjøre et spenn-tre: Dybde-først: Spenn-treet blir høyt og ubalansert Bredde-først: Lavere, mer balansert spenn-tre * Engelsk: spanning tree
11 Spenntrær for DFS og BFS
12 Dybde-først søk: Algoritme DFS implementeres naturlig rekursivt: DFS(node x) { oppsøk(x) for hver node y som er nabo med x hvis y ikke er oppsøkt DFS(y) } Læreboka implementerer grafer som en generisk ADT med en ikke-rekursiv DFS-iterator som bruker en stack
13 Bredde-først søk: Algoritme BFS implementeres iterativt med bruk av en kø: BFS(node start) { enqueue(start) så lenge kø ikke tom { x = dequeue() oppsøk(x) for hver node y som er nabo med x hvis y ikke er oppsøkt eller ligger i kø enqueue(y) } } Læreboka implementerer en generisk BFS-iterator
14 Enkel implementasjon av DFS og BFS Utvider klassen enkelgraf.java med metoder for dybde-først og bredde-først traversering DFS: Rekursiv Bruker boolsk array til å merke noder som er oppsøkt BFS: Bruker lærebokas kømodul Boolsk array merker noder som er oppsøkt eller i kø Java-kode: traversergraf.java
15 Nåbarhet * En node er nåbar fra en annen node hvis det finnes en vei i grafen mellom de to nodene En vanlig problemstilling for grafer er å finne ut hvilke noder som er innbyrdes nåbare kan vi reise fra A til B? Bestemmelse av nåbarhet kan også brukes til å avgjøre om en graf er (sterkt eller svakt) sammenhengende *: Engelsk: Reachability
16 To standardproblemer for nåbarhet i grafer SSRP Single Source Reachability Problem : Finn alle noder som er nåbare fra en bestemt node APRP All-Pairs Reachability Problem Finn alle noder som kan nås fra enhver node i grafen
17 Single Source Reachability Problem Alle noder nåbare fra 1: 4, 5, 6 Enkel O(n²) løsning på SSRP: Gjør en dybde-først eller bredde-først traversering fra startnoden Alle noder som oppsøkes i traverseringen er nåbare
18 All-Pairs Reachability Problem Alle noder nåbare fra: 1: 4, 5, 6 2: 1, 3, 4, 5, 6 3: 1, 2, 4, 5, 6 4: 1, 5, 6 5: 1, 4, 6 6: 1, 4, 5
19 Enkel løsning av APRP Traversér grafen n ganger (med DFS eller BFS), én gang med start i hver node i grafen Denne løsningsmetoden er alltid O(n³) hvis grafen er lagret med nabomatrise Kan også brukes for å teste konnektivitet: Hvis alle traverseringene er innom alle n noder, er grafen (sterkt) sammenhengende Implementasjon: traversergraf.java
20 Løsningsmatrise for APRP Løsningen på APRP kan representeres som en boolsk matrise/2-d tabell A, der A[ i ] [ j ] er true hvis og bare hvis det går en vei fra node i til node j T F F T T T 2 T T T T T T 3 T T T T T T 4 T F F T T T 5 T F F T T T 6 T F F T T T
21 Løsningsmatrise og nabomatrise Løsningsmatrisen for APRP kan betraktes som en utbygging av nabomatrisen for grafen T F F F F T 2 F T T F F T 3 F T T T F T 4 T F F T T F 5 F F F T T T 6 T F F T F T Nabomatrise T F F T T T 2 T T T T T T 3 T T T T T T 4 T F F T T T 5 T F F T T T 6 T F F T T T Løsningsmatrise
22 Warshall-algoritmen* Løser APRP ved å transformere nabomatrisen til løsningsmatrisen Bruker følgende prinsipp: Det finnes en vei fra node i til node j, hvis det finnes en vei fra node i til node k, og fra node k til node j Algoritmen bygger stegvis ut nabomatrisen med alle mulige veier mellom alle par av noder Etter n steg vil garantert alle veier i hele grafen ligge lagret i løsningsmatrisen *: Warshall, Stephen: "A theorem on Boolean matrices", Journal of the ACM, 1962
23 Warshall: Stegvis løsning Steg 1: Finn alle veier av lengde 2 Steg 2: Finn alle veier av lengde 3... Steg n: Alle veier funnet T F F F F T 2 F T T F F T 3 F T T T F T 4 T F F T T F 5 F F F T T T 6 T F F T F T Nabomatrise T F F T T T 2 T T T T T T 3 T T T T T T 4 T F F T T T 5 T F F T T T 6 T F F T T T Løsningsmatrise etter to steg
24 Warshall-algoritmen: Effektivitet og implementasjon Programmeres enkelt med tre løkker: Ytre løkke går n ganger, i hvert steg finnes alle veier av lengde 1, 2, 3,... To indre løkker som går gjennom hele nabomatrisen og kobler node i og j hvis begge har en vei til node k Warshall er alltid O(n³) for graf lagret i nabomatrise Enkel implementasjon: warshall.java
25 Uvektet, rettet graf for testing av APRP-metoder Fil: graf_13.txt
26 Korteste-vei problemer for vektede grafer * Single Source Shortest Path Problem Finn lengden av korteste vei fra én bestemt node til alle andre noder i grafen All-Pairs Shortest Path Problem Finn lengden av korteste vei fra alle noder til alle andre noder i grafen *: For uvektede grafer finnes korteste veier enkelt med bredde-først søk
27 Anvendelser av korteste-vei algoritmer Ruteplanlegging GPS Google Maps Travelling Salesman's Problem Flåtestyring Ulike typer optimaliseringer Og veldig mye mer...
28 Vektede grafer for korteste-vei problemer Representerer grafen som en nabomatrise med kantlengder Hvis det ikke går en kant mellom to noder, legger vi inn en uendelig stor kantlengde
29 All-Pairs Shortest Path Finn lengden av korteste vei mellom alle par av noder Kan løses ved å transformere nabomatrisen til en løsningsmatrise med korteste veilengder
30 Floyds algoritme * Starter med nabomatrisen, bygger opp løsningsmatrisen steg for steg Samme prinsipp som i Warshall-algoritmen: Det finnes en vei fra node i til node j, hvis det finnes en vei fra node i til node k, og fra node k til node j Sjekker alle mulige veier, tar hele tiden vare på den korteste veien som til nå er funnet mellom to noder I hvert steg øker antall noder langs veiene med 1 Etter n steg vil garantert lengden til alle de korteste veiene i hele grafen ligge lagret i løsningsmatrisen *: Floyd, Robert W.: "Algorithm 97: Shortest Path", Communications of the ACM, 1962
31 Floyd: Stegvis løsning Steg 1: Finn alle korteste veier med maks. 3 noder Steg 2: Finn alle korteste veier med maks 4 noder Steg n 2: Alle korteste veier funnet
32 Floyds algoritme: Effektivitet og implementasjon Programmeres enkelt med tre løkker, på samme måte som Warshall-algoritmen: Ytre løkke går n 2 ganger, i hvert steg finnes alle de korteste veiene med 3, 4, 5, noder To indre løkker som går gjennom hele nabomatrisen og kobler node i og j hvis begge har en vei til node k Floyd er alltid O(n³) for graf lagret i nabomatrise Enkel implementasjon: floyd.java
33 Single Source Shortest Path Finn lengden av korteste vei fra én bestemt node til alle andre noder i grafen Kan løses med Dijkstras algoritme * Standard algoritme i mange systemer, f.eks. GPS-enheter, Google Maps, flybillettbestilling, ruting av av data på internett... *: Dijkstra, Edsger. W.: "A note on two problems in connexion with graphs", Numerische Mathematik 1, 1959
34 Dijkstras algoritme Anvendes på en vektet graf med n noder Starter i en node S, finner korteste avstand fra S til alle andre noder Bruker maksimalt n 1 steg, i hvert steg finner vi den korteste avstanden fra S til én ny node i grafen Ligner mye på et bredde-først søk Basert på følgende prinsipp: Den korteste veien fra S til en ny node må gå langs en av de korteste veiene til en av den nye nodens naboer
35 Dijkstra: Ekstra datastruktur En boolsk array funnet av lengde n: Alle elementer er intitielt lik false Brukes til å merke nodene som vi allerede har funnet korteste vei til En array avstand med n veilengder: Lagrer den hittil korteste veien som vi til nå har sett fra startnoden S til alle andre noder i grafen Alle elementer er lik uendelig til å begynne med, unntatt for startnoden der korteste vei settes lik 0 Løsningen ligger i arrayen avstand når algoritmen er ferdig
36 s=0 y=1 t=2 x=3 z=4 funnet = { true, true, false, false, false } avstand = { 0, 5, 10,, }
37 Dijkstras algoritme: Animasjon (finner korteste vei fra a til b)
38 Dijkstras algoritme: Eksempel
39 Dijkstra: Algoritme funnet[i] = false, i = 0, 1, 2,..., n 1 avstand[i] =, i = 0, 1, 2,..., n 1 avstand[s] = 0 denne = S antall = 0 For (alle naboer i til denne, der funnet[i] == false) { l = avstand[denne] + kantlengde[denne][i] Hvis (l < avstand[i]) avstand[i] = l funnet[denne] = true antall++ Hvis antall == n: Avslutt denne = (noden som har minst verdi av avstand og der funnet[denne] == false) }
40 Dijkstras algoritme: Animasjon Kantene i figuren er tegnet like lange som vekten/kantlengden
41 Dijkstra: Effektivitet og implementasjon Er O(n2 ) i originalutgaven, for en graf med n noder Blir O(n log n) med smartere koding (øvingsoppgave): Bruk en min-heap for å lagre avstandene Søking etter noden med minst avstand blir da O(log n) Er litt fiklete fordi vi må justere heapen hver gang avstander oppdateres i grafen Dijkstra kan også løse all-pairs shortest path: Start algoritmen én gang fra hver node i grafen Enkel O(n 2 ) implementasjon: dijkstra.java
42 Dijkstra: Lagring av korteste veier Et problem med denne versjonen av Dijkstra er at det bare er lengden på de korteste veiene til hver node som tas vare på Ofte vil vi også ha behov for å vite hvilke noder den korteste veien går innom (se eksempel neste side) Øvingsoppgave: Programmering av en versjon av Dijkstra som både lagrer de korteste avstandene og veiene
43
44 Vektet, rettet graf for testing Fil: vgraf_13.txt
Vi skal se på grafalgoritmer for:
Grafalgoritmer Vi skal se på grafalgoritmer for: raversering: Nåbarhet: Oppsøk alle nodene i grafen en og bare en gang, på en eller annen systematisk måte innes det en vei fra en node til en annen node?
DetaljerGrafalgoritmer: Korteste vei
Grafalgoritmer: Korteste vei Korteste-vei problemer for vektede grafer * Single Source Shortest Path Problem Finn lengden av korteste vei fra én bestemt node til alle andre noder i grafen All-Pairs Shortest
DetaljerAnvendelser av grafer
Grafer Anvendelser av grafer Passer for modeller/datastrukturer med usystematiske forbindelser Ikke-lineære og ikke-hierarkiske koblinger mellom dataobjektene Modellering av nettverk: Veisystemer/rutekart
DetaljerAnvendelser av grafer
Grafer Anvendelser av grafer Brukes for datasett med ikke-lineære og ikkehierarkiske forbindelser mellom dataobjektene Forbindelsene i en graf er ofte usystematiske Typisk anvendelser er modellering av
DetaljerDefinisjon av binært søketre
Binære søketrær Definisjon av binært søketre For alle nodene i et binært søketre gjelder: Alle verdiene i nodens venstre subtre er mindre enn verdien i noden Alle verdiene i nodens høyre subtre er større
DetaljerIN 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
DetaljerDefinisjon: Et sortert tre
Binære søketrær Definisjon: Et sortert tre For alle nodene i et binært søketre gjelder: Alle verdiene i nodens venstre subtre er mindre enn verdien i noden Alle verdiene i nodens høyre subtre er større
DetaljerBinære trær: Noen algoritmer og anvendelser
Binære trær: Noen algoritmer og anvendelser Algoritmer / anvendelser: Søking i usortert binært tre Telling av antall noder og nivåer i treet Traversering av binære trær Binære uttrykkstrær Kunstig intelligens(?):
DetaljerPG4200 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
DetaljerEKSAMEN. Dato: 18. mai 2017 Eksamenstid: 09:00 13:00
EKSAMEN Emnekode: ITF20006 Emne: Algoritmer og datastrukturer Dato: 18. mai 2017 Eksamenstid: 09:00 13:00 Hjelpemidler: Alle trykte og skrevne Kalkulator Faglærer: Jan Høiberg Om eksamensoppgavene: Oppgavesettet
DetaljerINF 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.
DetaljerDatastrukturer for rask søking
Søking Søkeproblemet Gitt en datastruktur med n elementer: Finnes et bestemt element (eller en bestemt verdi) x lagret i datastrukturen eller ikke? Effektiviteten til søkealgoritmer avhenger av: Om datastrukturen
DetaljerGrunnleggende 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
DetaljerEt eksempel: Åtterspillet
Trær Et eksempel: Åtterspillet To spillere som «trekker» annenhver gang I hvert trekk velges et av tallene 1, 2, 3, men ikke tallet som motspiller valgte i forrige trekk Valgte tall summeres fortløpende
DetaljerSøkeproblemet. Gitt en datastruktur med n elementer: Finnes et bestemt element (eller en bestemt verdi) x lagret i datastrukturen eller ikke?
Søking Søkeproblemet Gitt en datastruktur med n elementer: Finnes et bestemt element (eller en bestemt verdi) x lagret i datastrukturen eller ikke? Effektiviteten til søkealgoritmer avhenger av: Om datastrukturen
DetaljerGrunnleggende 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 å
DetaljerEt eksempel: Åtterspillet
Trær Et eksempel: Åtterspillet To spillere som «trekker» annenhver gang I hvert trekk velges et av tallene 1, 2, 3, men ikke tallet som motspiller valgte i forrige trekk Valgte tall summeres fortløpende
DetaljerGRAFER. 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
DetaljerHeap 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
DetaljerINF 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
DetaljerINF 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
DetaljerDefinisjon. I et binært tre har hver node enten 0, 1 eller 2 barn
Binære trær Definisjon I et binært tre har hver node enten 0, 1 eller 2 barn Rekursiv definisjon: Et binært tre er enten tomt, eller: Består av en rotnode og to binære trær som kalles venstre subtre og
DetaljerIN Algoritmer og datastrukturer
IN2010 - Algoritmer og datastrukturer HØSTEN 2018 Ingrid Chieh Yu Institutt for informatikk, Universitetet i Oslo Forelesning 4: Grafer I Ingrid Chieh Yu (Ifi, UiO) INF2010 H2018, forelesning 4 1 / 54
DetaljerIN 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
DetaljerINF Algoritmer og datastrukturer
INF2220 - Algoritmer og datastrukturer Institutt for informatikk, Universitetet i Oslo INF2220, forelesning 13: Dynamisk programmering (Ifi, UiO) INF2220 H2017, forelesning 13 1 / 30 Dagens plan Dynamisk
DetaljerINF 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
DetaljerKORTESTE 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...
DetaljerHeap* En heap er et komplett binært tre: En heap er også et monotont binært tre:
Heap 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 noder på nederste nivå ligger til venstre En heap er også et
DetaljerINF 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
DetaljerTeoriø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):
DetaljerPensum: fra boken (H-03)+ forelesninger
Pensum: fra boken (H-03)+ forelesninger unntatt kursorisk tema KAP. 1 KAP. 2 KAP. 3 JAVA I-110 (ikke gjennomgått) OO + ABSTRAKSJON /GENERISK PROGRAMMERING REKURSJON ALGORITME-TIDSANALYSE; O-NOTASJON KAP.
DetaljerOppgave 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
DetaljerPensum: fra boken (H-03)+ forelesninger
Pensum: fra boken (H-03)+ forelesninger unntatt kursorisk tema KAP. 1 KAP. 2 KAP. 3 JAVA I-110 (ikke gjennomgått) OO + ABSTRAKSJON /GENERISK PROGRAMMERING REKURSJON ALGORITME-TIDSANALYSE; O-NOTASJON KAP.
DetaljerAlgoritmer 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
DetaljerGRAFER. Noen grafdefinisjoner. Korteste vei i en uvektet graf V 2 V 1 V 5 V 3 V 4 V 6
IN Algoritmer og datastrukturer GRAER Dagens plan: Kort repetisjon om grafer Korteste, en-til-alle, for: uektede grafer (repetisjon) ektede rettede grafer uten negatie kanter (Dijkstra, kapittel 9..) ektede
DetaljerLø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
DetaljerDijkstras algoritme Spørsmål
:: Forside s algoritme Åsmund Eldhuset asmunde *at* stud.ntnu.no folk.ntnu.no/asmunde/algdat/dijkstra.pdf :: Vi er ofte interessert i å finne korteste, raskeste eller billigste vei mellom to punkter Gods-
DetaljerEKSAMEN. Dato: 28. mai 2018 Eksamenstid: 09:00 13:00
EKSAMEN Emnekode: ITF20006 Emne: Algoritmer og datastrukturer Dato: 28. mai 2018 Eksamenstid: 09:00 13:00 Hjelpemidler: Alle trykte og skrevne Faglærer: Jan Høiberg Om eksamensoppgavene: Oppgavesettet
DetaljerBinær heap. En heap er et komplett binært tre:
Heap 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 noder på nederste nivå ligger så langt til venstre som mulig
DetaljerEksamensoppgave 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
DetaljerINF1020 Algoritmer og datastrukturer GRAFER
GRAFER Dagens plan: Minimale spenntrær Prim Kapittel 9.5.1 Kruskal Kapittel 9.5.2 Dybde-først søk Kapittel 9.6.1 Løkkeleting Dobbeltsammenhengende grafer Kapittel 9.6.2 Å finne ledd-noder articulation
DetaljerAlgdat-ninja på 60 minutter: Et galskapsprosjekt. Magnus Lie Hetland
Algdat-ninja på 60 minutter: Et galskapsprosjekt Magnus Lie Hetland 15. november, 2002 Advarsel: Tettpakkede og overfladiske foiler forut! 1 Algtdat i 6 punkter 1. Grunnbegreper og basisverktøy 2. Rekursjon
DetaljerLøsnings forslag i java In115, Våren 1998
Løsnings forslag i java In115, Våren 1998 Oppgave 1 // Inne i en eller annen klasse private char S[]; private int pardybde; private int n; public void lagalle(int i) if (i==n) bruks(); else /* Sjekker
DetaljerINF 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:
DetaljerAlg. Dat. Øvingsforelesning 3. Grafer, BFS, DFS og hashing
Alg. Dat Øvingsforelesning 3 Grafer, BFS, DFS og hashing Dagens tema Grafer Terminologi Representasjon av grafer Bredde først søk (BFS) Dybde først søk (DFS) Hashing Hashfunksjoner, hashtabeller Kollisjonshåndtering
DetaljerAlg. Dat. Øvingsforelesning 3. Grafer, BFS, DFS og hashing. Børge Rødsjø rodsjo@stud.ntnu.no
Alg. Dat Øvingsforelesning 3 Grafer, BFS, DFS og hashing Børge Rødsjø rodsjo@stud.ntnu.no Dagens tema Grafer Terminologi Representasjon av grafer Bredde først søk (BFS) Dybde først søk (DFS) Hashing Hashfunksjoner,
DetaljerNotater til INF2220 Eksamen
Notater til INF2220 Eksamen Lars Bjørlykke Kristiansen December 13, 2011 Stor O notasjon Funksjon Navn 1 Konstant log n Logaritmisk n Lineær n log n n 2 Kvadratisk n 3 Kubisk 2 n Eksponensiell n! Trær
DetaljerPG4200 Algoritmer og datastrukturer Forelesning 7
PG4200 Algoritmer og datastrukturer Forelesning 7 Lars Sydnes, NITH 19. mars 2014 I. TERMINOLOGI FOR TRÆR TRÆR Lister: Lineære Trær: Hierarkiske Modell / Språk: Bestanddeler: Noder, forbindelser. Forbindelse
DetaljerLenkelister, iteratorer, indre klasser. Repetisjonskurs våren 2018 kristijb
Lenkelister, iteratorer, indre klasser Repetisjonskurs våren 2018 kristijb Lenket liste av objekter Vi lager en lenke ved at objekter refererer til hverandre. Vanlige er ofte å ha Node-objekter som har
DetaljerUretta 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.
DetaljerINF1020 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
DetaljerHva er en liste? Hvert element har en forgjenger, unntatt første element i listen. Hvert element har en etterfølger, unntatt siste element i listen
Lister Hva er en liste? Listen er en lineær datastruktur Hvert element har en forgjenger, unntatt første element i listen Hvert element har en etterfølger, unntatt siste element i listen I motsetning til
DetaljerNy/utsatt EKSAMEN. Dato: 6. januar 2017 Eksamenstid: 09:00 13:00
Ny/utsatt EKSAMEN Emnekode: ITF20006 Emne: Algoritmer og datastrukturer Dato: 6. januar 2017 Eksamenstid: 09:00 13:00 Hjelpemidler: Alle trykte og skrevne Faglærer: Jan Høiberg Om eksamensoppgavene: Oppgavesettet
DetaljerNy/utsatt EKSAMEN. Dato: 5. januar 2018 Eksamenstid: 09:00 13:00
Ny/utsatt EKSAMEN Emnekode: ITF20006 Emne: Algoritmer og datastrukturer Dato: 5. januar 2018 Eksamenstid: 09:00 13:00 Hjelpemidler: Alle trykte og skrevne Faglærer: Jan Høiberg Om eksamensoppgavene: Oppgavesettet
DetaljerListe som abstrakt konsept/datatype
Lister Liste som abstrakt konsept/datatype Listen er en lineær struktur (men kan allikevel implementeres ikke-lineært bak kulissene ) Hvert element har en forgjenger, unntatt første element i listen Hvert
DetaljerDijkstras 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
DetaljerMagnus Moan (Undertegnede) Enkle datastrukturer, trær, traversering og rekursjon
1 Enkle datastrukturer, trær, traversering og rekursjon Magnus Moan (Undertegnede) algdat@idi.ntnu.no Enkle datastrukturer, trær, traversering og rekursjon 2 Dagens plan Praktisk Enkle datastrukturer Stack
DetaljerNITH PG4200 Algoritmer og datastrukturer Løsningsforslag Eksamen 4.juni 2013
NITH PG4200 Algoritmer og datastrukturer Løsningsforslag Eksamen 4.juni 20 ette løsningsforslaget er til tider mer detaljert enn det man vil forvente av en eksamensbesvarelse. et er altså ikke et eksempel
DetaljerSelv-balanserende søketrær
Selv-balanserende søketrær Georgy Maksimovich Adelson-Velsky Evgenii Mikhailovich Landis Søketrær og effektivitet O(log n) effektivitet av binære søketrær kan ikke garanteres Treet til venstre har høyde
DetaljerEksamensoppgave 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
DetaljerEksamen iin115, 14. mai 1998 Side 2 Oppgave 1 15 % Du skal skrive en prosedyre lagalle som i en global character array S(1:n) genererer alle sekvenser
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i IN 115 Algoritmer og datastrukturer Eksamensdag: 14. mai 1998 Tid for eksamen: 9.00 15.00 Oppgavesettet er på 8 sider. Vedlegg:
DetaljerINF Algoritmer og datastrukturer
INF2220 - Algoritmer og datastrukturer HØSTEN 2017 Ingrid Chieh Yu Institutt for informatikk, Universitetet i Oslo Forelesning 4: Prioritetskø og Heap Ingrid Chieh Yu (Ifi, UiO) INF2220 H2017, forelesning
DetaljerGrunnleggende 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
DetaljerKorteste 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
DetaljerHva er en kø? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn først
Køer Hva er en kø? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn først Et nytt element legges alltid til sist i køen Skal vi ta ut et element, tar vi alltid
DetaljerAll good things. Fjortende forelesning
All good things Fjortende forelesning Div notater finnes på http://www.idi.ntnu.no/~algdat Foiler finnes på http://www.idi.ntnu.no/~mlh/algdat/latitudinary Spørsmål? algdat@idi.ntnu.no Sjekkliste Dette
DetaljerEksamensoppgave 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 7. desember, 06 Eksamenstid
DetaljerHva er en liste? Hvert element har en forgjenger, unntatt første element i listen. Hvert element har en etterfølger, unntatt siste element i listen
Lister Hva er en liste? Listen er en lineær datastruktur Hvert element har en forgjenger, unntatt første element i listen Hvert element har en etterfølger, unntatt siste element i listen I motsetning til
DetaljerØ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 botnan@stud.ntnu.no 09/10/09 1 I dag Topologisk Sortering Sterke Komponenter Minimale Spenntrær
DetaljerHva er en kø? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn først
Køer Hva er en kø? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn først Et nytt element legges alltid til sist i køen Skal vi ta ut et element, tar vi alltid
DetaljerInnhold. Innledning 1
Innhold Innledning 1 1 Kompleksitetsanalyse 7 1.1 Innledning.............................. 8 1.2 Hva vi beregner........................... 8 1.2.1 Enkle operasjoner...................... 8 1.2.2 Kompleksitet........................
DetaljerINF Algoritmer og datastrukturer
INF2220 - Algoritmer og datastrukturer HØSTEN 2016 Ingrid Chieh Yu Institutt for informatikk, Universitetet i Oslo Forelesning 4: Prioritetskø og Heap Ingrid Chieh Yu (Ifi, UiO) INF2220 H2016, forelesning
DetaljerDagens 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
DetaljerPG4200 Algoritmer og datastrukturer forelesning 10. Lars Sydnes 21. november 2014
PG4200 Algoritmer og datastrukturer forelesning 10 Lars Sydnes 21. november 2014 I Grafer Grafisk fremstilling av en graf D A B C Ikke-rettet graf Grafisk fremstilling av en graf D A B C Rettet graf Grafisk
DetaljerDagens plan: INF Algoritmer og datastrukturer. Eksempel. Binære Relasjoner
Dagens plan: INF2220 - Algoritmer og datastrukturer HØSTEN 2009 Institutt for informatikk, Universitetet i Oslo INF2220, forelesning 10: Disjunkte Mengder Definisjon av binær relasjon Definisjon av ekvivalens
DetaljerINF Algoritmer og datastrukturer
INF2220 - Algoritmer og datastrukturer HØSTEN 2009 Institutt for informatikk, Universitetet i Oslo INF2220, forelesning 10: Disjunkte Mengder Bjarne Holen (Ifi, UiO) INF2220 H2009, forelesning 10 1 / 27
DetaljerFlerveis søketrær og B-trær
Flerveis søketrær og B-trær Flerveis (multi-way, n-ært) søketre Generalisering av binært søketre Binært søketre: Hver node har maksimalt 2 barn og 1 nøkkelverdi. Barna ligger sortert på verdi i forhold
DetaljerIN Algoritmer og datastrukturer
IN2010 - Algoritmer og datastrukturer HØSTEN 2018 Ingrid Chieh Yu Institutt for informatikk, Universitetet i Oslo Forelesning 3: Prioritetskø og Heap Ingrid Chieh Yu (Ifi, UiO) INF2010 H2018, forelesning
DetaljerINF Algoritmer og datastrukturer
INF2220 - Algoritmer og datastrukturer HØSTEN 2015 Ingrid Chieh Yu Institutt for informatikk, Universitetet i Oslo Forelesning 4: Prioritetskø og Heap Ingrid Chieh Yu (Ifi, UiO) INF2220 H2015, forelesning
DetaljerDisjunkte mengder ADT
Binære relasjoner A A = {(x, y) x, y A}: mengden av ordnede par over A. Disjunkte mengder ADT Weiss kap. 8.1 8.5 Løser ekvivalensproblemet Lett og rask implementasjon Vanskelig tidsforbrukanalyse Ark 1
DetaljerDet 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
DetaljerINF Algoritmer og datastrukturer
INF2220 - Algoritmer og datastrukturer HØSTEN 2015 Ingrid Chieh Yu Institutt for informatikk, Universitetet i Oslo Forelesning 4: Prioritetskø og Heap Ingrid Chieh Yu (Ifi, UiO) INF2220 H2015, forelesning
DetaljerHva er en kø? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn først
Køer Hva er en kø? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn først Et nytt element legges alltid til sist i køen Skal vi ta ut et element, tar vi alltid
DetaljerINF2220: Forelesning 2
INF2220: Forelesning 2 Mer om analyse av algoritmer Analyse av binære søketrær Balanserte søketrær Rød-svarte trær (kapittel12.2) B-trær (kapittel 4.7) ANALYSE AV ALGORITMER 2 Analyse av tidsforbruk Hvor
DetaljerTrær. Består av sammenkoblede noder Hver node har 0 eller flere barne-noder. Må være asyklisk. Et tre med n noder har n-1 kanter.
Generelle trær: Trær Består av sammenkoblede noder Hver node har 0 eller flere barne-noder. Må være asyklisk. Et tre med n noder har n-1 kanter. løvnoder kant rotnode sub-tre 1 Generelle trær: Oppbygging
DetaljerOppsummering. I. HVA VAR DET? I.1 ADTer og Programutvikling I.2 Datastrukturer I.3 Algoritmer II. PENSUM III.EKSAMEN IV. ØNSKER
Oppsummering I. HVA VAR DET? I.1 ADTer og Programutvikling I.2 Datastrukturer I.3 Algoritmer II. PENSUM III.EKSAMEN IV. ØNSKER i-120 : h-99 11. Oppsummering: 1 Hva oppnår vi med ADT-modul begrepet? 1.
DetaljerGRAFER. Hva er en graf? Det første grafteoretiske problem: Broene i Königsberg. Grafer vi har sett allerede
Dagens plan: GRAFER Definisjon av en graf (kapittel 9.) Grafvarianter Intern representasjon av grafer (kapittel 9..) Topologisk sortering (kapittel 9.) Korteste vei en-til-alle uvektet graf (kapittel 9..)
DetaljerEKSAMEN. Dato: 9. mai 2016 Eksamenstid: 09:00 13:00
EKSAMEN Emnekode: ITF20006 Emne: Algoritmer og datastrukturer Dato: 9. mai 2016 Eksamenstid: 09:00 13:00 Hjelpemidler: Alle trykte og skrevne Faglærer: Jan Høiberg Om eksamensoppgavene: Oppgavesettet består
DetaljerINF Algoritmer og datastrukturer. Hva er INF2220? Algoritmer og datastrukturer
Praktiske opplysninger INF2220 - Algoritmer og datastrukturer HØSTEN 2007 Institutt for informatikk, Universitetet i Oslo Tid og sted: Mandag kl. 12:15-14:00 Store auditorium, Informatikkbygningen Kursansvarlige
DetaljerAvsluttende 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.
DetaljerFra Kap.10 Binære søketre (BS-tre) Sist oppdatert 20.03.10 Definere en abstrakt datastruktur binært søketre. Vise hvordan binær søketre kan brukes
Fra Kap.10 Binære søketre (BS-tre) Sist oppdatert 20.03.10 Definere en abstrakt datastruktur binært søketre. Vise hvordan binær søketre kan brukes til å løse problemer. Undersøke ulike implementasjoner
DetaljerINF2220: Forelesning 2. Balanserte søketrær Rød-svarte trær (kapittel12.2) B-trær (kapittel 4.7)
INF2220: Forelesning 2 Balanserte søketrær Rød-svarte trær (kapittel12.2) B-trær (kapittel 4.7) REPETISJON: BINÆRE SØKETRÆR 2 Binære søketrær 8 4 12 2 7 9 15 6 11 13 16 For enhver node i et binært søketre
DetaljerINF2220: Forelesning 2
INF2220: Forelesning 2 Balanserte søketrær Rød-svarte trær (kapittel12.2) B-trær (kapittel 4.7) REPETISJON: BINÆRE SØKETRÆR 2 Binære søketrær 8 4 12 2 7 9 15 6 11 13 16 For enhver node i et binært søketre
DetaljerNORGES INFORMASJONSTEKNOLOGISKE HØGSKOLE PG4200 Algoritmer og datastrukturer
Oppgavesettet består av 7 (syv) sider. NORGES INFORMASJONSTEKNOLOGISKE HØGSKOLE PG4200 Algoritmer og datastrukturer Tillatte hjelpemidler: Ingen Side av 7 Varighet: 3 timer Dato:.august 203 Fagansvarlig:
DetaljerMinimum 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
DetaljerINF Algoritmer og datastrukturer
INF2220 - Algoritmer og datastrukturer Institutt for informatikk, Universitetet i Oslo INF2220, forelesning 11: Huffman-koding & Dynamisk programmering (Ifi, UiO) INF2220 H2015, forelesning 11 1 / 32 Dagens
DetaljerLøsningsforslag for Obligatorisk Oppgave 3. Algoritmer og Datastrukturer ITF20006
Løsningsforslag for Obligatorisk Oppgave 3 Algoritmer og Datastrukturer ITF20006 Lars Vidar Magnusson Frist 28.03.14 Den tredje obligatoriske oppgaven tar for seg forelesning 9 til 13, som dreier seg om
DetaljerOppgave 3 a. Antagelser i oppgaveteksten. INF1020 Algoritmer og datastrukturer. Oppgave 3. Eksempelgraf
Oppgave 3 3 a IN1020 Algoritmer og datastrukturer orelesning 15: Gjennomgang av eksamen vår 2001 oppgave 3 Arild Waaler Institutt for informatikk, Universitetet i Oslo 11. desember 2006 Oppgave 3 a. Antagelser
DetaljerØ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 &
DetaljerØ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
Detaljer