IN Algoritmer og datastrukturer

Størrelse: px
Begynne med side:

Download "IN Algoritmer og datastrukturer"

Transkript

1 IN 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

2 Dagens plan: Definisjon av en graf Grafvarianter Intern representasjon av grafer Traversering Topologisk sortering Korteste vei en-til-alle uvektet graf kap. 13 Ingrid Chieh Yu (Ifi, UiO) INF2010 H2018, forelesning 4 2 / 54

3 Det første grafteoretiske problem: Broene i Königsberg Er det mulig å ta en spasertur som krysser hver av broene nøyaktig en gang? Dette problemet ble løst av Euler allerede i 1736! Ingrid Chieh Yu (Ifi, UiO) INF2010 H2018, forelesning 4 3 / 54

4 Grafer vi har sett allerede Labyrint Ingrid Chieh Yu (Ifi, UiO) INF2010 H2018, forelesning 4 4 / 54

5 Grafer vi har sett allerede Trær Ingrid Chieh Yu (Ifi, UiO) INF2010 H2018, forelesning 4 5 / 54

6 Grafer vi har sett allerede Arv i OO Ingrid Chieh Yu (Ifi, UiO) INF2010 H2018, forelesning 4 6 / 54

7 Ingrid Chieh Yu (Ifi, UiO) INF2010 H2018, forelesning 4 7 / 54

8 Hva er en graf? En graf G =(V,E) har en mengde noder, V, og en mengde kanter, E V og E er henholdsvis antall noder og antall kanter i grafen Hver kant er et par av noder, dvs. (u, v) slik at u, v V En kant (u, v) modellerer at u er relatert til v Dersom nodeparet i kanten (u, v) er ordnet (dvs. at rekkefølgen har betydning), sier vi at grafen er rettet, i motsatt fall er den urettet Grafer er den mest fleksible datastrukturen vi kjenner ( alt kan modelleres med grafer) Ingrid Chieh Yu (Ifi, UiO) INF2010 H2018, forelesning 4 8 / 54

9 Hvorfor grafer? De dukker opp i veldig mange problemer i hverdagslivet: Flyplassystemer Datanettverk Trafikkflyt Ruteplanlegging VLSI (chip design) og mange flere... Grafalgoritmer viser veldig godt hvor viktig valg av datastruktur er mhp. tidsforbruk Det finnes grunnleggende algoritmeteknikker som løser mange ikke-trivielle problemer raskt Ingrid Chieh Yu (Ifi, UiO) INF2010 H2018, forelesning 4 9 / 54

10 Grafer: Definisjoner og varianter Node y er nabo-node (eller etterfølger) til node x dersom (x, y) E En graf er vektet dersom hver kant har en tredje komponent, kalt kost eller vekt x 2 y 9 5 z Ingrid Chieh Yu (Ifi, UiO) INF2010 H2018, forelesning 4 10 / 54

11 En vei (eller sti) i en graf er en sekvens av noder v 1, v 2, v 3,..., v n slik at (v i, v i+1 ) E for 1 i n 1 Lengden til veien er lik antall kanter på veien, dvs. n 1 x y w z <z, w, x> er en vei med lengde 2 Kosten til en vei er summene av vektene langs veien y 1 z x <z, w, x> er en vei med kost 7 5 w 2 En vei er enkel dersom alle nodene (untatt muligens første og siste) på veien er forskjellige Ingrid Chieh Yu (Ifi, UiO) INF2010 H2018, forelesning 4 11 / 54

12 Våre grafer har vanligvis ikke loops, (v, v), eller multikanter (to like kanter): En løkke (sykel) i en rettet graf er en vei med lengde 1 slik at v 1 = v n. Løkken er enkel dersom stien er enkel I en urettet graf må også alle kanter i løkken være forskjellige Ingrid Chieh Yu (Ifi, UiO) INF2010 H2018, forelesning 4 12 / 54

13 En rettet graf er asyklisk dersom den ikke har noen løkker En rettet, asyklisk graf blir ofte kalt en DAG (Directed, Acyclic Graf) En urettet graf er sammenhengende dersom det er en vei fra hver node til alle andre noder sammenhengende ikke sammenhengende Ingrid Chieh Yu (Ifi, UiO) INF2010 H2018, forelesning 4 13 / 54

14 En rettet graf er sterkt sammenhengende dersom det er en vei fra hver node til alle andre noder En rettet graf er svakt sammenhengende dersom den underliggende urettede grafen er sammenhengende sterkt sammen hengende svakt sammen hengende Ingrid Chieh Yu (Ifi, UiO) INF2010 H2018, forelesning 4 14 / 54

15 Graden til en node i en urettet graf er antall kanter mot noden Inngraden til en node i en rettet graf er antall kanter inn til noden Utgraden til en node i en rettet graf er antall kanter ut fra noden. v Grad(v)=3 v Inngrad(v)=1 Utgrad(v)=4 Ingrid Chieh Yu (Ifi, UiO) INF2010 H2018, forelesning 4 15 / 54

