Dynamisk programmering
|
|
- Greta Ingvaldsen
- 4 år siden
- Visninger:
Transkript
1 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.) Dynamisk for å indikere at det er en stegvis prosess. Men også et pynteord.
2 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.) Dynamisk for å indikere at det er en stegvis prosess. Men også et pynteord.
3 Hvilke problemer? Dynamisk programmering brukes typisk til å løse optimaliseringsproblemer. (Problemer hvor det kan være mange mulige løsninger, og hvor vi ønsker å finne den beste vi ønsker å optimere verdien av en objektivfunksjon. Skal vi kunne løse et problem med dynamisk programmering, må det kunne deles opp i mindre og mindre biter helt til vi kommer til et delproblem så lite at løsningen lett kan finnes. Så starter vi med løsningene på små delproblemer, og kombinerer disse til løsninger på større delproblemer, helt til vi har løsningen på hele problemet. Skal dynamisk programmering være en egnet (effektiv) metode må:. optimalitetsprinsippet p pp holde,. delproblemer må overlappe, og. antall delproblemer være polynomisk.
4 ) Optimalitetsprinsippet Gitt et optimaliseringsproblem, og en funksjonen combine som kombinerer løsninger på delproblemer til løsninger på større problemer, så sier vi at optimalitetsprinsippet holder hvis følgende alltid er sant: Hvis S = combine(s, S,, S m ), og S er en optimal løsning på sin probleminstans, så er S, S,, S m optimale løsninger på sine respektive probleminstanser. Hvis optimalitetsprinsippet holder, er problemet egnet for løsning med dynamisk programmering. Da genereres bare optimale løsninger på delproblemer når vi starter fra optimale løsninger på de minste delproblemene, og kombinerer disse til løsninger på større problemer.
5 ) Overlappende delproblemer En dynamisk programmerings-algoritme starter med å løse de minste delproblemene, og setter sammen disse løsningene til løsninger på større og større problemer. Hvis samme delproblem forekommer flere ganger, unngår vi dobbeltarbeid. Løsningene på delproblemene lagres nemlig, og vi slipper å løse dette delproblemet flere ganger.
6 ) Overlappende delproblemer En dynamisk programmerings-algoritme starter med å løse de minste delproblemene, og setter sammen disse løsningene til løsninger på større og større problemer. Hvis samme delproblem forekommer flere ganger, unngår vi dobbeltarbeid. Løsningene på delproblemene lagres nemlig, og vi slipper å løse dette delproblemet flere ganger.
7 ) Polynomisk antall delproblemer En algoritmes effektivitet er direkte avhengig av antall delproblemer som løses: er det få (polynomisk), blir algoritmen effektiv, er det mange (eksponensielt) blir algoritmen ikke praktisk nyttig. C(,n) Ikke egnet om det genereres et eksponensielt antall delproblemer
8 Divide and conquer vs. Dynamisk programmering g Divideid and conquer (f.eks Quicksort) Top down (rekursivt kall) Best egnet når delproblemene er uavhengige av hverandre. Da re-beregnes ikke løsninger på delproblemer. Kun relevante delproblemer løses. Dynamisk programmering Bottom up Egnet når delproblemer overlapper, ettersom løsninger lagres i en tabell og vi kan slå opp når vi støter på et delproblem vi allerede har løst. Ulempen er at vi beregner løsninger på alle delproblemer. Metodene kan kombineres, såkalt memoisering, en divide and conquer algoritme kan lagre løsninger på delproblemer i en tabell og slå opp for å unngå dobbeltarbeid.
9 Fire enkle(?) steg. Beskriv strukturen i problemet, hvordan en løsning er satt sammen av delløsninger. Verifiser at optimalitetsprinsippet faktisk holder.. Lag en formel for verdien av en optimal løsning (ut fra verdien av av optimale delløsninger).. Beregn verdien til en optimal løsning, bottom up (lagre verdien av optimale delløsninger i en tabell).. Konstruer en optimal løsning ut fra beregnede verdier. (Om vi faktisk ønsker løsningen, og ikke bare nøyer oss med verdien av en optimal løsning.)
10 Strenger som ligner (kap..5) En streng P er en k-approksimasjon av en streng T dersom T kan konverteres til P ved å utføre maksimalt k av følgende operasjoner: Substitusjon Et symbol i T byttes ut med et annet. Tillegg Et nytt symbol legges til i T. Sletting Et symbol slettes fra T. Edit distance, ED(P,T ), mellom to strenger T og P er det minste antall slike operasjoner som trengs for å konvertere T til P. Eks. logarithm alogarithm algarithm algorithm (+a, -o, a/o) T P
11 . Strenger som ligner Gitt to strenger T og P, ønsker vi å finne edit distance mellom disse. La D [i, j ] = ED( P [: i ], T [: j ]). (Edit distance mellom delstrenger) Vi deler i følgende delproblemer:. Hvis P [ i ] = T [ j ], så er D [ i, j ] = D [ i -, j -]. i a P[: i ] = j a T[: j ]
12 . Strenger som ligner Gitt to strenger T og P, ønsker vi å finne edit distance mellom disse. La D [i, j ] = ED( P [: i ], T [: j ]). (Edit distance mellom delstrenger) Vi deler i følgende delproblemer:. Hvis P [ i ] T [ j ], tenker vi oss en optimal sekvens av operasjoner som transformerer T [: j ]tilp P [: i ]. Den siste operasjonen, for å få T [ j ] = P [ i ], kan være: Substitusjon i T sette T [ j ] = P [ i ], Tillegg i T legge til symbol i T i pos T [ j ], Sletting i T slette symbol i T i pos T [ j ].
13 . Substitusjon sette T [ j ] = P [ i ] i j a n n e P[: i ] a n n f T[: j ] Strenger som ligner Regner ut D [ i, j ] ved å finne D [ i -, j -] (edit distance for det grå området), og legger til for substitusjonen. Tillegg i T legge til symbol i T i pos T [ j ] sletting av P [ i ] i a n n e P[: i ] j a n n T[: j ] Å legge til en e i T er det samme som å slette en i P. Regner ut D [ i, j ] ved å finne D [ i -, j ](edit distance for det grå området), og legger til for slettingen i P. Sletting i T sletting symbol i T på pos T [ j ] i j a n n P[: i ] a n n e T[: j ] Regner ut D [ i, j ] ved å finne D [ i, j -] (edit distance for det grå området), og legger til for slettingen i T.
14 . Strenger som ligner Formelen (rekursiv definisjon) for D[ i, j ] vil altså være som følger: D[ i, j ] D[ i, j] = min{ D [ i, j ] +, D [ i, j] +, D [ i, j ] + substitusjon tillegg i T sletting i T sletting i P D[, ] =, D[ i, ] = D[, i] = i. } hvis ellers P[ i] = T[ j] Løsningen, edit distance mellom strengene, finnes i D[m,n] (P er av lengde m og T av lengde n).
15 . Strenger som ligner Formelen (rekursiv definisjon) for D[ i, j ] vil altså være som følger: D[ i, j ] D[ i, j] = min{ D [ i, j ] +, D [ i, j] +, D [ i, j ] + substitusjon tillegg i T sletting i T sletting i P D[, ] =, D[ i, ] = D[, i] = i. } hvis ellers P[ i] = T[ j] j - j j - j... i - i - i i
16 . Strenger som ligner Formelen (rekursiv definisjon) for D[ i, j ] vil altså være som følger: D[ i, j ] D[ i, j] = min{ D [ i, j ] +, D [ i, j] +, D [ i, j ] + substitusjon tillegg i T sletting i T sletting i P D[, ] =, D[ i, ] = D[, i] = i. } hvis ellers P[ i] = T[ j] j - j j - j... i - i - i i +
17 . Strenger som ligner function EditDistance ( P [:n ], T [:m ] ) i j for i to n do D[ i, ] i for j t to m do D[, j ] j for i to n do for j to m do If P [ i ] = T [ j ] then D[ i, j ] D[ i -, j - ] else D[ i, j ] min { D[i -, j - ] +, D[i -, j ]+ +, D[i, j - ] + } endif endfor endfor return( D[ n, m ] ) end EditDistance
18 . eks. Strenger som ligner T D a n e j del T del T a P ins T n n e i
19 . eks. Strenger som ligner T D a n e j del T del T a P ins T n n e i
20 Optimal matrisemultiplikasjon Vi er gitt en sekvens M, M,, M n - av matriser og ønsker å beregne produktet M M M n -. Vi gjør dette ved å sette parenteser, og multiplisere par av matriser, f.eks slik: M M M M = (M (M M )) M Parentesene kan settes på mange måter: (M (M (M M ))) (M ((M M ) M )) ((M M ) (M M )) ((M (M M )) M ) (((M M ) M ) M ) Kostnaden (antall skalare multiplikasjoner) kan variere veldig mellom de ulike måtene å sette parenteser på.
21 Gitt to matriser A = p q matrise, B = q r matrise. Optimal matrisemultiplikasjon Kostnaden (antall skalare multiplikasjoner) ved å beregne A B er p q r (A B) er en p r matrise. Eks. Beregn A B C, hvor A er en matrise, B er en 5 matrise, og C er en 5 5 matrise. Å beregne D = (A B) koster 5, og gir en 5 matrise. Å beregne D C koster,5. Total kostnad for (A B) C blir 7,5. Å beregne E = (B C) koster 5, og gir en 5 matrise. Å beregne A E koster 5,. Total kostnad for A (B C) blir 75,.
22 . Optimal matrisemultiplikasjon Gitt en sekvens av matriser M, M,, M n -, ønsker vi å beregne produktet på billigst mulig måte vi må finne optimal parentes-struktur. En parenterisering av sekvensen er en oppdeling i to delsekvenser, som hver for seg må parenteriseres: (M M M k ) (M k + M k + M n- ) Vi må prøve alle mulige k for å finne hvor det er best å dele sekvensen. Hvert delingspunkt gir opphav til to delproblemer parenterisering av venstre og høyre delsekvens. Består sekvensen bare av en matrise, er denne en parenterisering av seg selv. Har vi en optimal parenterisering av en sekvens av matriser, så må parenteriseringen av hver delsekvens også være optimal. Ellers kan vi jo bare bytte ut den som ikke var optimal med en bedre en. (Optimalitetsprinsippet holder.)
23 . Optimal matrisemultiplikasjon La d, d,, d n være dimensjonene til sekvensen av matriser M, M,, M n-, slik at matrise M i har dimensjon d i d i+. La m i,j være kostnaden av en optimal parenterisering av M i, M i+,, M j Formelen (rekursiv definisjon) for m i,j vil være som følger: m i, j { m + m + d d d }, for alle i < j n = min i, k k, j i k + j + i k< j m i i, =, for alle i n Kostnaden av å utføre multiplikasjonen med den optimale parenteriseringen finner vi i m,n -
24 . Optimal matrisemultiplikasjon d m 5 5,5,875,5 9,75 7,5 5,75 7,875 75,75,5,5 5,75,65 75, 5, 5
25 . Optimal matrisemultiplikasjon d m m 5, = min(d d d 5 + m(,) + m(,), d d d 5 + m(,) + m(,), 5,5 d d d 5 + m(,) + m(,)) = min( ,5,,875, ,65 +,, 5 +,75 + ) 9,75 7,5 5,75 7,875 75,75,5,5 5,75,65 75, 5, 5
26 ./. Optimal matrisemultiplikasjon M M M M 5 = M (M M M ) = (M M ) (M M ) c = (M M M ) M 5 m 5,5,875,5 9,75 7,5 5,75 7,875,75,5,5 5,75,65 75, 5, 5
27 ./. Optimal matrisemultiplikasjon m 5 5,5,875,5 9,75 7,5 5,75 7,875,75,5,5 5,75,65 75, 5, 5 c 5
28 . Optimal matrisemultiplikasjon c 5 M M M M M M 5 = (M M M ) (M M M 5 ) = ((M ) (M M )) ((M M ) (M 5 ))
29 ./. Optimal matrisemultiplikasjon function OptimalParens( d[ : n ] ) for i to n- do m[i, i] for diag to n do // hjelpevariabel for å fylle ut tabellen nivå for nivå for i to n diag do return m[, n ] end OptimalParens j i + diag m[i, j] for k i to j do q m[i, k] + m[k +, j] + d[i] d[k + ] d[j + ] if q < m[i, j] then endif m[i, j] q c[i,j] k
30 Optimale søketrær Pat Joe Ray Ann
31 Optimale søketrær Pat Joe Ray Ann Ann Joe Pat Ray p p p p q q q q q
32 Optimale søketrær Pat Joe Ray Ann Ann Joe Pat Ray p p p p q q q q q Gjennomsnittlig søketid: p + p + p + p + q + q + q + q + q
33 Optimale søketrær For generelle søketrær får vi følgende formel for gjennomsnittlig antall sammenlikninger som gjøres: T et tre med n nøkler (søkeord lagret i interne noder) K,, K n-. n+ bladnoder tilsvarer intervaller I,, I n mellom nøklene. n sannsynlighetsvektorer p og q for nøklene og intervallene mellom dem. d i er nivået til nøkkel K i, e i er nivået til bladnode som korresponderer med I i. n A ( T, n, p, q) = p( d + ) + n i i i= i= qe i i
34 Optimale søketrær Hvis p i -ene er like og q i -ene er like, vil det komplette binære søketreet være det optimale. Men noen ord kan være oftere søkt etter enn andre (p i -ene ulike), derfor kan det lønne seg med skjeve trær og deltrær, for å få ord som det ofte blir søkt etter så høyt som mulig opp i treet. Vi ønsker å finne det optimale binære søketreet T over alle mulige, gitt søkesannsynlighetene (p i -ene og q i -ene). Dvs treet som minimerer gjennomsnittlig antall sammenlikninger A(T,n,p,q): min A( T, n, P, Q) T p i -ene og q i -ene er i utgangspunktet sannsynligheter (tall i intervallet [,], som summerer til ), men vi kan slakke på kravet og anta at de er positive reelle tall, det er uansett bare tall som sammenliknes. n La σ ( p, q) = + n p i q i i = i =
35 . Optimale søketrær Et binært tre T for nøklene K, K n- består av en rot med nøkkel K i, og to deltrær L og R. K i K,, K i - K i+,, K n - p,, p i - p i+,, p n - q,, q i p i+,, q n Vi må prøve alle mulige røtter K i for å finne hvor det er best å dele treet. t Hver mulige rot gir opphav til to delproblemer optimalisering av de korresponderende venstre og høyre deltrærne. Gjennomsnittlig antall operasjoner for treet T er gitt ved: A ( T, n, p, q ) A ( L, i, p,..., p, q,..., q ) + A ( R, n i +, p,..., p, q,..., q ) + σ ( p, q ) = i i i + n i + For enkelthets skyld skriver vi A(T) = A(L) + A(R) + σ(p,q) n
36 . Optimale søketrær La T ij være et søketre for nøklene K i,, K j, i, j n. (T ij er det tomme treet om j < i.) j j La + σ ( i, j) = + p k q k k = i k = i Formelen (rekursiv definisjon) for A(T i,j ) vil være som følger: A( T ) = min{ A ( T ) + A ( T )} + σ ( i, j ) ( ij = i, k k +, j j i k j A(T ii ) = + + σ(i,i) Kostnaden av det optimale treet finner vi i A(T,n- ).
37 ./. Optimale søketrær En algoritme kan nå relativt enkelt lages ved å fylle ut en tabell med verdiene for A(T ij ) som definert av formelen (samme måte som for matrisemultiplikasjon): A( Tij ) = min{ A( Ti, k ) + A( Tk +, j )} + σ ( i, j) i k j A( T ii ) = + + σ ( i, j) I tillegg til verdien A(T ij ) må også en representasjon av de aktuelle trærne vedlikeholdes, slik at vi finner selve treet.
38 Fyller ut ulike typer tabeller Bottom up
39 Dynamisk Programering Utregning Dynamisk programmering er i realiteten en beregning av av en verdi bottom-up. Vi har fylt ut tabeller, meget regelmessig, men egentlig kan alle beregninger g som gjøres bottom-up i en rettet asyklisk graf (DAG) sees på som dynamisk programmering. (Trær er spesialtilfeller av DAG.)
40 Dynamisk Programering Utregning Dynamisk programmering er i realiteten en beregning av av en verdi bottom-up. Vi har fylt ut tabeller, meget regelmessig, men egentlig kan alle beregninger g som gjøres bottom-up i en rettet asyklisk graf (DAG) sees på som dynamisk programmering. (Trær er spesialtilfeller av DAG.)
41 (Partielle) k-trær
42 [ Blank ]
43 Korteste sti (alle til alle) Floyd Vi skal finne korteste sti mellom alle par av noder i en graf G=(V,E). Kantene har lengde, men vi antar at det ikke finnes negative sykler.. En sti p =<i <i, v,, v k, j > fra node i til node j består av endenodene i og j, og internnodene v,, v k. For alle par av noder i,, j, ser vi på korteste stier fra i til j som består av internnoder fra mengden {v,, v k }, og lar p være en av disse. Hvis v k er en internnode i p, består p av delstiene p (fra i til v k ) og p (fra v k til j). Delstiene p og p er stier med internnoder fra mengden {v,, v k - }; og p og p er korteste stier fra i til v k og fra v k til j, ellers ville ikke p vært en korteste sti fra i til j. Hvis k ikke er en internnode i p, er p en korteste sti fra i til j med internnoder fra mengden {v,, v k - }. (Optimalitetsprinsippet holder.)
44 Korteste sti (alle til alle) Floyd. La d (k) ij være lengden av korteste t sti fra i til j med dinternnoder fra mengden {v,, v k }. Når k = kan ikke stien bestå av internnoder i det hele tatt og d () ij vil altså tilsvare lengden av kanten ij. (Vi bruker w ij for lengden av kanten ij.) En rekursiv definisjon av d (k) ij vil være som følger: d ( k ) ij w ij min{ ( k ) = dij, v k ikke med ( k ) ( k ) div + d k v k j v k med i stien } hvis hvis k k = Matrisen D (n) = ( d (n) ij ), hvor n er antall noder i grafen, vil inneholde lengden av de korteste stiene mellom alle par av noder i, j. (Alle noder er nå lovlige mellomnoder.)
45 Korteste sti (alle til alle) Floyd. function FloydWarshall ( W ) n rows( W ) D () = W for k to n do for i to n do for j to n do d (k) ij min( d (k-) ij, d (k-) ik + d (k-) ik ) endfor endfor endfor return(d (n) ) end FloydWarshall
46 Korteste sti (alle til alle) Floyd
47 Korteste sti (alle til alle) Floyd D () =
48 Korteste sti (alle til alle) Floyd D () =
49 Korteste sti (alle til alle) Floyd D () =
50 Korteste sti (alle til alle) Floyd D () =
51 Korteste sti (alle til alle) Floyd D () =
52 Korteste sti (alle til alle) Floyd D (5) =
Dynamisk 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 å
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.
DetaljerDynamisk programmering. Hvilke problemer? Overlappende delproblemer. Optimalitetsprinsippet
Dynamsk programmerng Metoden ble formalsert av Rchard Bellmann (RAND Corporaton på -tallet. Programmerng betydnngen planlegge, ta beslutnnger. (Har kke noe med kode eller å skrve kode å gøre. Dynamsk for
DetaljerDynamisk programmering. Hvilke problemer? Overlappende delproblemer. Optimalitetsprinsippet
Dynamsk programmerng Hvlke problemer? Metoden ble formalsert av Rchard Bellmann (RAND Corporaton) på -tallet. Har ngen tng med programmerng å gøre. Dynamsk er et ord som kan aldr brukes negatvt. Skal v
DetaljerDynamisk programmering. Hvilke problemer? Optimalitetsprinsippet. Overlappende delproblemer
ynask prograerng Metoden ble foralsert av Rchard Bellann (RAN Corporaton på -tallet. Prograerng betydnngen planlegge, ta beslutnnger. (Har kke noe ed kode eller å skrve kode å gøre. ynask for å ndkere
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
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
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
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
DetaljerSøking i strenger. Prefiks-søking Naiv algoritme Knuth-Morris-Pratt-algoritmen Suffiks-søking Boyer-Moore-algoritmen Hash-basert Karp-Rabin-algoritmen
Søking i strenger Vanlige søkealgoritmer (on-line-søk) Prefiks-søking Naiv algoritme Knuth-Morris-Pratt-algoritmen Suffiks-søking Boyer-Moore-algoritmen Hash-basert Karp-Rabin-algoritmen Indeksering av
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
DetaljerChoices, 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).
DetaljerTuringmaskiner.
Turingmaskiner http://www.youtube.com/watch?v=e3kelemwfhy http://www.youtube.com/watch?v=cyw2ewoo6c4 Søking i strenger Vanlige søkealgoritmer (on-line-søk) Prefiks-søking Naiv algoritme Knuth-Morris-Pratt-algoritmen
DetaljerDefinisjon: Et sortert tre
Binære søketrær Definisjon: Et sortert tre For alle nodene i et binært søketre gjelder: Alle verdiene i nodens venstre subtre er mindre enn verdien i noden Alle verdiene i nodens høyre subtre er større
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
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
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.
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
DetaljerDefinisjon. I et binært tre har hver node enten 0, 1 eller 2 barn
Binære trær Definisjon I et binært tre har hver node enten 0, 1 eller 2 barn Rekursiv definisjon: Et binært tre er enten tomt, eller: Består av en rotnode og to binære trær som kalles venstre subtre og
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
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
DetaljerKONTINUASJONSEKSAMEN I FAG ALGORITMER OG DATASTRUKTURER
KONTINUASJONSEKSAMEN I FAG 0 ALGORITMER OG DATASTRUKTURER Onsdag 7 august 99 kl0900-00 Faglig kontakt under eksamen: Bjørn Olstad/Øystein Grøvlen, tlf 7/70 Alle trykte og håndskrevne hjelpemidler tillatt
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
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å
DetaljerINF 4130 / / Dagens foiler hovedsakelig laget av Petter Kristiansen Foreleser Stein Krogdahl Obliger:
INF 4130 / 9135 29/8-2012 Dagens foiler hovedsakelig laget av Petter Kristiansen Foreleser Stein Krogdahl Obliger: Tre stykker, som må godkjennes. Frister: 21. sept, 26. okt, 16. nov Andre, «nærliggende»
DetaljerLars Vidar Magnusson Kapittel 13 Rød-Svarte (Red-Black) trær Rotasjoner Insetting Sletting
Rød-Svarte Trær Lars Vidar Magnusson 21.2.2014 Kapittel 13 Rød-Svarte (Red-Black) trær Rotasjoner Insetting Sletting Rød-Svarte Trær Rød-Svarte trær (red-black trees) er en variasjon binære søketrær som
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
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
DetaljerParallelle og distribuerte algoritmer INF 3130/4130. Parallell matrisemultiplikasjon. Parallell matrisemultiplikasjon . = . =
INF 0/0 Parallelle og distribuerte algoritmer Strengsøk søk etter generelle patterns Dynamisk programmering generell metode, lagdelt/trestruktur Flyt/Matching egnet for løsning av -problemer Søketrær AVL,
DetaljerINF 4130 Oppgavesett 3, 20/ m/løsningsforslag
INF 4130 Oppgavesett 3, 20/09-2011 m/løsningsforslag Oppgave 1 1.1 Løs oppgave 20.19 (B&P), (a) er vist på forelesningen og kan vel bare repeteres, men løs (b). (a) er altså løst på forelesningen. (b)
DetaljerINF1020 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
DetaljerEksamen iin115 og IN110, 15. mai 1997 Side 2 Oppgave 1 Trær 55 % Vi skal i denne oppgaven se på en form for søkestrukturer som er spesielt godt egnet
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i IN 115 og IN110 Algoritmer og datastrukturer Eksamensdag: 15. mai 1997 Tid for eksamen: 9.00 15.00 Oppgavesettet er på 8 sider.
DetaljerForelesning 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
DetaljerIN Algoritmer og datastrukturer
IN2010 - Algoritmer og datastrukturer HØSTEN 2018 Ingrid Chieh Yu Institutt for informatikk, Universitetet i Oslo Forelesning 3: Prioritetskø og Heap Ingrid Chieh Yu (Ifi, UiO) INF2010 H2018, forelesning
DetaljerMAT1030 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
DetaljerInnledning. 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
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
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
DetaljerINF3/4130 PRØVE-EKSAMEN MED SVARFORSLAG Gjennomgås 1/ , (lille aud.)
Oppgave 1 Uavgjørbarhet INF3/4130 PRØVE-EKSAMEN MED SVARFORSLAG Gjennomgås 1/12-2005, 14.15 (lille aud.) L = {(M 1, M 2 ) M 1 og M 2 er Turingmaskiner som er ekvivalente, dvs. gir samme output for samme
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
DetaljerSvarforslag til ukeoppgaver til INF 4130
Svarforslag til ukeoppgaver til INF 4130 15. november 2011 Oppgave 1: Løs 14.4 (hvori innbakt svaret på oppgave 14.5) Vi skal altså vise at Hungarian-algoritmen kan implementeres i tid O(n 3 ), der n er
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
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
DetaljerEKSAMEN. Dato: 18. mai 2017 Eksamenstid: 09:00 13:00
EKSAMEN Emnekode: ITF20006 Emne: Algoritmer og datastrukturer Dato: 18. mai 2017 Eksamenstid: 09:00 13:00 Hjelpemidler: Alle trykte og skrevne Kalkulator Faglærer: Jan Høiberg Om eksamensoppgavene: Oppgavesettet
DetaljerINF Algoritmer og datastrukturer
INF2220 - Algoritmer og datastrukturer HØSTEN 2016 Ingrid Chieh Yu Institutt for informatikk, Universitetet i Oslo Forelesning 4: Prioritetskø og Heap Ingrid Chieh Yu (Ifi, UiO) INF2220 H2016, 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
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
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
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
DetaljerChoices, 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).
DetaljerSist forelesning snakket vi i hovedsak om trær med rot, og om praktisk bruk av slike. rot. barn
Forelesning 26 Trær Dag Normann - 28. april 2008 Oppsummering Sist forelesning snakket vi i hovedsak om trær med rot, og om praktisk bruk av slike. rot barn barn barnebarn barnebarn barn blad Her er noen
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
DetaljerMAT1030 Diskret matematikk
MAT1030 Diskret matematikk Forelesning 26: Trær Dag Normann Matematisk Institutt, Universitetet i Oslo 28. april 2008 Oppsummering Sist forelesning snakket vi i hovedsak om trær med rot, og om praktisk
DetaljerForelesning 23. Grafteori. Dag Normann april Oppsummering. Oppsummering. Oppsummering. Digresjon: Firefarveproblemet
Forelesning 23 Grafteori Dag Normann - 16. april 2008 Oppsummering En graf består av noder og kanter Kanter ligger inntil noder, og noder kan være naboer. Vi bør kjenne til begrepene om sammenhengende
DetaljerEksamen i IN 110, 18. mai 1993 Side 2 Del 1 (15%) Vi skal se på prioritetskøer av heltall, der vi hele tiden er interessert i å få ut den minste verdi
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i Eksamensdag: 18. mai 1993 Tid for eksamen: 9.00 15.00 Oppgavesettet er på 7 sider. Vedlegg: Tillatte hjelpemidler: IN 110 Algoritmer
DetaljerMAT1030 Diskret matematikk
MAT1030 Diskret matematikk Forelesning 23: Grafteori Dag Normann Matematisk Institutt, Universitetet i Oslo 16. april 2008 Oppsummering En graf består av noder og kanter Kanter ligger inntil noder, og
DetaljerOppsummering. MAT1030 Diskret matematikk. Oppsummering. Oppsummering. Forelesning 23: Grafteori
Oppsummering MAT1030 Diskret matematikk Forelesning 23: Grafteori Dag Normann Matematisk Institutt, Universitetet i Oslo 16. april 2008 En graf består av noder og kanter Kanter ligger inntil noder, og
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
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)
DetaljerMAT1030 Forelesning 25
MAT1030 Forelesning 25 Trær Dag Normann - 27. april 2010 (Sist oppdatert: 2010-04-27 14:16) Forelesning 25 Litt repetisjon Vi har snakket om grafer og trær. Av begreper vi så på var følgende: Eulerstier
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
DetaljerForelesning 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
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
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.
DetaljerBinære søketrær. En ordnet datastruktur med raske oppslag. Sigmund Hansen
Binære søketrær En ordnet datastruktur med raske oppslag Sigmund Hansen Lister og trær Rekke (array): 1 2 3 4 Lenket liste (dobbelt-lenket): 1 2 3 4 Binært søketre: 3 1 4 2 Binære
DetaljerMAT1030 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
DetaljerINF Algoritmer og datastrukturer
INF2220 - Algoritmer og datastrukturer HØSTEN 2009 Institutt for informatikk, Universitetet i Oslo INF2220, forelesning 5: Prioritetskø og Heap Bjarne Holen (Ifi, UiO) INF2220 H2009, forelesning 5 1 /
DetaljerStein Krogdahl, Dino Karabeg, Petter Kristiansen. Kenneth A. Berman and Jerome L. Paul.
Stein Krogdahl, Dino Karabeg, Petter Kristiansen steinkr at ifi.uio.no dino at ifi.uio.no pettkr at ifi.uio.no INF 4130 / 9135 Algoritmer: Design og effektivitet Algorithms: Sequential Parallel and Distributed
DetaljerDatastrukturer. Stakker (Stacks) Hva er en datastruktur? Fordeler / Ulemper. Generelt om Datastrukturer. Stakker (Stacks) Elementære Datastrukturer
Hva er en datastruktur? Datastrukturer Elementære Datastrukturer En datastruktur er en systematisk måte å lagre og organisere data på, slik at det er lett å aksessere og modifisere dataene Eksempler på
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
DetaljerINF2220: 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)
DetaljerINF110 Algoritmer og datastrukturer TRÆR. Vi skal i denne forelesningen se litt på ulike typer trær:
TRÆR Vi skal i denne forelesningen se litt på ulike typer trær: Generelle trær (kap. 4.1) Binærtrær (kap. 4.2) Binære søketrær (kap. 4.3) Den siste typen trær vi skal behandle, B-trær (kap. 4.7) kommer
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 &
DetaljerComputational Geometry
Computational Geometry Grafisk Databehandling 1. Convex hull konveks innhyling 2. Nærmeste par av punkter Convex hull La P være en mengde punkter i et k-dimensjonalt rom, P R k. (Vi skal for enkelthets
DetaljerMAT1030 Forelesning 28
MAT1030 Forelesning 28 Kompleksitetsteori Roger Antonsen - 12. mai 2009 (Sist oppdatert: 2009-05-13 08:12) Forelesning 28: Kompleksitetsteori Introduksjon Da er vi klare (?) for siste kapittel, om kompleksitetsteori!
DetaljerOppsummering. MAT1030 Diskret matematikk. Oppsummering. Oppsummering. Eksempel
MAT1030 Diskret matematikk Forelesning 26: Trær Sist forelesning snakket vi i hovedsak om trær med rot, og om praktisk bruk av slike. rot Dag Normann Matematisk Institutt, Universitetet i Oslo barn barn
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(?):
DetaljerLP. Leksjon 7. Kapittel 13: Nettverk strøm problemer
LP. Leksjon 7. Kapittel 13: Nettverk strøm problemer Skal studere matematiske modeller for strøm i nettverk. Dette har anvendelser av typen fysiske nettverk: internet, vei, jernbane, fly, telekommunikasjon,
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet «Midterm» i: INF 4130: Algoritmer: Design og effektivitet Eksamensdag: 1. november 2011 Tid for «midterm»: Kl. 09:00 13:00 (4 timer) [124%,
DetaljerE K S A M E N. Algoritmiske metoder I. EKSAMENSDATO: 11. desember HINDA / 00HINDB / 00HINEA ( 2DA / 2DB / 2EA ) TID:
Høgskolen i Gjøvik Avdeling for Teknologi E K S A M E N FAGNAVN: FAGNUMMER: Algoritmiske metoder I L 189 A EKSAMENSDATO: 11. desember 2001 KLASSE: 00HINDA / 00HINDB / 00HINEA ( 2DA / 2DB / 2EA ) TID: 09.00-14.00
DetaljerUNIVERSITETET I OSLO. Det matematisk-naturvitenskapelige fakultet
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i: INF 4130: lgoritmer: Design og effektivitet Eksamensdag: 12. desember 2008 Tid for eksamen: Kl. 09:00 12:00 (3 timer) Oppgavesettet
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i IN 115 og IN 110 Algoritmer og datastrukturer Eksamensdag: 14. mai 1996 Tid for eksamen: 9.00 15.00 Oppgavesettet er på 8 sider.
DetaljerRepetisjon 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
DetaljerForelesning 30. Kompleksitetsteori. Dag Normann mai Informasjon. Oppsummering
Forelesning 30 Kompleksitetsteori Dag Normann - 14. mai 2008 Informasjon Det er lagt ut program for orakeltjenestene i MAT1030 denne våren på semestersiden. Det blir ikke ordinære gruppetimer fra og med
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
DetaljerMAT1030 Diskret matematikk
MAT1030 Diskret matematikk Forelesning 30: Kompleksitetsteori Dag Normann Matematisk Institutt, Universitetet i Oslo 14. mai 2008 Informasjon Det er lagt ut program for orakeltjenestene i MAT1030 denne
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:
DetaljerEksamen iin115, 14. mai 1998 Side 2 Oppgave 1 15 % Du skal skrive en prosedyre lagalle som i en global character array S(1:n) genererer alle sekvenser
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i IN 115 Algoritmer og datastrukturer Eksamensdag: 14. mai 1998 Tid for eksamen: 9.00 15.00 Oppgavesettet er på 8 sider. Vedlegg:
DetaljerAlg. Dat. Øvingsforelesning 3. Grafer, BFS, DFS og hashing. Børge Rødsjø rodsjo@stud.ntnu.no
Alg. Dat Øvingsforelesning 3 Grafer, BFS, DFS og hashing Børge Rødsjø rodsjo@stud.ntnu.no Dagens tema Grafer Terminologi Representasjon av grafer Bredde først søk (BFS) Dybde først søk (DFS) Hashing Hashfunksjoner,
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
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.
DetaljerINF2220: Gruppe me 2. Mathias Lohne Høsten 2017
INF0: Gruppe me Mathias Lohne Høsten 0 1 Rød-svarte trær Vanlige binære søketrær blir fort veldig ubalanserte. røv å sett inn 1,,, 4, 5,, 7,... (i den rekkefølgen) i et binært søketre. Da vil vi i praksis
DetaljerInnhold. Innledning 1
Innhold Innledning 1 1 Kompleksitetsanalyse 7 1.1 Innledning.............................. 8 1.2 Hva vi beregner........................... 8 1.2.1 Enkle operasjoner...................... 8 1.2.2 Kompleksitet........................
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.
DetaljerNorsk informatikkolympiade runde
Norsk informatikkolympiade 2015 2016 1. runde Sponset av Uke 46, 2015 Tid: 90 minutter Tillatte hjelpemidler: Kun skrivesaker. Det er ikke tillatt med kalkulator eller trykte eller håndskrevne hjelpemidler.
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
DetaljerEKSAMEN. Dato: 9. mai 2016 Eksamenstid: 09:00 13:00
EKSAMEN Emnekode: ITF20006 Emne: Algoritmer og datastrukturer Dato: 9. mai 2016 Eksamenstid: 09:00 13:00 Hjelpemidler: Alle trykte og skrevne Faglærer: Jan Høiberg Om eksamensoppgavene: Oppgavesettet består
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
Detaljer