Choices, choices. Tiende forelesning. Dynamisk programmering: En serie med valg der valgmulighetene er avhengige av hva vi har valgt før.
|
|
- Halvor Antonsen
- 7 år siden
- Visninger:
Transkript
1 Choices, choices Tiende forelesning Dynamisk programmering: En serie med valg der valgmulighetene er avhengige av hva vi har valgt før. DAG- SP er erkeeksemplet (og den underliggende modellen for all DP). 1
2 Hvordan finner vi den lengste stigende subsekvensen?
3 w(q a, q b, s c, s d ) = { is a scaling factor, used to account for es, and t(s i ) is the timestamp for the given note s n a query q and a tune s can then be defined as d(q, s) = min{d(q, s, i)}. (3 i Det finnes 2 n -1 mulige subsekvenser. Vi ønsker å finne den lengste stigende i polynomisk tid a given alignment i, d(q, s, i) is minimized by choosing as m j=2 = (t(s i j ) t(s ij 1 ))(t(q j ) t(q j 1 )) m i=2 (t(s. (4) i j ) t(s ij 1 )) 2 Vi kan også f.eks. sette en maks-grense på «hoppene». Since the optimal value for is given as a function of the alignment i, the optimization task in (3) becomes a matter of finding an optimal alignment. Assuming, for now, that the value of is known, the optimization may be expressed recursively as follows: d(q 1:a, s 1:b ) = min{d(q 1:a 1, s 1:c ) + w(q a 1, q a, s c, s b ) 2 } c (Dette minner bl.a. om en algoritme for musikksøk ) 3 nd s 1:b are prefixes of q and s, of length a and b, respectively. ay be solved iteratively, by dynamic programming (Be mply consists of constructing a two-dimensi partial solutions, and iterating over ) for examples of the same distance (edit dis n of th
4 Dette er en enkel løsning men hvordan virker den egentlig? Vi kommer tilbake til saken (Det finnes også en mer effektiv løsning, med kjøretid O(n*log(n)) for i = 1 n for j = i 1 if A[i] > A[j] L[i] max(l[i], L[j]+1) 4
5 reduksjon rekursjon dekomp. induksjon gjenbruk travers. Dynamisk programmering 5
6 reduksjon rekursjon dekomp. induksjon gjenbruk travers. Dynamisk programmering 6
7 Ha DAG-SP i bakhodet! Relax inn fra forg jengere, i topologisk sortert rekkefølge. «Oppskrift» på dynamisk programmering. 1. Karakteriser strukturen til en optimal løsning. 2. Definér verdien til en optimal løsning rekursivt. 3. Beregn den optimale verdien «bottom-up», og ta vare på del-løsninger. struktur definisjon 4. Beregn løsningen som ga den optimale verdien. Memoisering (merk: bare én «r»): Kjør rekursjonen direkte, men lagre delløsninger (og bruk dem i stedet for rekursjon, om mulig). beregning løsning 7
8 Kjent? 8
9 Erke- Eksempel «DAG-Shortest-Path» 9
10 Erke- e s Ek l e p m Dijkstra blir ganske likt, bare at vi har litt grådighet i tillegg (og at den topologiske ordningen må jukses til litt). forgjengere minimum topsort, relax tilbakesporing Tilbakesporingen g jøres ved at vi setter en forg jenger i en forg jentertabell hver gang vi endrer minimum i dollar-fasen. Standardløsning. «DAG-Shortest-Path» 10
11 Eksempel Floyd-Warshall 11
12 Ek s l e p em innom hvem? min(med, uten) innom 1, 2, tilbakesporing Floyd-Warshall 12
13 Noen nye Går ikke igjennom samlebåndseksemplet fra Cormen her. Viktig, på mange måter, siden det er «typisk DP» men det er egentlig bare DAG-SP, som vi jo har snakket om en del fra før. 13
14 Eksempel 0/1 Ryggsekkproblemet 14
15 $60 $100 $120 15
16 30 $ $ $ $ $60 10 $60 16
17 Delproblemparametre: Hvor stor plass har vi (igjen)? Hvor mange objekter har vi (igjen)? På sett og vis litt som Floyd-Warshall: Hvilke objekter får vi bruke? (Men også: Hvor mye plass får vi bruke?) 17
18 0 c[i, w] = c[i 1, w] max{vi + c[i 1, w wi ], c[i 18 1, w]} if i = 0 or w = 0 if wi > w if i > 0 and w wi
19 DP-01K(v, w, n, W) for k 0 W c[0, k] 0 for i 1 n c[i, 0] 0 for k 1 W if w[i] k if v[i] + c[i 1, k w[i]] > c[i 1, k] c[i, k] v[i] + c[i 1, k w[i]] else c[i, k] c[i 1, k] else c[i, k] c[i 1, k] 19
20 Som før: Ta vare på valg i hver rute Nøst deg bakover fra siste rute 20
21 Pseudopolynomisk kjøretid: Polynomisk avhengig av verdien til et heltall som er en del av instansen altså egentlig eksponentiell som funksjon av problemstørrelsen (målt i lagringsplass). Dette er verdt å ha med seg når vi ser på NP-kompletthet. Problemet er NPkomplett, og ingen kjenner noen polynomiske løsninger på slike problemer så da hadde det jo vært rart om kjøretiden var polynomisk :-) Kjøretid: O(nW) Lett å gå seg bort i disse tingene. Pseudopolynomiske algoritmer kan faktisk være ganske effektive i praksis, f.eks. for rimelige verdier av W i dette tilfellet. Ikke polynomisk pseudopolynomisk! Hvis m = lg W er problemstørrelsen O(n + m) og kjøretiden O(n2 m ) 21
22 Ek s l e p em Optimale søketrær 22
23 Optimaliseringskriteriet blir den vektede (med vekt p_i) summen av dybdene (+1) til nøklene k_i. K = [k 1,, kn], k1 < k2 < < kn Vil bygge et binært søketre over K Sannsynlighet p i for søk etter ki Vil minimere forventet søkekostnad Antar at alle søk lykkes. 23
24 Forventet søketid: ( ) ( ) 24
25 Forventet søketid: (Optimalt.) Merk: Ikke sikkert vi vil ha minimal høyde. Heller ikke sikkert den høyeste sannsynligheten ender i rota. ( ) ( ) 25 Brute force: Bygg alle mulige binære søketrær (BST), og sett inn nøklene. Beregn forventet søkekostnad. Velg beste. Men det er Ω(4 n /n 3/2 ) BST-er med n noder.
26 Hvis T inneholder nøklene ki kj så må T være optimalt for disse nøklene vises lett ved selvmotsigelse. < <> 26
27 : & Hvis vi antar at rota inneholder kr (som en hypotese) så vil alle k<kr være til venstre (og tilsv. for høyre). Begge deltrær må (som nevnt i forrige foil) være optimale for de gitte nøklene. Hvis vi undersøker alle k = ki kj som mulige røtter, og har (og løser problemet rekursivt) så er vi garantert å finne den optimale løsningen for ki kj! : 6 : &?1 : &+1 : ; 27
28 But w(8, ; ) = w(8, * 1) + 2* + w(* + 1, ; ). Hvis j = i 1 er treet tomt. Therefore, &[8, ; ] = &[8, * 1] + &[* + 1, ; ] + w(8, ; ). e[i, j] er for ventet kostnad for optimalt BST over ki kj. This equation assumes that we already know which key is <*. We don t. Try all candidates, and pick the best one:! 0 if ; = 8 1, &[8, ; ] = min {&[8, * 1] + &[* + 1, ; ] + w(8, ; )} if 8 ;. 8 * ; Could write a recursive algorithm... As usual, we ll store the values in a table: Vi legger til w(i, j) (dvs. alle p-ene legges til én gang) fordi høyden til alle noder i deltrærne øker med én. w(i, j) er summen av pi pj &[ "1.. #$ 6 + 1%, 0" #$.. 6% ] 28
29 [trekk pusten dypt] 29
30 OPTIMAL-BST( 2, >, 6) &[8, 8 1] 0 w[8, 8 1] 0? ? + 1 ; 8 +? 1 &[8, ;] w[8, ;] w[8, ; 1] + 2 ; * 8 ; Kubisk kjøretid. return & and *,,( l (liten L) i hovedløkken er størrelsen på deltrærne vi beregner. i er start og j er slutt for nøklene i det aktuelle deltreet. ( &[8, * 1] + &[* + 1, ;] + w[8, ;] ( < &[8, ;] &[8, ;] ( *,,([8, ;] * 30
31 CONSTRUCT-OPTIMAL-BST(&(($) & &(($[1, 4] print? & is the root CONSTRUCT-OPT-SUBTREE(1, & 1, &, left, &(($) CONSTRUCT-OPT-SUBTREE(& + 1, 4, &, right, &(($) CONSTRUCT-OPT-SUBTREE(6, <, &(($) 6 < $ &(($[6, <] print? $ child of? & CONSTRUCT-OPT-SUBTREE(6, $ 1, $, left, &(($) CONSTRUCT-OPT-SUBTREE($ + 1, <, $, right, &(($) 31
32 Eksempel Longest Common Subsequence. Finner en felles subsekvens hos to sekvenser. Lengden kan brukes som et likhetsmål. Denne type algoritmer er vanlig i bioinformatikk og informasjonsgjenfinning. LCS 32
33 33 Dette er jo mer greatest common subset, også kjent som snitt/ intersection som det jo er trivielt å regne ut i lineær tid vha. f.eks. hashing :-)
34 34
35 Noen eksempler. En Brute Forceløsning vil ha en kjøretid på Θ(n2^m) ser du hvorfor? s p r i n g t i m e h o r s e b a c k p i o n e e r s n o w f l a k e m a e l s t r o m h e r o i c a l l y b e c a l m Merk: John Stewarteksemplet ser bare på snittet av bokstavmengdene et mye enklere problem (som lett kan løses i lineær tid vha. f.eks. hashing). 35 s c h o l a r l y
36 X i = [x1,, xi], Yi = [y1,, yi] X = X m, Y = Yn Z = [z 1,, zk] er en LCS av X og Y 36
37 Hvis de ikke deler siste element kan LCS-en utvides en selvmotsigelse. Hvis x m = yn: z k = xm = yn og Z k 1 er en LCS av Xm 1 og Yn 1 Det samme gjelder her hvis Xm-1 og Yn-1 har en lenger felles subsekvens så kan vi finne en lenger total felles subsekvens enn Z igjen en selvmotsigelse. 37
38 Hvis xm yn og zk xm: I begge tilfeller må Z være en felles subsekvens. Hvis det eksisterte en som var lenger vil den også være lenger totalt en selvmotsigelse. Z er en LCS av X m 1 og Y Hvis xm yn og zk yn: Z er en LCS av X og Y n 1 38
39 c[i,j] er lengden på en LCS av Xi og Yj., =, = =,, > =,, =, + (,,, ), > " =. 39 Enten er xi og yj like eller ikke. Hvis de er det skal xi=yj=zk være med. Ellers vil Z være en LCS enten av Xi-1 og Y eller av X og Yj-1. Vi vet ikke hvilken, men prøver begge og velger den største.
40 Rekursjon? Enten vi gjør det rekursivt eller iterativt: Legg svarene i en tabell. 40
41 (,,, ),, =,, +,,,,,,,,, I b-tabellen lagrer vi en referanse til hvor vi «kom fra». 41
42 42
43 X nedover til venstre, Y bortover på toppen. Nedoverpil: Dropp en bokstav fra X vekt 0. Bortoverpil: Dropp en bokstav fra Y vekt 0. Skråpil: Ta med bokstav fra X/Y: Vekt 1. Finn lengste vei fra øverst t.v. til nederst t.h. Dette er rett og slett DAG Shortest Path (eller Longest Path, da som jo blir like lett for DAG-er). 43
44 (,,, ) = =, = (,,, ), = (,,, ) (,,, ) 44
45 Egenskaper bak DP Optimal substruktur: En optimal løsning bygger på optimale løsninger på delproblemer Overlappende delproblemer: Fordi flere problemer deler delproblemer lønner det seg å lagre dem 45 Korteste vei? Har begge deler. Lengste vei (uten sykler)? Har ikke optimal substruktur Hvis vi ikke har overlappende delproblemer *kan* vi bruke DP, men det er egentlig ingen vits det blir bare splitt-og-hersk med unødvendig lagring av delproblemer.
46 ! 46
47 < 2 Korteste vei oppdeling i delproblemer som må optimaliseres. Korteste veier består av korteste del-veier. 47
48 A * Lengste vei. Betrakt q-r-t, en maksimal sti fra q til t. Består den av lengste vei fra q til r og fra r til t? *Nei*! Vi kan ikke bruke DP (og har ingen annen god løsning heller). - ( 48
49 Og så var det denne, da
50 for i = 1 n for j = i 1 if A[i] > A[j] L[i] max(l[i], L[j]+1) A L For hvert element, let bakover etter lovlige forgjengere. (Å lete bakover er nyttig hvis vi vil begrense spranglengden.) Delproblemene er lengste subsekvens som slutter på en gitt posisjon, og det er disse vi bruker når vi leter bakover. (Vi kan også lagre hva vi valgte dvs. hva som er forgjengeren, altså pilene i figuren.) 50
51 Kan du finne en subkvadratisk løsning? Hint: Binærsøk 51
Choices, choices. Tiende forelesning. Dynamisk programmering: En serie med valg der valgmulighetene er avhengige av hva vi har valgt før.
Choices, choices Tiende forelesning Dynamisk programmering: En serie med valg der valgmulighetene er avhengige av hva vi har valgt før. DAG- SP er erkeeksemplet (og den underliggende modellen for all DP).
DetaljerA new study has found that cockroaches are morons in the morning and geniuses in the evening in terms of their learning capacity.
A new study has found that cockroaches are morons in the morning and geniuses in the evening in terms of their learning capacity. Previous studies suggest that the learning capacity of both people and
DetaljerLive life and be merry
Om grådighet og først litt mer DP. Live life and be merry Ellevte forelesning for tomorrow you may catch some disgusting skin disease. [Edmund Blackadder] D&C Bellman-Ford BFS/DFS Binære søketrær LP Binærsøk
DetaljerLive life and be merry
Om grådighet og først litt mer DP. Live life and be merry Ellevte forelesning for tomorrow you may catch some disgusting skin disease. [Edmund Blackadder] 1 Litt repetisjon 2 Eksempel Longest Common Subsequence.
DetaljerAlle mot alle. Åttende forelesning. (eller eller Bellman-Ford, eller BFS, alt ettersom) fra alle noder.
Enkel alle-til-allealgoritme: Kjør Dijkstra (eller eller Bellman-Ford, eller BFS, alt ettersom) fra alle noder. Kan fungere for spinkle grafer blir dyrt ellers. Alle mot alle Åttende forelesning 1 Dijkstra
DetaljerAlgdat - øvingsforelesning
Algdat - øvingsforelesning Dynamisk programmering Nils Barlaug Dagens plan 1. 2. 3. 4. Praktisk og dagens plan LF øving 8 a. Teori b. Praksis Dynamisk programmering a. Introduksjon b. Rod Cutting c. Matrise-multiplikasjon
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
DetaljerDynamisk programmering Undervises av Stein Krogdahl
Dynamisk programmering Undervises av Stein Krogdahl 5. september 2012 Dagens stoff er hentet fra kapittel 9 i læreboka, samt kapittel 20.5 (som vi «hoppet over» sist) Kapittel 9 er lagt ut på undervisningsplanen.
DetaljerDagens stoff er hentet fra kapittel 9 i læreboka, samt kapittel 20.5 (som vi «hoppet over» sist)
Dynamisk programmering Undervises av Stein Krogdahl 5. september 2012 Dagens stoff er hentet fra kapittel 9 i læreboka, samt kapittel 20.5 (som vi «hoppet over» sist) Kapittel 9 er lagt ut på undervisningsplanen.
DetaljerLongest increasing. subsequence Betingelser. Longest. common subsequence. Knapsack Grådig vs. DP Moro: 2D-Nim Spørsmål. Forside. Repetisjon.
:: :: Dynamisk programmering Eksamenskurs Åsmund Eldhuset asmunde *at* stud.ntnu.no folk.ntnu.no/asmunde/algdat/dp.ppt Svært rask repetisjon Noen ganger (f.eks. ved utregning av Fibonaccitall) vil en rekursiv
DetaljerDynamisk programmering
Dynamisk programmering Metoden ble formalisert av Richard Bellmann (RAND Corporation) på 50-tallet. Programmering i betydningen planlegge, ta beslutninger. (Har ikke noe med kode eller å skrive kode å
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
DetaljerLongest. increasing. subsequence. Betingelser. Matrise- common. Grådig vs. DP. Forside. Intro. Fibonacci-tall. Memoisering DP
og dynamisk Matrisemultiplikasjomultiplikasjon programmering Matrise- Åsmund Eldhuset og Dette er to ganske like teknikker for å lage algoritmer De kan brukes på svært mange tilsynelatende forskjellige
DetaljerDynamisk programmering
Dynamisk programmering Metoden ble formalisert av Richard Bellmann (RAND Corporation) på 5-tallet. Programmering i betydningen planlegge, ta beslutninger. (Har ikke noe med kode eller å skrive kode å gjøre.)
DetaljerALGORITMER OG DATASTRUKTURER
Stud. nr: Side 1 av 6 NTNU Norges teknisk-naturvitenskapelige universitet BOKMÅL Fakultet for informasjonsteknologi, matematikk og elektroteknikk Institutt for datateknikk og informasjonsvitenskap AVSLUTTENDE
DetaljerALGORITMER OG DATASTRUKTURER
Stud. nr: Side 1 av 6 NTNU Norges teknisk-naturvitenskapelige universitet BOKMÅL Fakultet for informasjonsteknologi, matematikk og elektroteknikk Institutt for datateknikk og informasjonsvitenskap AVSLUTTENDE
DetaljerLive life and be merry
Om grådighet og først litt mer DP. Live life and be merry Ellevte forelesning for tomorrow you may catch some disgusting skin disease. [Edmund Blackadder] 1 2 g i t k i s K o rt Grådighet All form for
DetaljerKontinuasjonseksamen i fag SIF8010 Algoritmer og Datastrukturer Torsdag 9. August 2001, kl
Student nr.: Side 1 av 5 Kontinuasjonseksamen i fag SIF8010 Algoritmer og Datastrukturer Torsdag 9. August 2001, kl 0900-1500 Faglig kontakt under eksamen: Arne Halaas, tlf. 73 593442. Hjelpemidler: Alle
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
DetaljerLøsningsforslag for eksamen i fag SIF8010 Algoritmer og Datastrukturer Tirsdag 18. Desember 2000, kl
Student nr.: Side 1 av 5 Løsningsforslag for eksamen i fag SIF8010 Algoritmer og Datastrukturer Tirsdag 18. Desember 2000, kl 0900-1500 Faglig kontakt under eksamen: Arne Halaas, tlf. 73 593442. Hjelpemidler:
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
DetaljerAvsluttende eksamen i TDT4120 Algoritmer og datastrukturer
Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer Eksamensdato 3. desember 2012 Eksamenstid 0900 1300 Sensurdato 3. januar 2013 Språk/målform Bokmål Kontakt under eksamen Magnus Lie Hetland (tlf.
Detaljerfor bare trær Andre forelesning
Formler eller bevis e.l. som er uklare? Si ifra, så kan jeg gå g jennom dem. Forelesningene er ment å være en hjelp til å forstå det man leser i boka ikke «spoon-feeding» av det samme som står der for
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
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
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
DetaljerALGORITMER OG DATASTRUKTURER
Stud. nr: Side 1 av 6 NTNU Norges teknisk-naturvitenskapelige universitet BOKMÅL Fakultet for informasjonsteknologi, matematikk og elektroteknikk Institutt for datateknikk og informasjonsvitenskap LØSNINGSFORSLAG,
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.
DetaljerALGORITMER OG DATASTRUKTURER
Stud. nr: Side 1 av 7 NTNU Norges teknisk-naturvitenskapelige universitet BOKMÅL Fakultet for informasjonsteknologi, matematikk og elektroteknikk Institutt for datateknikk og informasjonsvitenskap AVSLUTTENDE
DetaljerObject [] element. array. int [] tall
Datastrukturer Object [] int [] tall array element 0 1 2 3 4 5 0 1 2 3 4 5 6 7 8 40 55 63 17 22 68 89 97 89 graf lenkeliste graf Object data Node neste Node neste Node neste Node neste Node Node neste
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
DetaljerAlgdat Eksamensforelesning. Nils Barlaug
Algdat Eksamensforelesning Nils Barlaug Eksamen Pensum Eksamen Pensum Oppgaver du har gjort og ting du har lest Eksamen Pensum Oppgave på eksamen Oppgaver du har gjort og ting du har lest Eksamen Pensum
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
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
DetaljerDynamic Programming Longest Common Subsequence. Class 27
Dynamic Programming Longest Common Subsequence Class 27 Protein a protein is a complex molecule composed of long single-strand chains of amino acid molecules there are 20 amino acids that make up proteins
DetaljerLØSNINGSFORSLAG, EKSAMEN I ALGORITMER OG DATASTRUKTURER (IT1105)
Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap Side 1 av 8 Faglig kontakt under eksamen: Magnus Lie Hetland LØSNINGSFORSLAG, EKSAMEN I ALGORITMER OG DATASTRUKTURER
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
DetaljerGrådige algoritmer. Lars Vidar Magnusson Kapittel 16. Aktivitetvelgingsproblemet Huffmankoder
Grådige Algoritmer Lars Vidar Magnusson 12.3.2014 Kapittel 16 Grådige algoritmer Aktivitetvelgingsproblemet Huffmankoder Ideen bak Grådige Algoritmer Ideen bak grådige algoritmer er å løse optimaliseringsproblem
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
DetaljerAvsluttende eksamen i TDT4120 Algoritmer og datastrukturer
Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer Eksamensdato 3. desember 2012 Eksamenstid 0900 1300 Sensurdato 3. januar 2013 Språk/målform Bokmål Kontakt under eksamen Magnus Lie Hetland (tlf.
DetaljerLø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.
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
DetaljerAlgdat Oppsummering, eksamen-ting. Jim Frode Hoff
Algdat Oppsummering, eksamen-ting Jim Frode Hoff November 18, 2012 1 Definisjoner 1.1 Ordliste Problem Probleminstans Iterasjon Asymtpoisk notasjon O(x) kjøretid Ω(x) kjøretid Θ(x) kjøretid T (x) kjøretid
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
DetaljerPensum: 3. utg av Cormen et al. Øvingstime: I morgen, 14:15
http://www.idi.ntnu.no/~algdat algdat@idi.ntnu.no Pensum: 3. utg av Cormen et al. Øvingstime: I morgen, 14:15 b c g a f d e h The pitch drop experiment. Foreløpig kjørt fra 1927 til nå. Åtte dråper har
DetaljerEksamen i fag SIF8010 Algoritmer og Datastrukturer Tirsdag 18. Desember 2000, kl
Student nr.: Side 1 av 5 Eksamen i fag SIF8010 Algoritmer og Datastrukturer Tirsdag 18. Desember 2000, kl 0900-1500 Faglig kontakt under eksamen: Arne Halaas, tlf. 73 593442. Hjelpemidler: Alle kalkulatortyper
Detaljerfor bare trær Andre forelesning
Formler eller bevis e.l. som er uklare? Si ifra, så kan jeg gå g jennom dem. Forelesningene er ment å være en hjelp til å forstå det man leser i boka ikke «spoon-feeding» av det samme som står der for
DetaljerRekursiv programmering
Rekursiv programmering Babushka-dukker En russisk Babushkadukke er en sekvens av like dukker inne i hverandre, som kan åpnes Hver gang en dukke åpnes er det en mindre utgave av dukken inni, inntil man
DetaljerAlgoritmer og Datastrukturer IAI 21899
Eksamen i Algoritmer og Datastrukturer IAI 21899 Høgskolen i Østfold Avdeling for informatikk og automatisering Torsdag 30. november 2000, kl. 09.00-14.00 LØSNINGSFORSLAG 1 Del 1, Binære søketrær Totalt
DetaljerBinære søketrær. Et notat for INF1010 Stein Michael Storleer 16. mai 2013
Binære søketrær Et notat for INF Stein Michael Storleer 6. mai 3 Dette notatet er nyskrevet og inneholder sikkert feil. Disse vil bli fortløpende rettet og datoen over blir oppdatert samtidig. Hvis du
DetaljerFoilene legges ut her:
http://www.idi.ntnu.no/~algdat algdat@idi.ntnu.no Foilene legges ut her: http://www.idi.ntnu.no/~mlh/algdat/footstool Jeg bruker en del opphavsrettslig beskyttede bilder, og vil derfor ikke publisere foilene
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
DetaljerAvsluttende eksamen i TDT4120 Algoritmer og datastrukturer
Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer Eksamensdato 18. august 2011 Eksamenstid 0900 1300 Sensurdato 8. september Språk/målform Bokmål Kontakt under eksamen Magnus Lie Hetland (tlf.
DetaljerSIF8010 ALGORITMER OG DATASTRUKTURER
SIF8010 ALGORITMER OG DATASTRUKTURER KONTINUASJONSEKSAMEN, 1999; LØSNINGSFORSLAG Oppgave 1 (12%) Anta at du skal lage et støtteprogram som umiddelbart skal varsle om at et ord blir skrevet feil under inntasting
DetaljerFra A til B. Syvende forelesning
Fra A til B Syvende forelesning 1 Amøbeproblemet nok en gang. Hva er 1+2+4+ +n/2? 2 Skal la være å trekke frem binærtrefiguren igjen ;-) La oss se på det på en litt annen måte, som passer dagens tema (fra
DetaljerLars Vidar Magnusson
B-Trær Lars Vidar Magnusson 5.3.2014 Kapittel 18 B-trær Standard operasjoner Sletting B-Trær B-trær er balanserte trær som er designet for å fungere bra på sekundære lagringsmedium e.g. harddisk. Ligner
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
DetaljerLars Vidar Magnusson
Binære Søketrær Lars Vidar Magnusson 14.2.2014 Kapittel 12 Binære Søketrær Søking Insetting Sletting Søketrær Søketrær er datastrukturer som støtter mange dynamiske sett operasjoner. Kan bli brukt både
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 &
DetaljerEksamen 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
DetaljerINF1010 Rekursive metoder, binære søketrær. Algoritmer: Mer om rekursive kall mellom objekter Ny datastruktur: binært tre
INF1010 Rekursive metoder, binære søketrær Algoritmer: Mer om rekursive kall mellom objekter Ny datastruktur: binært tre public void skrivutmeg ( ) { System. out. println (navn + " er venn med " + minbestevennheter
DetaljerAnbefalte forkunnskaper Studentene forutsettes å kunne programmere, for eksempel ved å ha tatt TDT4100 Objektorientert programmering.
Anbefalte forkunnskaper Studentene forutsettes å kunne programmere, for eksempel ved å ha tatt TDT4100 Objektorientert programmering. Studentene forutsettes også å ha kunnskaper om funksjoner, logaritmer,
DetaljerINF2220: Time 12 - Sortering
INF0: Time 1 - Sortering Mathias Lohne mathialo Noen algoritmer Vi skal nå se på noen konkrete sorteringsalgoritmer. Gjennomgående i alle eksempler vil vi sortere tall etter tallverdi, men som diskutert
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
DetaljerStudentnummer: 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
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
DetaljerMAT1030 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.
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
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(?):
DetaljerLøsningsforslag til eksamen i fag SIF8010 Algoritmer og Datastrukturer Tirsdag 14. Desember 1999, kl
Student nr.: Side 1 av 7 Løsningsforslag til eksamen i fag SIF8010 Algoritmer og Datastrukturer Tirsdag 14. Desember 1999, kl 0900-1500 Faglig kontakt under eksamen: Arne Halaas, tlf. 73 593442. Hjelpemidler:
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
DetaljerDagens 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
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
DetaljerRepetisjon: Binære. Dagens plan: Rød-svarte trær. Oppgave (N + 1)!
Repetisjon: Binære søketrær Dagens plan: Rød-svarte trær (kap. 12.2) B-trær (kap. 4.7) bstrakte datatyper (kap. 3.1) takker (kap. 3.3) For enhver node i et binært søketre gjelder: lle verdiene i venstre
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
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
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
DetaljerHvorfor sortering og søking? Søking og sortering. Binære søketrær. Ordnet innsetting forbereder for mer effektiv søking og sortering INF1010 INF1010
Hvorfor sortering og søking? Man bør ha orden i dataene umulig å leve uten i informasjonssamfunnet vi blir fort lei av å lete poleksempel internett alt er søking og sortering alternativer til sortering
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
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
DetaljerKap 9 Tre Sist oppdatert 15.03
Kap 9 Tre Sist oppdatert 15.03 Definere et tre som en datastruktur. Definere begreper knyttet til tre. Diskutere mulige implementasjoner av tre Analysere implementasjoner av tre som samlinger. Diskutere
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i : INF 110 Algoritmer og datastrukturer Eksamensdag : Lørdag 8. desember 2001 Tid for eksamen : 09.00-15.00 Oppgavesettet er på
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
DetaljerForelesningsplan. Grådighet. LF Øving 9. Hva er grådighet? Aktivitetsvelger En grådig strategi Grådig eller dynamisk? Knapsack Huffmankoding
1 Grådighet 2 Forelesningsplan Grådighet Hva er grådighet? Aktivitetsvelger En grådig strategi Grådig eller dynamisk? Knapsack Huffmankoding LF Øving 9 Teori Praksis 3 Forelesningsplan Grådighet Hva er
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 0. desember, 08 Eksamenstid
DetaljerUNIVERSITETET 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
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 9. august, 07 Eksamenstid
DetaljerTrær. En datastruktur (og abstrakt datatype ADT)
Trær Trær En datastruktur (og abstrakt datatype ADT) Trær En datastruktur (og abstrakt datatype ADT) En graf som 8lfredss8ller bestemte krav Object [] int [] tall array element 0 1 2 3 4 5 0 1 2 3 4 5
DetaljerLO118D Forelesning 2 (DM)
LO118D Forelesning 2 (DM) Kjøretidsanalyse, matematisk induksjon, rekursjon 22.08.2007 1 Kjøretidsanalyse 2 Matematisk induksjon 3 Rekursjon Kjøretidsanalyse Eksempel Finne antall kombinasjoner med minst
DetaljerEKSAMEN Løsningsforslag. med forbehold om bugs :-)
1 EKSAMEN Løsningsforslag med forbehold om bugs :-) Emnekode: ITF20006 000 Dato: 20. mai 2011 Emne: Algoritmer og datastrukturer Eksamenstid: 09:00 til 13:00 Hjelpemidler: 8 A4-sider (4 ark) med egne notater
DetaljerEksamensoppgave i TDT4120 Algoritmer og datastrukturer
Eksamensoppgave i TDT4120 Algoritmer og datastrukturer Faglig kontakt under eksamen Magnus Lie Hetland Tlf. 918 51 949 Eksamensdato 12. august, 2014 Eksamenstid (fra til) 0900 1300 Hjelpemiddelkode D.
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
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):
DetaljerPrioritetskøer. Prioritetskøer. Binære heaper (vanligst) Prioritetskøer
Binære heaper (Leftist) Prioritetskøer Prioritetskøer er viktige i bla. operativsystemer (prosesstyring i multitaskingssystemer), og søkealgoritmer (A, A*, D*, etc.), og i simulering. Prioritetskøer Prioritetskøer
DetaljerEksamen i fag SIF8010 Algoritmer og Datastrukturer Tirsdag 14. Desember 1999, kl
Student nr.: Side 1 av 7 Eksamen i fag SIF8010 Algoritmer og Datastrukturer Tirsdag 14. Desember 1999, kl 0900-1500 Faglig kontakt under eksamen: Arne Halaas, tlf. 73 593442. Hjelpemidler: Alle kalkulatortyper
DetaljerPrioritetskøer. Binære heaper Venstrevridde heaper (Leftist) Binomialheaper Fibonacciheaper
Prioritetskøer Binære heaper Venstrevridde heaper (Leftist) Binomialheaper Fibonacciheaper Prioritetskøer er viktige i bla. operativsystemer (prosesstyring i multitaskingssystemer), og søkealgoritmer (A,
DetaljerEksamensoppgave i TDT4120 Algoritmer og datastrukturer
Institutt for datateknikk og informasjonsvitenskap Eksamensoppgave i TDT4120 Algoritmer og datastrukturer Faglig kontakt under eksamen Magnus Lie Hetland Telefon 918 51 949 Eksamensdato 4. desember, 2017
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
DetaljerLineær sortering. Radix sort
Fra forrige gang 1 Lineær sortering Radix sort 2 Sorter hvert siffer for seg Bruk en stabil sortering (f.eks. CS) for å bevare arbeidet så langt Vi må begynne med minst signifikante siffer Konstant antall
Detaljer... Når internminnet blir for lite. Dagens plan: Løsning: Utvidbar hashing. hash(x) katalog. O modellen er ikke lenger gyldig ved
Dagens plan: Utvidbar hashing (kapittel 5.6) B-trær (kap. 4.7) Abstrakte datatyper (kap. 3.1) Stakker (kap. 3.3) Når internminnet blir for lite En lese-/skriveoperasjon på en harddisk (aksesstid 7-12 millisekunder)
Detaljer