16 Hvordan representere grafer? Ingrid Chieh Yu (Ifi, UiO) INF2010 H2018, forelesning 4 16 / 54

17 Nabo-matrise (adjacency matrix) Bra hvis tett graf, dvs. E = Θ( V 2 ) Det tar O( V ) tid å finne alle naboer Ingrid Chieh Yu (Ifi, UiO) INF2010 H2018, forelesning 4 17 / 54

18 Nabo-matrise (adjacency matrix) Ingrid Chieh Yu (Ifi, UiO) INF2010 H2018, forelesning 4 18 / 54

19 Nabo-liste (adhacency list) Bra hvis tynn ( sparse ) graf Tar O(Utgrad(v)) tid å finne alle naboer til v De fleste grafer i det virkelige liv er tynne! Ingrid Chieh Yu (Ifi, UiO) INF2010 H2018, forelesning 4 19 / 54

20 Objekter & array I Java kan grafer også representeres ved en kombinasjon av node-objekter og etterfølgerarrayer Arraylengden kan være en parameter til node-klassens constructor Ingrid Chieh Yu (Ifi, UiO) INF2010 H2018, forelesning 4 20 / 54

21 c l a s s Node { i n t a n t a l l N a b o e r ; Node [ ] e t t e r f ; double [ ] v e k t ; } Node ( i n t k a p a s i t e t ) { e t t e r f = new Node [ k a p a s i t e t ] ; v e k t = new double [ k a p a s i t e t ] ; a n t a l l N a b o e r = 0 ; } Da må vi vite antall etterfølgere når vi genererer noden Eventuelt kan vi estimere en øvre grense og la siste del av arrayen være tom Vi trenger da en variabel som sier hvor mange etterfølgere en node faktisk har Ingrid Chieh Yu (Ifi, UiO) INF2010 H2018, forelesning 4 21 / 54

22 Dybde-først søk

23 Dybde-først søk Dybde-først søk klassisk graf traversering generalisering av prefiks traversering for trær gitt: start node v: rekursivt traverserer alle nabonodene rekursjon vi undersøker alle noder som kan nåes fra første etterfølger til v, før vi undersøker neste etterfølger til v for vilkårlige grafer: pass på å terminerer rekursjon! unvisited visited nodes. DFS Initialize: all nodes unvisited. Recur: when visited: return immidiately when unvisited set to visited recur on all neighbors Ingrid Chieh Yu (Ifi, UiO) INF2010 H2018, forelesning 4 23 / 54

24 Dybde-først søk A v o i d dybdeførstsøk ( Node v ) { v. merke = t r u e ; f o r < h v e r nabo w t i l v > { i f (! w. merke ) { dybdeførstsøk (w ) ; } } } G C B E D F Ingrid Chieh Yu (Ifi, UiO) INF2010 H2018, forelesning 4 24 / 54

25 DFS kompleksitet Dybde-først søk DFS traversering tar O( V + E ) med nabo-liste implementasjon sjekke hvorvidt G er sammenhengende finne spenntre finne sammenhengende komponenter finne stien mellom to noder i G (rapporterer hvis stien ikke finnes) finne løkker i G (rapporterer hvis grafen ikke har noen løkker) Ingrid Chieh Yu (Ifi, UiO) INF2010 H2018, forelesning 4 25 / 54

26 Løkkeleting Dybde-først søk Vi kan bruke dybde-først søk til å sjekke om en graf har løkker 3 verdier til tilstandsvariablen: usett, igang og ferdig (besøkt) v o i d l økkelet ( Node v ) { i f ( v. t i l s t a n d == i g a n g ) { < Løkke e r f u n n e t > } e l s e i f ( v. t i l s t a n d == u s e t t ) { v. t i l s t a n d = i g a n g ; f o r < h v e r nabo w t i l v > { l økkelet (w ) ; } v. t i l s t a n d = f e r d i g ; } } Ingrid Chieh Yu (Ifi, UiO) INF2010 H2018, forelesning 4 26 / 54

27 Dybde-først søk Er grafen sammenhengende? urettet graf & DFS En urettet graf er sammenhengende hvis og bare hvis et dybde-først søk som starter i en tilfeldig node, besøker alle nodene i grafen rettet graf & DFS En rettet graf er sterkt sammenhengende hvis og bare hvis vi fra hver eneste node v klarer å besøke alle de andre nodene i grafen ved et dybde-først søk fra v Hvis grafen ikke er sammenhengende, kan vi foreta nye dybde-først søk fra noder som ikke er besøkte, inntil alle nodene er behandlet Ingrid Chieh Yu (Ifi, UiO) INF2010 H2018, forelesning 4 27 / 54

