INF Algoritmer og datastrukturer
|
|
|
- Per Aamodt
- 9 år siden
- Visninger:
Transkript
1 INF 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
2 Dagens plan: Definisjon av en graf Grafvarianter Intern representasjon av grafer Topologisk sortering Korteste vei en-til-alle uvektet graf M.A.W. Data Structures and Problem Solving kap. 14 M.A.W. Data Structures and Algorithm Analysis kap. 9 Bjarne Holen (Ifi, UiO) INF2220 H2009, forelesning 6 2 / 31
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! Bjarne Holen (Ifi, UiO) INF2220 H2009, forelesning 6 3 / 31
4 Grafer vi har sett allerede Labyrint Bjarne Holen (Ifi, UiO) INF2220 H2009, forelesning 6 4 / 31
5 Grafer vi har sett allerede Trær A B C D E F G H I J Bjarne Holen (Ifi, UiO) INF2220 H2009, forelesning 6 5 / 31
6 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 Bjarne Holen (Ifi, UiO) INF2220 H2009, forelesning 6 6 / 31
7 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 Bjarne Holen (Ifi, UiO) INF2220 H2009, forelesning 6 6 / 31
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 Bjarne Holen (Ifi, UiO) INF2220 H2009, forelesning 6 6 / 31
9 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) Bjarne Holen (Ifi, UiO) INF2220 H2009, forelesning 6 6 / 31
10 Hvorfor grafer? De dukker opp i veldig mange problemer i hverdagslivet: Flyplassystemer Datanettverk Trafikkflyt Ruteplanlegging VLSI (chip design) og mange flere... Bjarne Holen (Ifi, UiO) INF2220 H2009, forelesning 6 7 / 31
11 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 Bjarne Holen (Ifi, UiO) INF2220 H2009, forelesning 6 7 / 31
12 Grafer: Definisjoner og varianter Node y er nabo-node (eller etterfølger) til node x dersom (x, y) E Bjarne Holen (Ifi, UiO) INF2220 H2009, forelesning 6 8 / 31
13 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 Bjarne Holen (Ifi, UiO) INF2220 H2009, forelesning 6 8 / 31
14 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 Bjarne Holen (Ifi, UiO) INF2220 H2009, forelesning 6 9 / 31
15 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 z <z, w, x> er en vei med lengde 2 w Bjarne Holen (Ifi, UiO) INF2220 H2009, forelesning 6 9 / 31
16 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 Bjarne Holen (Ifi, UiO) INF2220 H2009, forelesning 6 9 / 31
17 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 Bjarne Holen (Ifi, UiO) INF2220 H2009, forelesning 6 9 / 31
18 Våre grafer har vanligvis ikke loops, (v, v), eller multikanter (to like kanter): Bjarne Holen (Ifi, UiO) INF2220 H2009, forelesning 6 10 / 31
19 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 Bjarne Holen (Ifi, UiO) INF2220 H2009, forelesning 6 10 / 31
20 En rettet graf er asyklisk dersom den ikke har noen løkker En rettet, asyklisk graf blir ofte kalt en DAG (Directed, Acyclic Graf) Bjarne Holen (Ifi, UiO) INF2220 H2009, forelesning 6 11 / 31
21 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 Bjarne Holen (Ifi, UiO) INF2220 H2009, forelesning 6 11 / 31
22 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 Bjarne Holen (Ifi, UiO) INF2220 H2009, forelesning 6 12 / 31
23 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 Bjarne Holen (Ifi, UiO) INF2220 H2009, forelesning 6 13 / 31
24 Hvordan representere grafer? Bjarne Holen (Ifi, UiO) INF2220 H2009, forelesning 6 14 / 31
25 Hvordan representere grafer? Kan organisere strukturen etter noder og/eller etter kanter... Bjarne Holen (Ifi, UiO) INF2220 H2009, forelesning 6 14 / 31
26 Hvordan representere grafer? Kan organisere strukturen etter noder og/eller etter kanter... Merk: Boka benytter eksplisitte datastrukturer for kantene. Dette gir (ofte) effektivitetsgevinst. For enkelhets skyld gjør vi ikke det på foilene... Bjarne Holen (Ifi, UiO) INF2220 H2009, forelesning 6 14 / 31
27 Nabo-matrise (adjacency matrix) Bra hvis tett graf, dvs. E = Θ( V 2 ) Det tar O( V ) tid å finne alle naboer Bjarne Holen (Ifi, UiO) INF2220 H2009, forelesning 6 15 / 31
28 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! Bjarne Holen (Ifi, UiO) INF2220 H2009, forelesning 6 16 / 31
29 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 Bjarne Holen (Ifi, UiO) INF2220 H2009, forelesning 6 17 / 31
30 class Node { int antallnaboer ; Node [ ] e t t e r f ; double [ ] vekt ; } Node( int kapasitet ) { e t t e r f = new Node [ kapasitet ] ; vekt = new double [ kapasitet ] ; antallnaboer = 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 Bjarne Holen (Ifi, UiO) INF2220 H2009, forelesning 6 18 / 31
31 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 Vanligvis er det flere mulige løsninger Bjarne Holen (Ifi, UiO) INF2220 H2009, forelesning 6 19 / 31
32 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 Vanligvis er det flere mulige løsninger Eksempel: forutsetter/bygger på graf MA100/ MA001 IN105 IN102 IN115 IN114 En liten del av Ifis kursplan i 1999 IN212 IN394 En topologisk sortering er en lovlig rekkefølge å ta alle kursene på Ifi i MA108 MA IN 118 IN147 IN211 IN210 IN310 Bjarne Holen (Ifi, UiO) INF2220 H2009, forelesning 6 19 / 31
33 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: Bjarne Holen (Ifi, UiO) INF2220 H2009, forelesning 6 20 / 31
34 Algoritme for topologisk sortering void topsort () { Node v ; for ( int 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 funnet! ) ; } } } else { < Skriv ut v som node t e l l e r > for < hver nabo w t i l v > { w. inngrad ; } } 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 Bjarne Holen (Ifi, UiO) INF2220 H2009, forelesning 6 21 / 31
35 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. Bjarne Holen (Ifi, UiO) INF2220 H2009, forelesning 6 22 / 31
36 Forbedret algoritme void topsort () { Kø k = new Kø ( ) ; Node v ; int t e l l e r = 0; for < hver node v > i f ( v. inngrad == 0) k. s e t t I n n ( v ) ; while (! k. isempty ()) { v = k. taut ( ) ; < Skriv ut v >; t e l l e r ++; } for < hver nabo w t i l v > { w. inngrad ; i f (w. inngrad == 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 funnet! ) ; Bjarne Holen (Ifi, UiO) INF2220 H2009, forelesning 6 23 / 31
37 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 én gang. Bjarne Holen (Ifi, UiO) INF2220 H2009, forelesning 6 24 / 31
38 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. Bjarne Holen (Ifi, UiO) INF2220 H2009, forelesning 6 25 / 31
39 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). (Vi skal senere se på korteste vei alle-til-alle, slik som i NAFs veibok) Bjarne Holen (Ifi, UiO) INF2220 H2009, forelesning 6 25 / 31
40 Negative vekter (kost) i løkker kan skape problemer: x 12 y 5 5 Hvor mye koster korteste vei fra x til z? z Bjarne Holen (Ifi, UiO) INF2220 H2009, forelesning 6 26 / 31
41 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) Bjarne Holen (Ifi, UiO) INF2220 H2009, forelesning 6 27 / 31
42 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 Finn alle umarkerte etterfølgere til nodene som er på avstand 1. Marker disse med avstand Finn alle umarkerte etterfølgere til nodene som er på avstand 2. Marker disse med avstand 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. Bjarne Holen (Ifi, UiO) INF2220 H2009, forelesning 6 28 / 31
43 Vi kan finne den korteste veien ved å sette bakoverpekere ( vei ) til den noden som oppdaget oss void uvektet (Node s ) { for < hver node v > { v. avstand = UENDELIG; v. kjent = f a l s e ; } s. avstand = 0; } for ( int d i s t = 0; d i s t < ANTALL NODER; d i s t++) { for < hver node v > { i f (! v. kjent && v. avstand == d i s t ) { v. kjent = true ; for < hver nabo w t i l v > { i f (w. avstand == UENDELIG) { w. avstand = d i s t + 1; w. vei = v ; } } } } } Bjarne Holen (Ifi, UiO) INF2220 H2009, forelesning 6 29 / 31
44 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 ). Bjarne Holen (Ifi, UiO) INF2220 H2009, forelesning 6 30 / 31
45 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). Bjarne Holen (Ifi, UiO) INF2220 H2009, forelesning 6 30 / 31
46 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 én gang. Bjarne Holen (Ifi, UiO) INF2220 H2009, forelesning 6 30 / 31
47 Korteste uvektet vei fra node s void uvektet (Node s ) { Kø k = new Kø ( ) ; Node v ; for < hver node n > n. avstand = UENDELIG; s. avstand = 0; k. s e t t I n n ( s ) ; while (! k. isempty ()) { v = k. taut ( ) ; for < hver nabo w t i l v > { i f (w. avstand == UENDELIG) { w. avstand = v. avstand + 1; w. vei = 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 én gang. Bjarne Holen (Ifi, UiO) INF2220 H2009, forelesning 6 31 / 31
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
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
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
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
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
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
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
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.
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
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
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
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
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
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.
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
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
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
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
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
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
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!
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
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.
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 å
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
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:
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
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
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
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
Alg. Dat. Øvingsforelesning 3. Grafer, BFS, DFS og hashing. Børge Rødsjø [email protected]
Alg. Dat Øvingsforelesning 3 Grafer, BFS, DFS og hashing Børge Rødsjø [email protected] Dagens tema Grafer Terminologi Representasjon av grafer Bredde først søk (BFS) Dybde først søk (DFS) Hashing Hashfunksjoner,
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
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
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,
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
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
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
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
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
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
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
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
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?
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
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
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-
Algoritmer og datastrukturer Løsningsforslag
1 Algoritmer og datastrukturer Løsningsforslag Eksamen 29. november 2011 Oppgave 1A Verdien til variabelen m blir lik posisjonen til den «minste»verdien i tabellen, dvs. bokstaven A, og det blir 6. Oppgave
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
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 ([email protected])
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
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.
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
Maps og Hashing. INF Algoritmer og datastrukturer. Map - ADT. Map vs Array
Maps og Hashing INF0 - Algoritmer og datastrukturer HØSTEN 00 Institutt for informatikk, Universitetet i Oslo INF0, forelesning : Maps og Hashing Map - Abstrakt Data Type Hash-funksjoner hashcode Kollisjonshåndtering
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
Algoritmer og Datastrukturer
Eksamen i Algoritmer og Datastrukturer IAI 21899 Høgskolen i Østfold Avdeling for informatikk og automatisering Lørdag 15. desember 2001, kl. 09.00-14.00 Hjelpemidler: Alle trykte og skrevne hjelpemidler.
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
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)
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:
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
INF Algoritmer og datastrukturer
INF2220 - Algoritmer og datastrukturer HØSTEN 2009 Institutt for informatikk, Universitetet i Oslo INF2220, forelesning 3: Maps og Hashing Bjarne Holen (Ifi, UiO) INF2220 H2009, forelesning 3 1 / 25 Maps
Obligatorisk oppgave 2 - inf
Obligatorisk oppgave 2 - inf2220 2007 Frist: fredag 9. november Det er mulig å jobbe sammen to og to på denne oppgaven, helst bør dere da ha samme gruppelærer. Vi anbefaler dere å løse oppgaven selvstendig.
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
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
MAT1030 Diskret matematikk
MAT1030 Diskret matematikk Forelesning 33: Repetisjon Dag Normann Matematisk Institutt, Universitetet i Oslo 26. mai 2008 Innledning Onsdag 21/5 gjorde vi oss ferdige med det meste av den systematiske
Innledning. MAT1030 Diskret matematikk. Kapittel 11. Kapittel 11. Forelesning 33: Repetisjon
Innledning MAT1030 Diskret matematikk Forelesning 33: Repetisjon Dag Normann Matematisk Institutt, Universitetet i Oslo 26. mai 2008 Onsdag 21/5 gjorde vi oss ferdige med det meste av den systematiske
Eksamen 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:
Ø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
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
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
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
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:
Dagens tema. INF Algoritmer og datastrukturer. Binærtrær. Generelle trær
Dagens tema INF2220 - Algoritmer og datastrukturer HØSTEN 2007 Institutt for informatikk, Universitetet i Oslo INF2220, forelesning 2: Binærtrær og abstrakte datatyper (ADT) Kort repetisjon Generelle trær
INF1010 LISTER. Listeelementer og listeoperasjoner. Foran. Bak
LISTER Vanligste datastruktur Mange implementasjonsmåter (objektkjeder, array...) Operasjoner på listen definerer forskjellige typer lister (LIFO, FIFO,...) På norsk bruker vi vanligvis ordet «liste» for
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
EKSAMEN. 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
Forelesning 33. Repetisjon. Dag Normann mai Innledning. Kapittel 11
Forelesning 33 Repetisjon Dag Normann - 26. mai 2008 Innledning Onsdag 21/5 gjorde vi oss ferdige med det meste av den systematiske repetisjonen av MAT1030. Det som gjensto var kapitlene 11 om trær og
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
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.
1 Hver node er enten rød eller sort. 2 Rota er sort. 3 En rød node kan bare ha sorte barn
Oppgave 2 INF2220 Algoritmer og datastrukturer Forelesning 15: Gjennomgang av eksamen vår 2006 Arild Waaler Institutt for informatikk, Universitetet i Oslo 24. november 2008 Oppgave 2 oppgavetekst Fra
