Dynamisk programmering Undervises av Stein Krogdahl
|
|
- Gorm Thomassen
- 6 år siden
- Visninger:
Transkript
1 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. Disse foilene ble opprinnelig laget av Petter Kristiansen (nå gruppelærer), og de fulgte starten av kapittelet nøye. Jeg har laget en noe annen start t på dem som jeg synes blir enklere å forstå (men det kan jo være smak og behag!) Jeg skal skrive noe om forskjellen på bokas og disse foilenes innledning, og legge det ut på undervisningsplanen.
2 Dynamisk programmering Dynamisk programmering g ble formalisert av Richard Bellmann (RAND Corporation) på 50-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 Hva kan løses med Dynamisk Programmering? Dynamisk programmering brukes typisk til å løse optimaliseringsproblemer. (Problemer hvor det kan være mange mulige («feasible») løsninger, og hvor vi ønsker å finne den beste vi ønsker å optimere verdien av en angitt objektiv-funksjon (eller objekt-funksjon?). Problemet må være slik at hver instans naturlig har en størrelse (som for O- notasjon), gjerne slik at de minste instansene har størrelse 1 eller 0. Videre må man kunne løse en instans (et problem) av størrelse n om man vet løsningen på et antall mindre instanser. Disse må være lette å sette opp ut fra det opprinnelige problemet, og alle er altså mindre enn n. De instansene vi på denne måten setter opp, kaller vi «del-problemer» av det store problemet. Mengden av delproblemer vi må løse for å løse det store problemet må være grei og sette opp, og være polynomisk i antall. Disse delproblemene settes typisk opp i en slags tabell, matrise, e.l. Løsningen gjøres så ved å beregne alle de aktuelle delproblemene, i rekkefølge fra de minste til det store problemet selv. De minste delproblemene må være greie å løse direkte
4 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. Løsningene lagres etter hvert i en passelig array, matrise e.l. Dynamisk programmering er spesielt nyttig om samme delproblem skal brukes flere ganger for forskjellige større delproblemer. Siden løsningene på delproblemene lagres i en tabell, og slipper vi å løse delproblemer flere ganger. Under er størrelsen på en instans C(i,j) (,j) lik i - j
5 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(1,n) Ikke egnet om det genereres et eksponensielt antall delproblemer
6 «Divide and conquer» vs. dynamisk programmering Divide 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 Gjøres i utganspunktet nedenfra-opp, altså slik at de enkleste delproblemene løses først, og svarene blir satt inn i en tabell. Egner seg spesielt når delproblemer overlapper. Svaret på hvert delproblem beregnes bare en gang, og siden kan svarene hentes i tabellen Og altså: Vi løser delproblemer i en slik rekkefølge at når vi trenger svaret på et bestemt (mindre) delproblem så er det allerede løst og svaret er satt inn i tabellen. «Top-Down» dynamisk programmering (Memoisering) En ulempe med metoden over er at vi beregner løsninger på alle delproblemer, selv de vi ikke vil trenge alle i den aktuelle beregningen. Vi kan i stedet gjøre beregningen (rekursivt) ovenfra-ned ned, og sette svaret inn i den samme tabellen. Må da ha en spesialverdi: «ikke beregnet». Litt mer om dette på slutten (eller hvertfall på gruppene).
7 Eksempel 1: Strenger som likner (kap. 20.5) Slike problemer er veldig aktuelle bl.a. i gen-forskningg 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 et sted 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 (eller P til T!). Eks. logarithm alogarithm algarithm algorithm (+a, -o, a/o) T P
8 Strenger som likner Gitt to strenger T og P, vi ønsker å finne edit distance mellom disse. Vi bruker en matrise D som under, og tar sikte på fylle den slik at: D [i, j ] = ED( P [1: i ], T [1: j ] ). Vi tenker oss at P ligger nedover langs venstre kant av matrisen, og at T ligger langs overkanten av matrisen. Vi ser på P opp til indeks i og T opp til indeks j. T 0 1 j -1 j j -1 j P i -1 i -1 i i? De minste problemene er langs øverste og venstre kant, der P eller T er tomme. Hvorfor kan vi initialisere disse som over? Hvordan kan vi finne svaret i en rute ut fra ruter for mindre problemer?
9 Strenger som likner Gitt to strenger T og P, ønsker vi å finne edit distance mellom disse. La D [i, j ] = ED( P [1: i ], T [1: j ]). (Edit distance mellom delstrenger) Vi deler i følgende delproblemer: 1. Hvis P [ i ] = T [ j ], så er D [ i, j ] = D [ i -1, j -1]. 1 i a P[1: i ] = 1 j a T[1: j ]
10 Strenger som likner Formelen (rekursiv definisjon) for D[ i, j ] vil altså være som følger: 0 1 j -1 j j -1 j i -1 i -1 i i
11 Strenger som ligner Strenger som likner: Om T [ j ] ikke er lik P [ i ] Substitusjon sette T [ j ] = P [ i ] 1 i a n n e P[1: i ] a n n f T[1: j ] 1 j Tillegg i T legge til symbol i T i pos T [ j ] sletting av P [ i ] 1 i a n n e P[1: i ] 1 j a n n T[1: j ] Sletting i T sletting symbol i T på pos T [ j ] 1 i 1 j a n n P[1: i ] a n n e T[1: j ] Regner ut D [ i, j ] ved å finne D [ i -1, j -1] (edit distance for det grå området), og legger til 1 for substitusjonen. Å legge til en e i T er det samme som å slette en i P. Regner ut D [ i, j ] ved å finne D [ i -1, j ](edit distance for det grå området), og legger til 1 for slettingen i P. Regner ut D [ i, j ] ved å finne D [ i, j -1] (edit distance for det grå området), og legger til 1 for slettingen i T.
12 Strenger som likner Formelen (rekursiv definisjon) for D[ i, j ] vil altså være som følger: Løsningen, edit distance mellom strengene, finnes i D[m,n] (P er av lengde m og T av lengde n).
13 Strenger som likner Formelen (rekursiv definisjon) for D[ i, j ] vil altså være som følger: 0 1 j -1 j j -1 j i -1 i -1 i i +1
14 Strenger som likner function EditDistance ( P [1:n ], T [1:m ] ) i 0 j 0 for i 0 to n do D[ i, 0 ] i for j 1t to m do D[ 0, j ] j for i 1 to n do for j 1 to m do If P [ i ] = T [ j ] then D[ i, j ] D[ i -1, j - 1] else D[ i, j ] min { D[i -1, j - 1] +1, D[i -1, j ]+1 +1, D[i, j - 1] +1 } endif endfor endfor return( D[ n, m ] ) end EditDistance
15 Strenger som likner Eks. T D a n e j del T del T a P ins T n n e i
16 Strenger som likner Eks. T D a n e j del T del T a P ins T n n e i
17 Eksempel 2: Optimal matrisemultiplikasjon Vi er gitt en sekvens M 0, M 1,, M n -1 av matriser og ønsker å beregne produktet M 0 M 1 M n -1. Merk at «formatene» her må være riktig hele veien. Radlengden i f.eks. M 1 må være lik kolonnelengden i M 2 Matrisemultiplikasjon er assosiativ, altså: (A B) C = A (B C) (men ikke symmetrisk, siden A B generelt er forskjellig fra B A ) Dermed kan man utføre multiplikasjonen i forskjellige rekkefølger. Med fire matriser kan det gjøres på følgende måter: (M 0 (M 1 (M 2 M 3 ))) (M 0 ((M 1 M 2 ) M 3 )) ((M 0 M 1 ) (M 2 M 3 )) ((M 0 (M 1 M 2 )) M 3 ) (((M 0 M 1 ) M 2 ) M 3 ) Kostnaden (antall enkelt-multiplikasjoner) kan variere veldig mellom de ulike måtene å sette parenteser på. Vi ønsker å finnne den med færrest mulig.
18 Optimal matrisemultiplikasjon Gitt to matriser, der antall rader (= kolonnelengden) står først A = p q matrise, B = q r matrise. 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 matrise, og C er en 5 50 matrise. Å beregne D = (A B) koster 5,000 og gir en 10 5 matrise. Å beregne D C koster 2,500. Total kostnad for (A B) C blir 7,500. Å beregne E = (B C) koster 25,000 og gir en matrise. Å beregne A E koster 50,000. Total kostnad for A (B C) blir 75,000.
19 Optimal matrisemultiplikasjon Gitt en sekvens av matriser M 0, M 1,, M n -1, ønsker vi å beregne produktet på billigst mulig måte vi vil finne optimal parentes-struktur. En parenterisering av sekvensen er en oppdeling i to delsekvenser, som hver for seg må parenteriseres: (M 0 M 1 M k ) (M k + 1 M k + 2 M n-1 ) 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 to matriser, er det bare én mulig parenterisering 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.
20 Optimal matrisemultiplikasjon La d 0, d 1,, d n være dimensjonene til sekvensen av matriser M 0, M 1,, M n-1, slik at matrise M i har dimensjon d i d i+1. La m i,j være kostnaden av en optimal parenterisering av M i, M i+1,, 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 0 i j n 1 min i, k k, j i k j i k 1 j 1 m i i, 0, for alle 0 i n 1 Kostnaden av å utføre hele multiplikasjonen med den optimale parenteriseringen vil da være m 0,n -1
21 Optimal matrisemultiplikasjon 0 d m ,125 11,875 10,500 9,375 7,125 5,375 7,875 4,375 2,500 3,500 15,750 2, ,000 5, Hver rute inneholder det minste antall enkeltmultiplikasjoner man kan oppnå for det «intervallet»
22 Optimal matrisemultiplikasjon d Eksempel 0 m 1,4 = min(d 1 d 2 d 5 + m(1,1) 1) + m(2,4), Matrisen m d 1 d 3 d 5 + m(1,2) + m(3,4), d d 4 d 5 + m(1,3) + m(4,4)) Andre indeks j 15,125 = min( ,500, , ,000, 11,875 10, , ) 1 2 9,375 7,125 5,375 7,875 4,375 2,500 3,500 15,750 2, ,000 5, = min(13000, 7125, 11375) 5 =
23 Optimal matrisemultiplikasjon d Eksempel 0 m 1,4 = min(d 1 d 2 d 5 + m(1,1) 1) + m(2,4), Matrisen m d 1 d 3 d 5 + m(1,2) + m(3,4), d d 4 d 5 + m(1,3) + m(4,4)) Andre indeks j Første indeks i 15,125 = min( ,500, , ,000, 11,875 10, , ) 1 2 9,375 7,125 5,375 7,875 4,375 2,500 3,500 15,750 2, ,000 5, = min(13000, 7125, 11375) 5 =
24 Optimal matrisemultiplikasjon M 1 M 2 M 3 M 4 5 = M 1 (M 2 M 3 M 4 ) 4 = (M 1 M 2 ) (M 3 M 4 ) c = (M 3 1 M 2 M 3 ) M m 4 15, ,875 10, ,375 7,125 5, ,875 4,375 2,500 3, ,750 2, ,000 5,
25 Optimal matrisemultiplikasjon 1 m , ,875 10,500 9,375 7,125 5,375 7,875 4,375 2,500 3, ,750 2, ,000 5, c
26 Optimal matrisemultiplikasjon c M 0 M 1 M 2 M 3 M 4 M 5 = (M 0 M 1 M 2 ) (M 3 M 4 M 5 ) = ((M 0 ) (M 1 M 2 )) ((M 3 M 4 ) (M 5 ))
27 Optimal matrisemultiplikasjon function OptimalParens( d[0 : n 1] ) for i 0 to n-1 do m[i, i] 0 for diag 1 to n 1 do // hjelpevariabel for å fylle ut tabellen nivå for nivå for i 0 to n 1 diag do j i + diag return m[0, n 1] end OptimalParens m[i, j] for k i to j 1 do q m[i, k] + m[k + 1, j] + d[i] d[k + 1] d[j + 1] if q < m[i, j] then m[i, j] q endif c[i,j] k
28 Eksempel 3: Optimale søketrær 0 Pat 1 Joe Ray 2 Ann 3
29 Optimale søketrær 0 Pat 1 Joe Ray 2 Ann 3 Ann Joe Pat Ray p 0 p 1 p 2 p 3 q 0 q 1 q 2 q 3 q
30 Optimale søketrær 0 Pat 1 Joe Ray 2 Ann 3 Sum av p-er og q-er er 1 Ann Joe Pat Ray p 0 p 1 p 2 p 3 q 0 q 1 q 2 q 3 q Gjennomsnittlig søketid: 3p 0 + 2p 1 + p 2 + 2p 3 + 3q 0 + 3q 1 + 2q 2 + 2q 3 + 2q 4
31 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 0,, K n-1. n+1 bladnoder tilsvarer intervaller I 0,, I n mellom nøklene. 0 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 1 A ( T, n, p, q) p( d 1) n i i i 0 i 0 qe i i
32 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 [0,1], som summerer til 1), men vi kan slakke på kravet og anta at de er positive reelle tall, det er uansett bare tall som sammenliknes. n 1 La ( p, q) n p i q i i 0 i 0
33 Optimale søketrær Et binært tre T for nøklene K 0, K n-1 består av en rot med nøkkel K i, og to deltrær L og R. K i K 0,, K i -1 K i+1,, K n -1 p 0,, p i -1 p i+1,, p n -1 q 0,, q i p i+1,, 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 1, p,..., p, q,..., q ) ( p, q ) 0 i 1 0 i 1 i 1 n 1 i 1 For enkelthets skyld skriver vi A(T) = A(L) + A(R) + σ(p,q) n
34 Optimale søketrær La T ij være et søketre for nøklene K i,, K j, 0 i, j n 1. (T ij er det tomme treet om j < i.) j j La ( i, j) 1 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 1 k 1, j j i k j A(T ii ) 0 0 σ(i,i) Kostnaden av det optimale treet finner vi i A(T 0,n-1 ).
35 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, i k j ) min{ A( Ti, k 1) A( Tk 1 j )} ( i, j) A( T ii ) 0 0 ( 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.
36 Dynamisk programmering: Fyller ut ulike typer tabeller nedenfra-opp
37 Dynamisk Programmering Utregning Dynamisk programmering er i realiteten en beregning 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.)
38 Dynamisk Programmering Utregning Dynamisk programmering er i realiteten en beregning 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.)
39 Dynamisk Programmering, g og litt om «memoisering» «Top-Down» dynamisk programmering (Memoisering) En ulempe med metoden over er at vi beregner løsninger på alle delproblemer, selv de vi ikke vil trenge alle i denne beregningen. Vi kan i stedet gjøre beregningen (rekursivt) ovenfra-ned, og sette svaret inn i den samme tabellen. Må da ha en spesialverdi: «ikke beregnet».
40 eks. Strenger som likner Memoisering T D a n e j del T del T a P ins T n n e i
41 Strenger som likner eks. T D a n e j del T del T a P ins T n n e i
Dagens 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
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
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.)
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
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
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
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»
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
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
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
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
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.
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
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
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
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
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.
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%,
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
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
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
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
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:
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
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
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
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
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
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)
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
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
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
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
DetaljerObligatorisk oppgave 1 i INF 4130, høsten 2009
Obligatorisk oppgave 1 i INF 4130, høsten 2009 Leveringsfrist fredag 2. oktober Institutt for informatikk Krav til innleverte oppgaver ved Institutt for informatikk (Ifi) Ved alle pålagte innleveringer
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
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å
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)
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)
DetaljerIN Algoritmer og datastrukturer
IN2010 - Algoritmer og datastrukturer HØSTEN 2018 Ingrid Chieh Yu Institutt for informatikk, Universitetet i Oslo Forelesning 3: Prioritetskø og Heap Ingrid Chieh Yu (Ifi, UiO) INF2010 H2018, forelesning
DetaljerINF Algoritmer og datastrukturer
INF2220 - Algoritmer og datastrukturer HØSTEN 2009 Institutt for informatikk, Universitetet i Oslo INF2220, forelesning 5: Prioritetskø og Heap Bjarne Holen (Ifi, UiO) INF2220 H2009, forelesning 5 1 /
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
DetaljerEt eksempel: Åtterspillet
Trær Et eksempel: Åtterspillet To spillere som «trekker» annenhver gang I hvert trekk velges et av tallene 1, 2, 3, men ikke tallet som motspiller valgte i forrige trekk Valgte tall summeres fortløpende
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
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
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
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
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å
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
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
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
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
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
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
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
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
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(?):
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
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
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
DetaljerKONTINUASJONSEKSAMEN
Høgskolen i Gjøvik KONTINUASJONSEKSAMEN FAGNAVN: FAGNUMMER: Algoritmiske metoder I L 171 A EKSAMENSDATO: 19. august 1999 KLASSE: 97HINDA / 97HINDB ( 2DA / 2DB ) TID: 09.00-14.00 FAGLÆRER: Frode Haug ANT.
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
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
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
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
1 UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i : IN 115 Eksamensdag : Lørdag 20 mai, 2000 Tid for eksamen : 09.00-15.00 Oppgavesettet er på : 5 sider Vedlegg : Intet. Tillatte
DetaljerAlgoritmer og Datastrukturer
Eksamen i Algoritmer og Datastrukturer IAI 20102 Høgskolen i Østfold Avdeling for informatikk og automatisering Lødag 5. juni 2004, kl. 09.00-13.00 LØSNINGSFORSLAG 1 Del 1 60% Oppgave 1.1-10% Forklar kort
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
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
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
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
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
DetaljerObligatorisk oppgave 1 i INF 4130, høsten 2008
Obligatorisk oppgave 1 i INF 4130, høsten 2008 Leveringsfrist 3. oktober Institutt for informatikk Krav til innleverte oppgaver ved Institutt for informatikk (Ifi) Ved alle pålagte innleveringer av oppgaver
DetaljerKøbenhavn 20 Stockholm
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i IN 115 Algoritmer og datastrukturer Eksamensdag: 26. mai 2001 Tid for eksamen: 9.00 15.00 Oppgavesettet er på 7 sider. Vedlegg:
DetaljerOppgavesettet består av 7 sider, inkludert denne forsiden. Kontroll& at oppgaven er komplett før du begynner å besvare spørsmålene.
Høgskoleni Østfold EKSAMEN Emnekode: Emnenavn: ITF20006 Algoritmer og datastrukturer Dato: Eksamenstid: 9. mai 2016 9.00 13.00 Hjelpemidler: Faglærer: Alle trykte og skrevne Jan Høiberg Om eksamensoppgaven
Detaljeralternativer til sortering og søking binære trær søketrær Ikke-rekursiv algoritme som løser Hanois tårn med n plater
Dagens temaer Sortering: 4 metoder Hvorfor sortering (og søking) er viktig i programmering Sortering når objektene som skal sorteres er i et array 1. Sorterering ved bruk av binærtre som «mellomlager»
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
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
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
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
DetaljerLO118D Forelesning 12 (DM)
LO118D Forelesning 12 (DM) Trær 15.10.2007 1 Traversering av trær 2 Beslutningstrær 3 Isomorfisme i trær Preorden-traversering 1 Behandle den nåværende noden. 2 Rekursivt behandle venstre subtre. 3 Rekursivt
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:
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.
DetaljerEt eksempel: Åtterspillet
Trær Et eksempel: Åtterspillet To spillere som «trekker» annenhver gang I hvert trekk velges et av tallene 1, 2, 3, men ikke tallet som motspiller valgte i forrige trekk Valgte tall summeres fortløpende
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
DetaljerUNIVERSITETET I OSLO
BOKMÅL Eksamen i : UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet INF1020 Algoritmer og datastrukturer Eksamensdag : Fredag 15. desember 2006 Tid for eksamen : 15.30 18.30 Oppgavesettet
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.
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!
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
DetaljerTo geometriske algoritmer, kap. 8.6
INF 4130, 18. november 2010 To geometriske algoritmer, kap. 8.6 Computational Geometry Stein Krogdahl Hovedkapittelet t (kap. 8) dreier seg generelt om devide-and-conquer eller splitt og hersk : Splitt
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
DetaljerDivide-and-Conquer. Lars Vidar Magnusson 13.1.2015
Divide-and-Conquer Lars Vidar Magnusson 13.1.2015 Kapittel 4 Maximum sub-array problemet Matrix multiplikasjon Analyse av divide-and-conquer algoritmer ved hjelp av substitusjonsmetoden Divide-and-Conquer
DetaljerINF oktober Stein Krogdahl. Kap 23.5: Trær og strategier for spill med to spillere
INF 4130 1. oktober 2009 Stein Krogdahl Dagens program: Første time: Kap 23.5: Trær og strategier for spill med to spillere Andre time, gjesteforelesning: Rune Djurhuus: Om sjakkspillende programmer (Ikke
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).
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
DetaljerE K S A M E N. Algoritmiske metoder I. EKSAMENSDATO: 11. desember HINDA / 99HINDB / 99HINEA / 00HDESY ( 2DA / 2DB / 2EA / DESY )
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 2000 KLASSE: 99HINDA / 99HINDB / 99HINEA / 00HDESY ( 2DA / 2DB / 2EA
Detaljer