28 Dybde-først søk Dybde-først-spenntre for urettet sammenhengende grafer ikke sammenhengende grafer: dfs spanning forest huske back-pointers Ulike type kanter gitt en bestemt kjøring av dfs 1 tree edges 2 back edges Ingrid Chieh Yu (Ifi, UiO) INF2010 H2018, forelesning 4 28 / 54

29 Dybde-først søk DFS, urettet graf (1) B A F C D G E Ingrid Chieh Yu (Ifi, UiO) INF2010 H2018, forelesning 4 29 / 54

30 Dybde-først søk DFS, spanning forest v o i d DFS(G) f o r <h v e r node v i G> { i f (! v. merke ) { dybdeførstsøk ( v ) } } Ingrid Chieh Yu (Ifi, UiO) INF2010 H2018, forelesning 4 30 / 54

31 BFS vs DFS Dybde-først søk Back edge (v,w): w is an ancestor of v in the tree of discovery edges Cross edge (v,w): w is in the same level as v or in the next level Ingrid Chieh Yu (Ifi, UiO) INF2010 H2018, forelesning 4 31 / 54

32 DFS for rettet graf Dybde-først søk Ulike type kanter gitt en bestemt kjøring av dfs 1 tree edges 2 back edges 3 forward edges 4 cross edges Ingrid Chieh Yu (Ifi, UiO) INF2010 H2018, forelesning 4 32 / 54

33 BFS vs DFS Dybde-først søk Ingrid Chieh Yu (Ifi, UiO) INF2010 H2018, forelesning 4 33 / 54

34 BFS vs DFS Dybde-først søk Ingrid Chieh Yu (Ifi, UiO) INF2010 H2018, forelesning 4 34 / 54

35 BFS vs DFS Dybde-først søk Ingrid Chieh Yu (Ifi, UiO) INF2010 H2018, forelesning 4 35 / 54

36 Topologisk sortering

37 Topologisk sortering Topologisk sortering En topologisk sortering er en ordning (rekkefølge) av noder i en DAG slik at dersom det finnes en vei fra v i til v j, så kommer v j etter v i i ordningen Topologisk sortering er umulig hvis grafen har en løkke MA100/ MA001 IN102 IN115 En liten del av Ifis kursplan i 1999 IN105 IN114 IN212 IN394 MA108 IN147 IN211 IN310 MA IN 118 IN210 Ingrid Chieh Yu (Ifi, UiO) INF2010 H2018, forelesning 4 37 / 54

38 Topologisk sortering Følgende enkle algoritme finner en topologisk sortering (hvis det er noen): 1 Finn en node med inngrad = 0 2 Skriv ut noden, og fjern noden og utkantene fra grafen (marker noden som ferdig og reduser inngraden til nabonodene) 3 Gå tilbake til punkt 1 Eksempel: Ingrid Chieh Yu (Ifi, UiO) INF2010 H2018, forelesning 4 38 / 54

39 Topologisk sortering Algoritme for topologisk sortering v o id t o p s o r t ( ) { Node v ; f o r ( i n t t e l l e r = 0 ; t e l l e r < ANTALL_NODER; t e l l e r ++) { v = finnnynodemedinngradnull ( ) ; i f ( v == n u l l ) { e r r o r ( "Løkke f u n n e t! " ) ; } e l s e { < S k r i v ut v som node t e l l e r > f o r < h v e r nabo w t i l v > { w. i n n g r a d ; }}}} Denne algoritmen er O( V 2 ) siden finnnynodemedinngradnull ser gjennom hele node/inngrad-tabellen hver gang Unødvendig: bare noen få av verdiene kommer ned til 0 hver gang Ingrid Chieh Yu (Ifi, UiO) INF2010 H2018, forelesning 4 39 / 54

40 Topologisk sortering En forbedring er å holde alle noder med inngrad=0 i en boks. Boksen kan implementeres som en stakk eller en kø: 1 Plasser alle nodene med inngrad=0 i boksen. 2 Ta ut en node v fra boksen. 3 Skriv ut v. 4 Fjern v fra grafen og reduserer inngraden til alle etterfølgerne. 5 Dersom noen av etterfølgerne får inngrad=0, settes de inn i boksen. 6 Gå tilbake til punkt 2. Ingrid Chieh Yu (Ifi, UiO) INF2010 H2018, forelesning 4 40 / 54

41 Topologisk sortering Forbedret algoritme v o id t o p s o r t ( ) { Kø k = new Kø ( ) ; Node v ; i n t t e l l e r = 0 ; f o r < h v e r node v > i f ( v. i n n g r a d == 0) k. s e t t I n n ( v ) ; w h i l e (! k. isempty ( ) ) { v = k. taut ( ) ; < S k r i v ut v >; t e l l e r ++; } f o r < h v e r nabo w t i l v > { w. i n n g r a d ; i f (w. i n n g r a d == 0) k. s e t t I n n (w ) ; } } i f ( t e l l e r < ANTALL_NODER) e r r o r ( "Løkke f u n n e t! " ) ; Ingrid Chieh Yu (Ifi, UiO) INF2010 H2018, forelesning 4 41 / 54

