Live life and be merry
|
|
- Arne Gabrielsen
- 7 år siden
- Visninger:
Transkript
1 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 Litt repetisjon 2
3 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 informasjonsg jenfinning. LCS 3
4 X i = [x1,, xi], Yi = [y1,, yi] X = X m, Y = Yn Z = [z 1,, zk] er en LCS av X og Y 4
5 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. 5
6 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 6
7 c[i,j] er lengden på en LCS av Xi og Yj., =, = =,, > =,, =, + (,,, ), > =. 7 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.
8 (,,, ),, =,, +,,,,,,,,, I b-tabellen lagrer vi en referanse til hvor vi «kom fra». 8
9 9
10 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). 10
11 (,,, ) = =, = (,,, ), = (,,, ) (,,, ) 11
12 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 12 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.
13 < 2 Korteste vei oppdeling i delproblemer som må optimaliseres. Korteste veier består av korteste del-veier. 13
14 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). - ( 14
15 Kort om Matrisekjedemultiplikasjon 15
16 Vi vil løse ABC (AB)C kan ha en annen kostnad enn A(BC) Hvordan finner vi optimal parentes-setting? For hver splitt må hver halvdel løses optimalt Parametrisering: Start- og slutt-indeks 16
17 For hver start-indeks og hver slutt-indeks, prøv alle splitt-indekser og velg den som gir lavest kostnad. Vi bevarer beregningene for alle delproblemer, som før. Dette forklares ganske omstendelig i boka, men både problemet og løsningen er egentlig svært enkle. 17
18 K g i t k i orts Grådighet All form for optimalisering kan jo ses som «grådig», men med grådighet mener vi hær en nærsynt, kortsiktig, «hedonistisk» form for grådighet. Vi velger det som virker bra her og nå, uten å tenke på fremtiden. Noen kjente algoritmer som er grådige? (Spenntrær, Dijkstras algoritme og løsningen på fractional knapsack, f.eks.) Det er en veldig enkel strategi, så det som er interessant er: Når kan dette *også* være optimalt globalt/på lang sikt? 18
19 Minner om dynamisk programmering Brukes til optimalisering Når vi kan velge, velg det som er best lokalt Vis at løsningen også blir globalt optimal 19
20 I DAG-SP må vi prøve alle mulige veier tilbake fra slutt-noden til start-noden for å finne den beste. Dette vil fort ta eksponensiell tid. Heldigvis består hver optimale løsning av optimale del-løsninger og disse overlapper. Ved å gjenbruke dem (mellomlagring) får vi polynomisk (lineær) kjøretid Men hva om vi vet noe mer enn at vi har en DAG? Hva om vi kunne «nøste oss bakover» og velge riktig hele veien? For eksempel ved å velge den korteste kanten i hvert trinn 2 20
21 Her ble det jammen riktig! Dette er et eksempel på en grådig strategi og et tilfelle der den fungerte. Den fungerer naturligvis ikke for DAG-SP generelt men det viser at grådighet er beslektet med DP på et eller annet vis
22 splitt-og-hersk dyn. prog. Del i uavhengige delproblemer og løs alle. Del i (potensielt overlappende) delproblemer og løs alle. grådighet Velg «nærsynt» hvilke delproblemer vi bryr oss om. Også her må vi ha optimal substruktur! 22 Dette er ingen «hardand-fast» taksonomi. Hva med binærsøk, f.eks.? Eller Dijkstras algoritme?
23 Grei metafor: Fyller ut puslespill rad for rad, med brikker av ulik pris. En grådig algoritme vil starte med den dyreste brikken, og alltid kaste dem som ikke passer. Spenntrær godt eksempel. $20 $10 $5 23
24 Eksempel Aktivitetsplukking 24
25 Vi har et sett med intervaller f.eks. tidsintervaller for aktiviteter som trenger en ekslusiv ressurs (f.eks. møter/ møterom) Vi vil velge et størst mulig subsett der ingen overlapper. 25
26 Optimal substruktur Aktiviteter i Sij er kompatible med alle hendelser som er avsluttet innen fi og alle som starter etter sj. Vi legger på a_0 = [-inf, 0) og a_n+1 = [inf, inf+1 ) Vi har da: S = S_0,n+1 Anta aktiviteter sortert etter slutt-tid. Hvis i j så S_ij = {} < := = {1 > < :. : - > <. > - = } = =. : - >. > - = : 1 > 1 = Trenger bare bry oss om S_ij der 0 i < j n+1. Hvis S_ij inneholder a_k har vi to delproblemer: S_ik og S_kj 26 La A_ij være optimal løsning for S_ij. Vi har da: A_ij = A_ik + {a_k} + A_kj hvis vi antar at S_ij ikke er tom og at vi kjenner a_k.
27 Med andre ord: For et mulig subsett kan vi «splitte» på ulike objekter. Rekursiv definisjon av optimal løsning: Dette *kunne* vi ha løst med dynamisk programmering, *men* vi kan *forenkle* =,?, A = {?, A +?, A + } =. < < Vi må altså velge en k og vi må «kvitte» oss med ett delproblem. Finnes det et gyldig «nærsynt» valg? 27
28 Det at den første «halvdelen» forsvinner er ganske opplagt; ellers måtte et element der ha startet *før* elementet (for å være til venstre) og sluttet *etter* (for ikke å bli valgt) og vi ville da ha overlapp. Elementet som slutter først kan tas med «Halvdelen» før dette forsvinner Vi sitter altså igjen med ett delproblem men hvordan kan vi være sikker på at det elementet som slutter først er trygt å ta med? 28
29 La de grå være et optimalt ut valg. Det vil alltid være trygt å bytte den første av dem med det objektet som slutter først, siden det ikke kan «overlappe lenger» enn det grå objektet som slutter først. 29
30 30
31 (,,, ) + <,+ + { } (,,, ) (,,, ) While-løkken leter etter det første lovlige elementet. Altså det elementet som starter etter f og som har tidligst slutt-tid. (Antar sortering etter slutt-tid her.) Denne er jo rekursiv, da Vi kan godt gjøre den iterativ. 31
32 (,, ) { } { } Vi har altså bevist at det er trygt å alltid velge det første (etter slutt-tid) lovlige elementet og det er jo det vi gjør her. 32
33 Eksempel
34 Grådige strategier 34
35 1. Finn optimal substruktur Vi lager gjerne substrukturen med tanke nettopp på å kunne velge grådig og på å eliminere delproblemer. 2. Lag en rekursiv løsning 3. Vis at grådig valg er trygt 4. Vis vi sitter igjen med bare ett delproblem 5. Lag rekursiv grådig løsning 6. Konverter den til en iterativ løsning 35
36 Strømlinjeformet Såkalte «set systems» er en veldig generell problemstruktur for denne typen ting (se kapitlet om matroider i boka; ikke pensum). 1. Formuler som problem der vi kan velge grådig og sitte igjen med ett delproblem 2. Vis at det alltid er trygt å velge grådig 3. Vis at grådig valg + optimal del-løsning gir optimal løsning De siste to punktene gjelder for generelle strukturer som matroider og greedoider. En helt eksakt karakterisering av slike strukturer er gitt ved såkalte matroid embeddings. (Ikke pensum! :-)) 36
37 Vi har altså to hovedingredienser: Greedy-choice-egenskapen Optimal substruktur (Det finnes andre måter å bevise korrekthet for grådighet på, altså ) Det står om matroider i boka. Dere kan jo evt. også google greedoids eller hvis dere er eventyrlystne, matroid embeddings. 37
38 Eksempel Huffmankoder 38
39 e = a = q = Morsekode. Vi er ute etter noe litt lignende. En effektiv, variabel kode. z = 39
40 Prefikskoder (eller prefiksfrie koder): Koder der ingen koder er prefiks av andre koder. Mao. er det aldri tvil om dekodingen. Ulike tegn får koder med ulik lengde Vi kan bruke prefiks-koder Total tekst-lengde skal minimeres Vi har kun informasjon om tegnfrekvenser 40
41 Kodene blir prefiksfrie fordi vi ikke har tegn i de interne nodene. Venstre = 0, høyre = 1. a = 0 0 c b = 0 1 a b c = 1 Vi ønsker å minimere tegnfrekvens * tegndybde (implisitt også tekstlengde). Minner om de optimale søketrærne våre, men vi har ikke noe krav om rekkefølge. 41
42 Huffmans algoritme: Lag et tre for hvert tegn med frekvens-vekt Gjenta: Slå sammen de to letteste trærne 42
43 Prøv å tegne opp hvordan dette treet bygges helst trinn for trinn A : 8 B : 3 C : 1 D : 1 E : 1 F : 1 G : 1 H : 1 43
44 A : 8 B : 3 C : 1 D : 1 E : 1 F : 1 2 G : 1 H : 1 44
45 A : 8 B : 3 C : 1 D : E : 1 F : 1 G : 1 H : 1 45
46 A : 8 B : C : 1 D : 1 E : 1 F : 1 G : 1 H : 1 46
47 A : 8 B : C : 1 D : E : 1 F : 1 G : 1 H : 1 47
48 A : B : C : 1 D : 1 E : 1 F : 1 G : 1 H : 1 48
49 A : B : C : 1 D : 1 E : 1 F : 1 G : 1 H : 1 49
50 Merk: Dette minimerer forventet sti-lengde hvis vi «søker» etter en bokstav. Med andre ord er dette en mer effektiv variant av de optimale søketrærne fra forrige gang bortsett fra at søketre-egenskapen ikke er oppfylt. A : 8 17 Hvis man kan konstruere «ja/nei»- spørsmålene selv (som f.eks. ved en prosedyre for medisinsk diagnose), i stedet for å bruke søkenøkler, så kan Huffmans algoritme også brukes til denslags. 5 4 B : Dette er jo klart en grådig fremgangsmåte men hvorfor blir det optimalt? C : 1 D : 1 E : 1 F : 1 G : 1 H : 1 50
51 Bevis-skisse: Hvis treet ikke er fullt kan vi kollapse stier der noder bare har ett (internt) barn. Bortkastet å ikke ha et fullt tre Det er OK for de to billigste å være søsken, nederst i treet Hvis de to billigste behandles som ett symbol må det resterende treet være optimalt Hvis vi bytter ut ett av dem med et dyrere vil det dyrere ikke komme lenger opp og det billige vil ikke komme lenger ned så det vil ikke bli billigere totalt. 51
52 Min. forv. koding Kombiner minste O(n lg n) Huffmans algoritme 52
Live 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
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
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).
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
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).
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
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 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
DetaljerAugust
None of us truly understands the P versus NP problem, we have only begun to peel the layers around this increasingly complex question. Perhaps we will see a resolution of the P versus NP problem in the
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
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
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
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
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
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
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.
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
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
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
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
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.
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
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,
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:
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
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 å
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
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
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
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.)
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
DetaljerTMA4140 Diskret Matematikk Høst 2016
Norges teknisk naturvitenskapelige universitet Institutt for matematiske fag TMA4140 Diskret Matematikk Høst 2016 Seksjon 10.2 18 La G = (V,E) være en enkel graf med V 2. Ettersom G er enkel er de mulige
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.
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.
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
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.
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
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
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
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
DetaljerLineære ligningssystemer og gausseliminasjon
Kapittel Lineære ligningssystemer og gausseliminasjon Vi skal lære en metode for å finne og beskrive alle løsninger av systemer av m lineære ligninger med n ukjente Oppvarming Her er et eksempel på et
DetaljerEksamen i tdt4120 Algoritmer og datastrukturer
Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap Side 1 av 5 Oppgavestillere: Magnus Lie Hetland Jon Marius Venstad Kvalitetskontroll: Magnar Nedland Faglig
DetaljerINF2220: Time 4 - Heap, Huffmann
INF0: Time 4 - Heap, Huffmann Mathias Lohne mathialo Heap (prioritetskø) En heap (også kalt prioritetskø) er en type binært tre med noen spesielle struktur- og ordningskrav. Vi har to typer heap: min-
DetaljerLøsningsforslag for utvalgte oppgaver fra kapittel 9
Løsningsforslag for utvalgte oppgaver fra kapittel 9 9.2 1 Grafer og minne.......................... 1 9.2 4 Omvendt graf, G T......................... 2 9.2 5 Kompleksitet............................
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
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
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:
DetaljerMAT1030 Forelesning 25
MAT1030 Forelesning 25 Trær Roger Antonsen - 29. april 2009 (Sist oppdatert: 2009-04-29 00:28) Forelesning 25 Litt repetisjon Vi har snakket om grafer og trær. Av begreper vi så på var følgende. Eulerstier
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
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
DetaljerForelesning 25. MAT1030 Diskret Matematikk. Litt repetisjon. Litt repetisjon. Forelesning 25: Trær. Roger Antonsen
MAT1030 Diskret Matematikk Forelesning 25: Trær Roger Antonsen Institutt for informatikk, Universitetet i Oslo Forelesning 25 29. april 2009 (Sist oppdatert: 2009-04-29 00:28) MAT1030 Diskret Matematikk
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
DetaljerKorteste Vei I. Lars Vidar Magnusson 9.4.2014. Kapittel 24 Hvordan finne korteste vei Egenskaper ved korteste vei
Korteste Vei I Lars Vidar Magnusson 9.4.2014 Kapittel 24 Hvordan finne korteste vei Egenskaper ved korteste vei Korteste Vei Problemet I denne forelesningen skal vi se på hvordan vi kan finne korteste
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.
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.
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
DetaljerAlgDat 12. Forelesning 2. Gunnar Misund
AlgDat 12 Forelesning 2 Forrige forelesning Følg med på hiof.no/algdat, ikke minst beskjedsida! Algdat: Fundamentalt, klassisk, morsomt,...krevende :) Pensum: Forelesningene, oppgavene (pluss deler av
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
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
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
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.
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
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
DetaljerDijkstras algoritme Spørsmål
:: Forside s algoritme Åsmund Eldhuset asmunde *at* stud.ntnu.no folk.ntnu.no/asmunde/algdat/dijkstra.pdf :: Vi er ofte interessert i å finne korteste, raskeste eller billigste vei mellom to punkter Gods-
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
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
DetaljerGrunnleggende Grafalgoritmer II
Grunnleggende Grafalgoritmer II Lars Vidar Magnusson March 17, 2015 Kapittel 22 Dybde-først søk Topologisk sortering Relasjonen til backtracking Dybde-Først Søk Dybde-først søk i motsetning til et bredde-først
DetaljerForelesning 30: Kompleksitetsteori
MAT1030 Diskret Matematikk Forelesning 30: Kompleksitetsteori Roger Antonsen Institutt for informatikk, Universitetet i Oslo Forelesning 30: Kompleksitetsteori 19. mai 2009 (Sist oppdatert: 2009-05-19
DetaljerForelesning 24. Grafer og trær. Dag Normann april Vektede grafer. En kommunegraf
Forelesning 24 Grafer og trær Dag Normann - 21. april 2008 Vi har snakket om grafer og trær. Av begreper vi så på var Eulerkretser og Eulerstier Hamiltonkretser Minimale utspennende trær. Vi skal nå se
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
DetaljerVektede grafer. MAT1030 Diskret matematikk. En kommunegraf. En kommunegraf. Oppgave
MAT1030 Diskret matematikk Forelesning 24: Grafer og trær Dag Normann Matematisk Institutt, Universitetet i Oslo 21. april 2008 Vi har snakket om grafer og trær. Av begreper vi så på var Eulerkretser og
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
DetaljerLineære ligningssystemer og gausseliminasjon
Kapittel Lineære ligningssystemer og gausseliminasjon Vi skal lære en metode for å finne og beskrive alle løsninger av systemer av m lineære ligninger med n ukjente. Oppvarming Her er et eksempel på et
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
Detaljer45011 Algoritmer og datastrukturer Løsningsforslag eksamen 13. januar 1992
45011 Algoritmer og datastrukturer Løsningsforslag eksamen 13. januar 12 Oppgave 1 Idé til algoritme Benytter S n som betegn på en tallmengde med n elementer. For at et tall m skal være et majoritetstall
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
DetaljerMatchinger i ikke-bipartite grafer
Matchinger i ikke-bipartite grafer Stein Krogdahl, Notat til INF 3/4130 Sist revidert september 2006 Vi skal i dette notatet se på det å finne matchinger i generelle grafer, uten noe krav om at grafen
DetaljerNP-kompletthet. «Hvordan gjøre noe lett for å vise at noe annet er vanskelig»
NP-kompletthet «Hvordan gjøre noe lett for å vise at noe annet er vanskelig» Gjennomgang Øving 12, maks flyt Oppskrift på et NPkomplett problem 1. Vise at problemet er veldig lett å sjekke 2. Vise at problemet
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
DetaljerINF1010 notat: Binærsøking og quicksort
INF1010 notat: Binærsøking og quicksort Ragnhild Kobro Runde Februar 2004 I dette notatet skal vi ta for oss ytterligere to eksempler der rekursjon har en naturlig anvendelse, nemlig binærsøking og quicksort.
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
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF2220 Algoritmer og datastrukturer Eksamensdag: 16. desember 2013 Tid for eksamen: 14.30 18.30 Oppgavesettet er på 8 sider.
DetaljerAvsluttende eksamen i TDT4125 Algoritmekonstruksjon, videregående kurs
TDT4125 2010-06-03 Kand-nr: 1/5 Avsluttende eksamen i TDT4125 Algoritmekonstruksjon, videregående kurs Eksamensdato 3. juni 2010 Eksamenstid 0900 1300 Sensurdato 24. juni Språk/målform Bokmål Kontakt under
DetaljerKorteste vei problemet (seksjon 15.3)
Korteste vei problemet (seksjon 15.3) Skal studere et grunnleggende kombinatorisk problem, men først: En (rettet) vandring i en rettet graf D = (V, E) er en følge P = (v 0, e 1, v 1, e 2,..., e k, v k
DetaljerGrafteori. MAT1030 Diskret Matematikk. Repetisjon og mer motivasjon. Repetisjon og mer motivasjon. Forelesning 23: Grafteori.
MAT030 Diskret Matematikk Forelesning 23: Grafteori Dag Normann Matematisk Institutt, Universitetet i Oslo Grafteori 20. april 200 (Sist oppdatert: 200-04-20 4:8) MAT030 Diskret Matematikk 20. april 200
DetaljerMAT1030 Diskret Matematikk
MAT1030 Diskret Matematikk Forelesning 23: Grafteori Dag Normann Matematisk Institutt, Universitetet i Oslo 20. april 2010 (Sist oppdatert: 2010-04-20 14:17) Grafteori MAT1030 Diskret Matematikk 20. april
DetaljerMAT1030 Forelesning 23
MAT030 Forelesning 23 Grafteori Roger Antonsen - 22. april 2009 (Sist oppdatert: 2009-04-22 2:36) Forelesning 23 Repetisjon og mer motivasjon Først litt repetisjon En graf består av noder og kanter Kanter
DetaljerForelesning 23. MAT1030 Diskret Matematikk. Repetisjon og mer motivasjon. Repetisjon og mer motivasjon. Forelesning 23: Grafteori.
MAT030 Diskret Matematikk Forelesning 23: Grafteori Roger Antonsen Institutt for informatikk, Universitetet i Oslo Forelesning 23 22. april 2009 (Sist oppdatert: 2009-04-22 2:37) MAT030 Diskret Matematikk
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
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»
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
DetaljerFørst litt praktisk info. Sorteringsmetoder. Nordisk mesterskap i programmering (NCPC) Agenda
Først litt praktisk info Sorteringsmetoder Gruppeøvinger har startet http://selje.idi.ntnu.no:1234/tdt4120/gru ppeoving.php De som ikke har fått gruppe må velge en av de 4 gruppende og sende mail til algdat@idi.ntnu.no
DetaljerLOGISK PROGRAMMERING. Prolog (kapittel 8): Fakta Regler Spørsmål Variable Hvordan finne svar? Unifikasjon Lister
LOGISK PROGRAMMERING Prolog (kapittel 8): Fakta Regler Spørsmål Variable Hvordan finne svar? Unifikasjon Lister Hoved-prinsipp: Hva istedenfor Hvordan! 1/16 Forelesning 13 18.11.2003 Logisk programmering
DetaljerDagens temaer. Sortering: 4 metoder Søking: binærsøk Rekursjon: Hanois tårn
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»
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
DetaljerGo with the. Niende forelesning. Mye matematikk i boka her ikke så komplisert, men mye å holde styr på.
Go with the Niende forelesning Mye matematikk i boka her ikke så komplisert, men mye å holde styr på. Fokuserer på de viktigste ideene i dagens forelesning, så det forhåpentligvis blir lettere å skjønne
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
Detaljer