42 Topologisk sortering Forutsatt at vi bruker nabolister, er denne algoritmen O( V + E ). Kø/stakk-operasjoner tar konstant tid, og hver node og hver kant blir bare behandlet en gang. Ingrid Chieh Yu (Ifi, UiO) INF2010 H2018, forelesning 4 42 / 54

43 Oppgave Topologisk sortering Anta at du har en avhengighetsgraf med noder: {Q, B, J, P, A, Z}. Grafen har 4 lovlige topologiske sorteringer, det finnes ingen annen sortering av nodene som tilfredstiller avhengighetene: 1 Q, A, B, J, Z, P 2 Q, B, A, J, Z, P 3 Q, A, B, Z, J, P 4 Q, B, A, Z, J, P Tegn en graf som oppfyller kriteriene. Ingrid Chieh Yu (Ifi, UiO) INF2010 H2018, forelesning 4 43 / 54

44 Korteste vei en-til-alle

45 Korteste vei en-til-alle Bunnpris Blindern, Problemveien, Oslo til Ole-Johan Dahls Hus... Bunnpris Blindern, Problemveien, Oslo til Ole- Johan Dahls Hus Til fots 600 m, 8 min Kartdata 2017 Google Norge 100 m Ingrid Chieh Yu (Ifi, UiO) INF2010 H2018, forelesning 4 45 / 54

46 Korteste vei en-til-alle Korteste vei, en-til-alle I korteste vei problemet (en-til-alle) har vi gitt en (muligens vektet) graf G=(V,E) og en node s. Vi ønsker å finne den korteste veien (evt. med vekter) fra s til alle andre noder i G. x 2 y 9 5 z Korteste vei fra z til x uten vekt er 1. Korteste vei fra z til x med vekt er 7 (via y). Ingrid Chieh Yu (Ifi, UiO) INF2010 H2018, forelesning 4 46 / 54

47 Korteste vei en-til-alle Negative vekter (kost) i løkker kan skape problemer: x 12 y 5 5 Hvor mye koster korteste vei fra x til z? z Ingrid Chieh Yu (Ifi, UiO) INF2010 H2018, forelesning 4 47 / 54

48 Korteste vei en-til-alle Korteste vei i en uvektet graf Korteste vei fra s til t i en uvektet graf er lik veien som bruker færrest antall kanter. V 1 V 2 V 3 V 4 V 5 V 6 V 7 (Det tilsvarer at alle kanter har vekt=1) Ingrid Chieh Yu (Ifi, UiO) INF2010 H2018, forelesning 4 48 / 54

49 Korteste vei en-til-alle Følgende bredde-først algoritme løser problemet for en node s i en uvektet graf G: 1 Marker at lengden fra s til s er lik 0. (Merk at s foreløpig er den eneste noden som er markert.) 2 Finn alle etterfølgere til s. Marker disse med avstand 1. 3 Finn alle umarkerte etterfølgere til nodene som er på avstand 1. Marker disse med avstand 2. 4 Finn alle umarkerte etterfølgere til nodene som er på avstand 2. Marker disse med avstand 3. 5 Fortsett til alle noder er markert, eller vi ikke har noen umarkerte etterfølgere. Finnes det fortsatt umarkerte noder, kan ikke hele G nåes fra s. Hvis G er urettet, skjer dette hvis og bare hvis G er usammenhengende. Ingrid Chieh Yu (Ifi, UiO) INF2010 H2018, forelesning 4 49 / 54

50 Korteste vei en-til-alle Vi kan finne den korteste veien ved å sette bakoverpekere ( vei ) til den noden som oppdaget oss v o id u v e k t e t ( Node s ) { f o r < h v e r node v > { v. a v s t a n d = UENDELIG ; v. k j e n t = f a l s e ; } s. a v s t a n d = 0 ; f o r ( i n t d i s t = 0 ; d i s t < ANTALL_NODER; d i s t ++) { f o r < h v e r node v > { i f (! v. k j e n t && v. a v s t a n d == d i s t ) { v. k j e n t = t r u e ; f o r < h v e r nabo w t i l v > { i f (w. a v s t a n d == UENDELIG) { w. a v s t a n d = d i s t + 1 ; w. v e i = v ; }}}}}} Ingrid Chieh Yu (Ifi, UiO) INF2010 H2018, forelesning 4 50 / 54

51 Korteste vei en-til-alle Hovedløkken vil som oftest fortsette etter at alle noder er merket, men den vil terminere selv om ikke alle noder kan nåes fra s. Tidsforbruket er O( V 2 ). Vi sparer tid ved å benytte en kø av noder. Vi begynner med å legge s inn i køen. Så lenge køen ikke er tom, tar vi ut første node i køen, behandler denne og legger dens etterfølgere inn bakerst i køen. Da blir s behandlet først. Så blir alle noder i avstand 1 behandlet før alle i avstand 2, før alle i avstand 3... Denne strategien ligner på bredde først traversering av trær (først rotnoden, så alle noder på nivå 1, så alle noder på nivå 2, osv). Tidsforbruket blir O( E + V ) fordi køoperasjoner tar konstant tid og hver kant og hver node bare blir behandlet en gang. Ingrid Chieh Yu (Ifi, UiO) INF2010 H2018, forelesning 4 51 / 54

52 Korteste vei en-til-alle Korteste uvektet vei fra node s v o id u v e k t e t ( Node s ) { Kø k = new Kø ( ) ; Node v ; f o r < h v e r node n > n. a v s t a n d = UENDELIG ; s. a v s t a n d = 0 ; k. s e t t I n n ( s ) ; w h i l e (! k. isempty ( ) ) { v = k. taut ( ) ; f o r < h v e r nabo w t i l v > { i f (w. a v s t a n d == UENDELIG) { w. a v s t a n d = v. a v s t a n d + 1 ; w. v e i = v ; k. s e t t I n n (w ) ; }}}} Bruken av kø gjør attributtet kjent overflødig. Forutsatt at vi bruker nabolister, er denne algoritmen O( V + E ). Kø-operasjoner tar konstant tid, og hver node og hver kant blir behandlet bare en gang. Ingrid Chieh Yu (Ifi, UiO) INF2010 H2018, forelesning 4 52 / 54

53 Oppsummering Korteste vei en-til-alle Graf: Noder + Kanter Begrep: Rettet, urettet, inngrad, utgrad, sti... Graf traversering: DFS, BFS DAG: Rettet asyklisk graf (topologisk sortering) Avstand: Korteste vei en-til-alle Ingrid Chieh Yu (Ifi, UiO) INF2010 H2018, forelesning 4 53 / 54

54 Korteste vei en-til-alle Neste forelesning: 28. september Grafer II: Dijkstra, Prim, Kruskal Ingrid Chieh Yu (Ifi, UiO) INF2010 H2018, forelesning 4 54 / 54

INF Algoritmer og datastrukturer

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

Detaljer

INF Algoritmer og datastrukturer

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:

Detaljer

INF Algoritmer og datastrukturer

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

Detaljer

INF Algoritmer og datastrukturer

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

Detaljer

Dagens plan: INF Algoritmer og datastrukturer. Grafer vi har sett allerede. Det første grafteoretiske problem: Broene i Königsberg

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

Detaljer

Det første grafteoretiske problem: Broene i Königsberg

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

Detaljer

GRAFER. Hva er en graf? Det første grafteoretiske problem: Broene i Königsberg. Grafer vi har sett allerede

GRAFER. 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..)

Detaljer

INF1020 Algoritmer og datastrukturer GRAFER

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

Detaljer

INF Algoritmer og datastrukturer

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.

Detaljer

INF Algoritmer og datastrukturer

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

Detaljer

Grunnleggende Grafteori

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

Detaljer

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

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

Detaljer

IN Algoritmer og datastrukturer

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

Detaljer

INF1020 Algoritmer og datastrukturer GRAFER

INF1020 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

Detaljer

Korteste vei i en vektet graf uten negative kanter

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

Detaljer

IN Algoritmer og datastrukturer

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

Detaljer

Anvendelser av grafer

Anvendelser 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

Detaljer

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

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.

Detaljer

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

GRAFER. 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

Detaljer

PG4200 Algoritmer og datastrukturer Forelesning 10

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

Detaljer

INF Algoritmer og datastrukturer

INF Algoritmer og datastrukturer IN2220 - lgoritmer og datastrukturer HØSTN 2016 Institutt for informatikk, Universitetet i Oslo orelesning 7: rafer III Ingrid hieh Yu (Ifi, UiO) IN2220 05.10.2016 1 / 28 agens plan: evis for Prim ybde-først

Detaljer

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

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

Detaljer

Pensum: fra boken (H-03)+ forelesninger

Pensum: 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.

Detaljer

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

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

Detaljer

MAT1030 Diskret matematikk

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

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 Ø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

Detaljer

Kombinatorikk. MAT1030 Diskret Matematikk. Oppsummering av regneprinsipper

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.

Detaljer

MAT1030 Diskret Matematikk

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.

Detaljer

Pensum: fra boken (H-03)+ forelesninger

Pensum: 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.

Detaljer

MAT1030 Forelesning 22

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!

Detaljer

INF Algoritmer og datastrukturer

INF 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

Detaljer

Vi skal se på grafalgoritmer for:

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?

Detaljer

Alg. 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 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,

Detaljer

MAT1030 Forelesning 22

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:

Detaljer

Grunnleggende Grafalgoritmer

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 å

Detaljer

Grunnleggende Grafalgoritmer II

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

Detaljer

Dagens plan: INF Algoritmer og datastrukturer. Eksempel. Binære Relasjoner

Dagens 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

Detaljer

INF Algoritmer og datastrukturer

INF 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

Detaljer

INF Algoritmer og datastrukturer

INF 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

Detaljer

Anvendelser av grafer

Anvendelser 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

Detaljer

Alg. Dat. Øvingsforelesning 3. Grafer, BFS, DFS og hashing

Alg. 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

Detaljer

Vi skal se på grafalgoritmer for:

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?

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO Eksamen i UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamensdag: 13. desember 2011 Tid for eksamen: 14.30 18.30 Oppgavesettet er på 7 sider. Vedlegg: INF2220 lgoritmer og datastrukturer

Detaljer

INF Algoritmer og datastrukturer

INF Algoritmer og datastrukturer N0 - lgoritmer og datastrukturer ØSTN 0 nstitutt for informatikk, Universitetet i Oslo orelesning : rafer ngrid hieh Yu (fi, UiO) N0 0.0.0 / 0 agens plan: ybde-først søk Strongly connected components jesteforelesning:

Detaljer

INF Algoritmer og datastrukturer

INF 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

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF2220 Algoritmer og datastrukturer Eksamensdag: 16. desember 2013 Tid for eksamen: 14.30 18.30 Oppgavesettet er på 8 sider.

Detaljer

INF Algoritmer og datastrukturer

INF 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

Detaljer

INF Algoritmer og datastrukturer

INF 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

Detaljer

INF Algoritmer og datastrukturer

INF 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

Detaljer

INF Algoritmer og datastrukturer. Hva er INF2220? Algoritmer og datastrukturer

INF 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

Detaljer

Innhold. Innledning 1

Innhold. 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........................

Detaljer

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

Eksamen i fag SIF8010 Algoritmer og datastrukturer Lørdag 9. august 2003, kl SIF8010 2003-08-09 Stud.-nr: Antall sider: 1 Eksamen i fag SIF8010 Algoritmer og datastrukturer Lørdag 9. august 2003, kl. 0900 1500 Faglig kontakt under eksamen: Arne Halaas, tlf. 41661982; Magnus Lie

Detaljer

TMA4140 Diskret Matematikk Høst 2016

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

Detaljer

Oppgave 3 a. Antagelser i oppgaveteksten. INF1020 Algoritmer og datastrukturer. Oppgave 3. Eksempelgraf

Oppgave 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

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

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

Detaljer

INF Algoritmer og datastrukturer

INF Algoritmer og datastrukturer INF2220 - Algoritmer og datastrukturer HØSTEN 2009 Institutt for informatikk, Universitetet i Oslo INF2220, forelesning 13: Eksamensgjennomgang Bjarne Holen (Ifi, UiO) INF2220 H2009, forelesning 13 1 /

Detaljer

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

Løsningsforslag for eksamen i fag SIF8010 Algoritmer og datastrukturer Lørdag 9. august 2003, kl SIF8010 2003-08-09 Stud.-nr: Antall sider: 1 Løsningsforslag for eksamen i fag SIF8010 Algoritmer og datastrukturer Lørdag 9. august 2003, kl. 0900 1500 Faglig kontakt under eksamen: Arne Halaas, tlf.

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO Eksamen i UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamensdag: 14. desember 2015 Tid for eksamen: 14.30 18.30 Oppgavesettet er på 6 sider. Vedlegg: Tillatte hjelpemidler: INF2220

Detaljer

INF2220: Forelesning 1. Praktisk informasjon Analyse av algoritmer (kapittel 2) (Binær)trær (kapittel )

INF2220: Forelesning 1. Praktisk informasjon Analyse av algoritmer (kapittel 2) (Binær)trær (kapittel ) INF2220: Forelesning 1 Praktisk informasjon Analyse av algoritmer (kapittel 2) (Binær)trær (kapittel 4.1-4.3 + 4.6) PRAKTISK INFORMASJON 2 Praktisk informasjon Kursansvarlige Ragnhild Kobro Runde (ragnhilk@ifi.uio.no)

Detaljer

Generelle Tips. INF Algoritmer og datastrukturer. Åpen og Lukket Hashing. Hashfunksjoner. Du blir bedømt etter hva du viser at du kan

Generelle Tips. INF Algoritmer og datastrukturer. Åpen og Lukket Hashing. Hashfunksjoner. Du blir bedømt etter hva du viser at du kan Generelle Tips INF2220 - lgoritmer og datastrukturer HØSTEN 2009 Institutt for informatikk, Universitetet i Oslo Du blir bedømt etter hva du viser at du kan Du må begrunne svar Du må ikke skrive av bøker

Detaljer

Disjunkte mengder ADT

Disjunkte 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

Detaljer

Repetisjon og mer motivasjon. MAT1030 Diskret matematikk. Repetisjon og mer motivasjon

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

Detaljer

IN Algoritmer og datastrukturer

IN 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

Detaljer

Dagens plan. INF Algoritmer og datastrukturer. Koding av tegn. Huffman-koding

Dagens plan. INF Algoritmer og datastrukturer. Koding av tegn. Huffman-koding Grafer Dagens plan INF2220 - Algoritmer og datastrukturer HØSTEN 2007 Institutt for informatikk, Universitetet i Oslo Avsluttende om grådige algoritmer (kap. 10.1.2) Dynamisk programmering Floyds algoritme

Detaljer

IN2010: Algoritmer og Datastrukturer Series 2

IN2010: Algoritmer og Datastrukturer Series 2 Universitetet i Oslo Institutt for Informatikk S.M. Storleer, S. Kittilsen IN2010: Algoritmer og Datastrukturer Series 2 Tema: Grafteori 1 Publisert: 02. 09. 2019 Utvalgte løsningsforslag Oppgave 1 (Fra

Detaljer

Forelesning 23. MAT1030 Diskret Matematikk. Repetisjon og mer motivasjon. Repetisjon og mer motivasjon. Forelesning 23: Grafteori.

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

Detaljer

Kompleksitet og Beregnbarhet

Kompleksitet og Beregnbarhet Kompleksitet og Beregnbarhet 16. September, 2019 Institutt for Informatikk 1 Dagens plan Avgjørelsesproblemer. P EXPTIME NP Reduksjoner NP-kompletthet Uavgjørbarhet UNDECIDABLE DECIDABLE PSPACE NPC NP

Detaljer

Rettede, ikke-sykliske grafer (DAG)

Rettede, ikke-sykliske grafer (DAG) Rettede, ikke-sykliske grafer (DAG) Dersom vi vet at grafen ikke inneholder løkker, kan vi lage en forbedret versjon av Dijkstras algoritme ved å forandre metoden for å velge neste kjente node. Den nye

Detaljer

Grafteori. MAT1030 Diskret Matematikk. Repetisjon og mer motivasjon. Repetisjon og mer motivasjon. Forelesning 23: Grafteori.

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

Detaljer

Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer

Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer Eksamensdato 13. august 2012 Eksamenstid 0900 1300 Sensurdato 3. september Språk/målform Bokmål Kontakt under eksamen Magnus Lie Hetland (tlf.

Detaljer

Notater til INF2220 Eksamen

Notater 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

Detaljer

MAT1030 Diskret Matematikk

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

Detaljer

Eksamen i tdt4120 Algoritmer og datastrukturer

Eksamen i tdt4120 Algoritmer og datastrukturer Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap Side 1 av 5 Oppgavestillere: Magnus Lie Hetland Jon Marius Venstad Kvalitetskontroll: Magnar Nedland Faglig

Detaljer

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

Lø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

Detaljer

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

Løsnings forslag i java In115, Våren 1999 Løsnings forslag i java In115, Våren 1999 Oppgave 1a Input sekvensen er: 9, 3, 1, 3, 4, 5, 1, 6, 4, 1, 2 Etter sortering av det første, midterste og siste elementet, har vi følgende: 2, 3, 1, 3, 4, 1,

Detaljer

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

Studentnummer: Side 1 av 1. Løsningsforslag, Eksamen i TDT4120 Algoritmer og datastrukturer August 2005 Studentnummer: Side 1 av 1 Løsningsforslag, Eksamen i TDT4120 Algoritmer og datastrukturer August 2005 Faglige kontakter under eksamen: Magnus Lie Hetland, Arne Halaas Tillatte hjelpemidler: Bestemt enkel

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i Eksamensdag: 12. desember 2008 Tid for eksamen: 9.00 12.00 Oppgavesettet er på 7 sider. Vedlegg: Tillatte hjelpemidler: INF2220

Detaljer

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

En litt annen måte å forklare traversering på. Traversering En litt annen måte å forklare traversering på Traversering 2 def walk(g, s): # Walk the graph from node s P, Q = dict(), set() # Predecessors + "to do" queue P[s] = None # s has no predecessor Q.add(s)

Detaljer

København 20 Stockholm

København 20 Stockholm UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i IN 115 Algoritmer og datastrukturer Eksamensdag: 26. mai 2001 Tid for eksamen: 9.00 15.00 Oppgavesettet er på 7 sider. Vedlegg:

Detaljer

MAT1030 Forelesning 23

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

Detaljer

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

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

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO BOKMÅL Eksamen i : UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet INF1020 Algoritmer og datastrukturer Eksamensdag : Fredag 15. desember 2006 Tid for eksamen : 15.30 18.30 Oppgavesettet

Detaljer

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.

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. 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

Detaljer

Sensorveiledning/løsningsforslag IN2010/INF2220 Algoritmer og datastrukturer H2018 Ragnhild Kobro Runde, Stein Michael Storleer, Ingrid Chieh Yu

Sensorveiledning/løsningsforslag IN2010/INF2220 Algoritmer og datastrukturer H2018 Ragnhild Kobro Runde, Stein Michael Storleer, Ingrid Chieh Yu Sensorveiledning/løsningsforslag IN2010/INF2220 Algoritmer og datastrukturer H2018 Ragnhild Kobro Runde, Stein Michael Storleer, Ingrid Chieh Yu Generell informasjon Alle besvarelser rettes av to sensorer.

Detaljer

MAT1140: Kort sammendrag av grafteorien

MAT1140: Kort sammendrag av grafteorien MAT1140, H-15 MAT1140: Kort sammendrag av grafteorien Dette notatet gir en kort oppsummering av grafteorien i MAT1140. Vekten er på den logiske oppbygningen, og jeg har utelatt all motivasjon og (nesten)

Detaljer

Øvingsforelesning 2 - TDT4120. Grafer og hashing. Benjamin Bjørnseth

Øvingsforelesning 2 - TDT4120. Grafer og hashing. Benjamin Bjørnseth Øvingsforelesning 2 - TDT4120 Grafer og hashing Benjamin Bjørnseth Informasjon Studasser algdat@idi.ntnu.no Program Presentasjon av øving 2 Grafer og traverseringsalgoritmer BFS, DFS Hashing Gjennomgang

Detaljer

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer Eksamensoppgave i TDT4120 Algoritmer og datastrukturer Faglig kontakt under eksamen Magnus Lie Hetland Tlf.!! 91851949 Eksamensdato! 15. august 2013 Eksamenstid (fra til)! 0900 1300 Hjelpemiddelkode D.

Detaljer

EKSAMEN. Algoritmer og datastrukturer. Eksamensoppgaven: Oppgavesettet består av 11 sider inklusiv vedlegg og denne forsiden.

EKSAMEN. Algoritmer og datastrukturer. Eksamensoppgaven: Oppgavesettet består av 11 sider inklusiv vedlegg og denne forsiden. EKSAMEN Emnekode: ITF20006 Emne: Algoritmer og datastrukturer Dato: Eksamenstid: 20. mai 2008 kl 09.00 til kl 13.00 Hjelpemidler: 4 A4-sider (2 ark) med valgfritt innhold Kalkulator Faglærer: Mari-Ann

Detaljer

Dijkstras algoritme Spørsmål

Dijkstras 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-

Detaljer

LO118D Forelesning 9 (DM)

LO118D Forelesning 9 (DM) LO118D Forelesning 9 (DM) Grafteori 26.09.2007 1 Introduksjon 2 Veier og sykler 3 Hamiltonsykler og omreisende handelsmenn Graf, urettet Definisjon En graf (eller urettet graf) G består av en mengde V

Detaljer

Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer

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.

Detaljer

MAT1030 Diskret Matematikk

MAT1030 Diskret Matematikk MAT1030 Diskret Matematikk Forelesning 26: Trær Roger Antonsen Institutt for informatikk, Universitetet i Oslo 5. mai 2009 (Sist oppdatert: 2009-05-06 22:27) Forelesning 26 MAT1030 Diskret Matematikk 5.

Detaljer

Oppgave 1. Sekvenser (20%)

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

Detaljer

Magnus Moan (Undertegnede) Enkle datastrukturer, trær, traversering og rekursjon

Magnus 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

Detaljer

Minimum Spenntrær - Kruskal & Prim

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

Detaljer

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

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

Detaljer

Grafalgoritmer: Korteste vei

Grafalgoritmer: 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

Detaljer

Algdat - øvingsforelesning

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

Detaljer

Innhold uke 10. Objektorientert programmering i Python. Oblig 7 og 8. IN1000 Seminar! IN1000 Høst 2018 uke 10 Siri Moe Jensen

Innhold uke 10. Objektorientert programmering i Python. Oblig 7 og 8. IN1000 Seminar! IN1000 Høst 2018 uke 10 Siri Moe Jensen Innhold uke 10 Hva bruker vi klasser til? Objektorientert programmering i Python IN1000 Høst 2018 uke 10 Siri Moe Jensen Noen sentrale datastrukturer for programmering lenkede lister trær grafer Eksempler:

Detaljer

GRAF-TRAVERSERING. Hvordan utforske en labyrint uten å gå seg vill. Rekkefølge på kanter: Dybde-Først Søk A B C D E F G H I J K L M N O P

GRAF-TRAVERSERING. Hvordan utforske en labyrint uten å gå seg vill. Rekkefølge på kanter: Dybde-Først Søk A B C D E F G H I J K L M N O P R-TRVRSRIN ybde-ørst Søk redde-ørst Søk ruk av MetodeMal som designmønster (Template Method Pattern H Hvordan utforske en labyrint uten å gå seg vill. t dybde-først søk (S) i en urettet graf er som å vandre

Detaljer