Oppgave 1 Minimum edit distance
|
|
|
- Haldor Fosse
- 9 år siden
- Visninger:
Transkript
1 INF-2810 V 2012 Oppgavesett 10, kalenderuke 12. Oppgave 1 Minimum edit distance Vi vil finne det minste antall redigeringsoperasjoner som kreves for å komme fra strengen A til strengen B. Strengene oppgis som symboler og konverteres til strenger som igjen konverteres til lister med tegn. (string->list (symbol->string 'hallo)) ==> (#\h #\a #\l #\l #\o). For sammenligning av listelementer bruker vi primitiven char=?. 1.a Prosedyren min-edit-dist-functional finner det minste antall redigeringsoperasjoner ved å løpe gjennom de to listene i en rekursive prosedyre. - Hvis A tar slutt før B økes kostnaden med lengden til resten av B, og vice versa. - Så lenge car-elementene i de to listen er like, går vi videre i begge uten at kostnaden øker. - Når car-elementene er ulike, fortsetter rekursjonen i to grener - til venstre med (cdr A) og B og - til høyre med A og (cdr B) og returnerer omkostningene ved den billigste av de to grenene. For hver forgrening økes kostnaden med 1. Eks: (forskjell '(h a l l o) '(h a l lo)) ==> 0 (forskjell '(h a l l o) '(h a l o)) ==> 1 (forskjell '(h a l l o) '(h o l a)) ==> 5 (forskjell '(h a l l o) '(t y t t e b æ r)) ==> 13 Implementer min-edit-dist-functional. 1.b Prosedyre n min-edit-dist-destructive finner det minste antall redigeringsoperasjoner ved hjelp av en matrise (todimensjonal tabell) M der liste A bestemmer radene og liste B bestemmmer kolonnene. La a-leng og b-leng være lengdene til henholdsvis A og B. Da skal første rad i M være en enumerering fra 0 tilb-leng. Under dettte skal det være a-leng rader som starter med henholdsvis 1, 2, osv. og som ellers inneholder nuller. 1
2 F.eks. hvis A = (h a l l o) og B = (h o l a), får vi ( ) ( ) M = ( ) ( ) ( ) ( ) som vi for leselighetens skyld skriver slik: h a l l o h o l a Den første radene er indeksene til tegnene i B, regnet fra 1, og gir samtidig kostnadene ved å settte inn hele B. Den første kolonnen er indeksene til tegnene i A, regnet fra 1, og gir samtidig kostnadene ved å slettte hele A. Der neste tegn i A = neste tegn i B, kan vi gå diagonalt uten omkostninger. Algoritmen løper gjennom matrisen og fyller cellene med kostnadene ved å komme dit. Utfylling av kostnadene i de enkelte cellene Står vi i celle M[i, j], så er - kostnaden ved å gå ett trinn bort, til M[i + 1, j], eller ett trinn ned, til M[i, j + 1] = 1, mens - kostnadene ved å gå diagonalt, til M[i + 1, j + 1] er enten 0 eller 2, avhengig av om B[i + 1] = A[j + 1] eller ikke. Disse ett-trinns-kostnadene legges til det det har kostet å komme til M[i, j]. Med eksemplet over får vi, når hele matrisen en er gjennomløpt, h a l l o h o l a De røde tallene viser én mulig vei, mens de fete tallene viser det området den korteste veien må gå gjennom. Fyll ut prosedyren traverse i skallet min-edit-distance-skall.scm. Her er en nokså ordrik gjennomgang av minimum edit distance algoritmen: 2
3 Oppgave 2 Antall binære trær med n noder Med null noder får vi ett tre det tomme treet Med én node får vi også ett tre. Med to noder får vi to trær Med tre noder får vi fem trær Med fire node får vi fjorten trær I mengden av trær med nodene {1, 2, 3, 4, 5} har alle én av disse nodene som rot. I mengden av trær der 1 er rot har vi ett venstre-subtre,, og 14 høyre-subtrær, tilsammen 14 trær. Med 2 som rot har vi 1 venstre- og 5 høyre-subtrær, tilsammen 5 trær. Med 3 som rot har vi 2 venstre og 2 høyre-subtrær som, når vi kombinerer dem, gir tilsammen 2 2 = 4 trær. Med rot 4 og 5 har vi, som med rot 2 og 1, hhv. 5 og 14 trær, og legger vi alt dette sammen får vi 42 trær. Tilsvarende, med nodene 1.. 6, får vi = 132 trær. Generelt, med n noder og rot k, 1 k n er antall venstre-subtrær = antall trær med k 1 noder, antall høyre-subtrær = antall trær med n k noder, og antall trær totalt = produktet av disse. Tilsammen er antall trær med n noder = summen av produktene av antall trær med i 1 noder og antall trær med n i noder, for i = 1 til n. Eller med andre ord, hvis f(n) = antall trær med n noder, har vi: n f(n) = f(0) f(n 1) f(n 1)f(0) = f(i 1)f(n i), n 1 (1) i=1 3
4 2a. Algoritme 1 Med henblikk på en implementasjon kan vi bruke en lokal iterator for akkumulering av summetermen f(i 1)f(n i). (define (count-b-trees-1 n) (2) (define (sum i s) <tell fra og med i til og med n og akkumulér produktene i summen s>) <kroppen til count-b-trees-1>) Skriv count-b-trees i hht. algoritme 1. 2b. Algoritme 2 Selv om vi har en lokal akkumulerende iterator i (2) får vi allikevel eksponensiell vekst, i og med at vi hele tiden tar produktet av to kall på count-b-trees. For å unngå dette kan vi lage en liste med de resultatene vi har funnet i stigende orden (r 1,, r k ). Da vil r k+1 være r 1 r k + r 2 r k r k r 1. (3) F.eks. de 6 første resultatene, fra f(0) til f(5), er 1, 1, 2, 5, 14, 42. Dette gir f(6) = f(7) = (4) = = 132 = = 429 Denne algoritmen gir kvadratisk vekst. Skriv count-b-trees-2 i hht. algoritme 2. 2c. Algoritme 3 Som vi ser gir beregningen i implementasjon 2 en symmetrisk liste med produkter. Dette kan vi utnytte slik: Hvis vi har et like antall summer dobler vi resultatet av summeringen av den første halvdelen av produktene, og hvis vi har et odde antall summer legger vi kvadratet av det midterste tallet til det dobbelte av summen opp til midten. F.eks. slik: ( ) = 2( ) ( ) = 2( ) (5) Skriv count-b-trees-3 i hht. algoritme 3. 4
5 2d. Algoritme 4 Vi antar nå at det finnes en lineær funksjon g slik at I så fall skal vi ha f(n) = g(n)f(n 1). (6) For n = 10 får vi g(1), g(2),, g(n 1) = f(2) / f (1), f(3) / f (2),, f(n) / f (n 1), , 2, 2, 2, 3, 3, 3, 3, 3, 3 (7) =,,,,,,,,, (8) Etter våre antagerlser skal det være mulig å skrive om (8) slik at rekkene med tellere og nevnere blir jevnt stigende. Vi kan gjette, eller vi kan skrive en prosedyre som gir oss slike rekker, om input passer. - Vi løper gjennom listen med tall og ser på tre suksessive tall av gangen, a, b og c og - beregner d til taket av snittet av a og c, (a + b)/2, i Scheme: (inexact->exact (ceiling (/ (+ a c) 2))). - Hvis b d legger vi d inn i ut-listen, og, for å få rett gjennomsnitt i neste runde, legger vi også d først i resten av in-listen; og så noterer vi oss at listen ble endret. Prosessen gjentas inntil ingen endringer ble utført. Feks. skal vi for rekken av tellerne i (8) få (lift '( )) ==> ( ) Vi ser at fra og med det andre tallet stiger rekken jevnt med 4. Skriv prosedyren lift for løfting og utjevning av lister med tall, bruk prosedyren til å bestemme funksjonen g, og skriv count-b-trees som en implementasjon av (6). Drøfting av prosedyren lift La P = (p 1,, p n ) og Q = (q 1,, q n ) være lister med heltall slik at P er jevnt stigende, Q P, q 1 = p 1, q n = p n, og q i p i, for 1 i n, (P og Q begynner og slutter med samme tall, og ellers er tallene i Q de tilsvarende tallene i P). Da er lift(q) = P. - At P er jevnt stigende betyr at for alle tripler xyz i P så er y = (x + z)/2. - Hvis Q P så finnes det en trippel xyz i Q slik at y < (x + z)/2, fordi siden P er stigende må q n være større enn q 1, Q må ha et minimum m < q n, og hvis q m er det siste tallet i Q som er lik m, må q m < (q m 1 + q m+1 )/2. Etter en runde i den indre iteratoren vil q m = (q m 1 + q m+1 )/2. Da er enten Q = P eller så gjelder det samme som over. 5
6 2e. Telling av antall beregninger For å telle antall kjerneoperasjoner under utførelsen av de ulike implementasjonene kan vi erstatte kallene på * med en multiplikator med en intern kall-teller. Multiplikatoren må være en prosedyre som har en lokal teller, initielt = 0, i sin umiddelbare omgivelse, tar et valgritt antall argumenter og virker slik: Hvis den kalles uten argument, setter den telleren til 0 og returnerer den verdien telleren hadde før nullstillingen, og ellers øker den telleren med 1 og returnerer produktet av sine argumenter. Skriv ovennevnte konstruktor, bruk denne til å lage en prosedyren mul, erstatt alle kall på * med kall på mul, og kall mul med 0 som argument etter hvert kall på de ulike implementasjonene. 2f. For spesielt interesserte En implementasjon av algoritme 4 viser at f(n) 2(2n 3) g(n) = = (9) f(n 1) n og dermed at 2(2n 3) f(n 1) f(1) = 1, f(n) =, n > 1 (10) n som vi kan skrive om til: 2(2 2 3) 2(2 3 3)... 2(2 n 3) 2 n (2n 3) f(n) = = osv. (11) n n! til vi står igjen med et relativt enkelt uttrykk på fomen n( (n))! = (12) (n!) De som har moro av det, kan prøve å gjennomføre omskriving, og finne og, og/eller finne andre omskrivninger som gir andre forenklinger. 6
INF2810: Funksjonell Programmering. Trær og mengder
INF2810: Funksjonell programmering INF2810: Funksjonell Programmering Trær og mengder Erik Velldal Universitetet i Oslo 19. februar 2015 Tema Forrige uke Høyereordens prosedyrer lambda, let og lokale variabler
INF2810: Funksjonell Programmering. Lokale variabler. Og trær.
INF2810: Funksjonell Programmering Lokale variabler. Og trær. Erik Velldal Universitetet i Oslo 11. september 2019 Tema forrige uke 2 Lister som datastruktur quote Rekursjon på lister Høyereordens prosedyrer
Definisjon. 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
INF2220: Forelesning 1. Praktisk informasjon Analyse av algoritmer (kapittel 2) (Binær)trær (kapittel )
INF2220: Forelesning 1 Praktisk informasjon Analyse av algoritmer (kapittel 2) (Binær)trær (kapittel 4.1-4.3 + 4.6) PRAKTISK INFORMASJON 2 Praktisk informasjon Kursansvarlige Ragnhild Kobro Runde ([email protected])
EKSAMEN med løsningsforslag
EKSAMEN med løsningsforslag Emnekode: ITF20006 Emne: Algoritmer og datastrukturer Dato: Eksamenstid: 20. mai 2009 kl 09.00 til kl 13.00 Hjelpemidler: 8 A4-sider (4 ark) med egne notater Kalkulator Faglærer:
Definisjon 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
Binæ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(?):
Definisjon: 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
EKSAMEN 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
Binæ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
INF Algoritmer og datastrukturer. Hva er INF2220? Algoritmer og datastrukturer
Praktiske opplysninger INF2220 - Algoritmer og datastrukturer HØSTEN 2007 Institutt for informatikk, Universitetet i Oslo Tid og sted: Mandag kl. 12:15-14:00 Store auditorium, Informatikkbygningen Kursansvarlige
INF2810: Funksjonell Programmering
INF2810: Funksjonell Programmering Høyereordens prosedyrer, lambda og lokale variabler Erik Velldal Universitetet i Oslo 9. februar 2017 Tema 2 Forrige uke Lister og listerekursjon quote Høyereordens prosedyrer
INF2810: Funksjonell Programmering
INF2810: Funksjonell Programmering Høyereordens prosedyrer, lambda og lokale variabler Erik Velldal Universitetet i Oslo 9. februar 2017 Tema 2 Forrige uke Lister og listerekursjon quote Høyereordens prosedyrer
Algoritmer og Datastrukturer
Eksamen i Algoritmer og Datastrukturer IAI 21899 Høgskolen i Østfold Avdeling for informatikk og automatisering Lørdag 15. desember 2001, kl. 09.00-14.00 Hjelpemidler: Alle trykte og skrevne hjelpemidler.
Binæ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
(define (naer-nok-kuberot? y x) (< (abs (- (kube y) x)) 0.001)) (define (naermere-kuberot y x) (/ (+ (* y 2) (/ x (kvadrat y))) 3))
Oppgave 1 For å komme nærmere kuberoten (tredjeroten) til et tall x fra en foreløpig tilnærming y, kan vi bruke formelen (2y + x/y 2 )/3. Skriv prosedyrene (nær-nok-kuberot? y x), (nærmere-kuberot y x)
INF1010 Rekursive metoder, binære søketrær. Algoritmer: Mer om rekursive kall mellom objekter Ny datastruktur: binært tre
INF1010 Rekursive metoder, binære søketrær Algoritmer: Mer om rekursive kall mellom objekter Ny datastruktur: binært tre public void skrivutmeg ( ) { System. out. println (navn + " er venn med " + minbestevennheter
PG4200 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
Hva er en algoritme? INF HØSTEN 2006 INF1020. Kursansvarlige Ragnar Normann E-post: Dagens tema
va er en algoritme? Vanlig sammenligning: Oppskrift. nput lgoritme NF1020 - ØSTEN 2006 Kursansvarlige Ragnar Normann E-post: [email protected] Output Knuth : tillegg til å være et endelig sett med regler
INF2220: 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
Høyere-ordens prosedyrer
INF2810: Funksjonell programmering Høyere-ordens prosedyrer Stephan Oepen & Erik Velldal Universitetet i Oslo 8. februar, 2013 Tema 2 Forrige uke Lister og listerekursjon Høyere-ordens prosedyrer Prosedyrer
UNIVERSITETET I OSLO
Eksamen i UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamensdag: 13. desember 2011 Tid for eksamen: 14.30 18.30 Oppgavesettet er på 7 sider. Vedlegg: INF2220 lgoritmer og datastrukturer
INF2220: 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
INF2810: Funksjonell Programmering. Kommentarer til prøveeksamen
INF2810: Funksjonell programmering INF2810: Funksjonell Programmering Kommentarer til prøveeksamen Erik Velldal Universitetet i Oslo 1: Grunnleggende (6 poeng)? (define foo '(a b))? (define bar foo)? (set!
Rekursjon og lister. Stephan Oepen & Erik Velldal. 1. februar, Universitetet i Oslo
INF2810: Funksjonell programmering Rekursjon og lister Stephan Oepen & Erik Velldal Universitetet i Oslo 1. februar, 2013 Agenda 2 Forrige uke Scheme Substitusjonsmodellen Blokkstruktur Predikater Kondisjonale
INF1010 Binære søketrær ++
INF1010 Binære søketrær ++ Programeksempler med insetting, gjenfinning av noder i et binært søketre samt eksempler på hvordan lage en liste av et binærtre. Hva må du kunne om binære søketrær i INF1010
Løsnings forslag i java In115, Våren 1998
Løsnings forslag i java In115, Våren 1998 Oppgave 1 // Inne i en eller annen klasse private char S[]; private int pardybde; private int n; public void lagalle(int i) if (i==n) bruks(); else /* Sjekker
Eksamen 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
Et 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
Innlevering 2a i INF2810, vår 2017
Innlevering 2a i INF2810, vår 2017 Hovedtematikken denne gang er Huffman-koding, som ble dekket i 6. forelesning (23. februar) og i seksjon 2.3.4 i SICP. Det er viktig å ha lest denne seksjonen før dere
Algoritmer 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
LO118D 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
Løsnings forslag i java In115, Våren 1996
Løsnings forslag i java In115, Våren 1996 Oppgave 1a For å kunne kjøre Warshall-algoritmen, må man ha grafen på nabomatriseform, altså en boolsk matrise B, slik at B[i][j]=true hvis det går en kant fra
Vi skal se på lambda-uttrykk. Følgende er definerte og vil bli brukt gjennom oppgaven
SLI 230 - side 2 av 8 EKSAMENSOPPGAVE - SLI 230 - VÅR 2000 Nedenfor følger eksamensoppgaver i SLI 230. Først om oppgavene Bakerst følger to sider med hjelp slik det er avtalt - liste over primitiver fra
INF2810: Funksjonell Programmering
INF2810: Funksjonell Programmering Omgivelsesmodeller og destruktive listeoperasjoner Stephan Oepen & Erik Velldal Universitetet i Oslo 15. mars 2013 Tema 2 Forrige uke Representasjon av mengder Sorterte
Algoritmer og datastrukturer Løsningsforslag
Algoritmer og datastrukturer ved Høgskolen i OsloSide 1 av 6 Algoritmer og datastrukturer Løsningsforslag Eksamen 24. februar 2010 Oppgave 1A 1. Komparatoren sammenligner først lengdene til de to strengene.
Løsningsforslag. Emnekode: Emne: Matematikk for IT ITF Eksamenstid: Dato: kl til kl desember Hjelpemidler: Faglærer:
Løsningsforslag Emnekode: ITF75 Dato: 7. desember Emne: Matematikk for IT Eksamenstid: kl 9. til kl. Hjelpemidler: To -ark med valgfritt innhold på begge sider. Kalkulator er ikke tillatt. Faglærer: Christian
Et 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
UNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i: INF2810 Eksamensdag: 5. juni, 2014 Tid for eksamen: 14:30 (4 timer) Oppgavesettet er på 4 sider. Vedlegg: Ingen Tillatte hjelpemidler:
Balanserte binære søketrær
Balanserte trær Balanserte binære søketrær Balanserte binære søketrær høyden (l treet er O(log 2 n) AVL trær rød-svarte trær svake AVL trær splaytrær heaps AVL trær rød-svarte trær svake AVL trær splaytrær
UNIVERSITETET 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
INF2810: Funksjonell Programmering. Lister og høyereordens prosedyrer
INF2810: Funksjonell Programmering Lister og høyereordens prosedyrer Erik Velldal Universitetet i Oslo 2. februar 2017 Agenda 2 Forrige uke Substitusjonsmodellen og evalueringsstrategier. Blokkstruktur
Rekursiv programmering
Rekursiv programmering Babushka-dukker En russisk Babushkadukke er en sekvens av like dukker inne i hverandre, som kan åpnes Hver gang en dukke åpnes er det en mindre utgave av dukken inni, inntil man
Dynamisk 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.
INF2220: Forelesning 1
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 Ingrid Chieh Yu de Vibe ([email protected])
Algoritmer og Datastrukturer
Eksamen i Algoritmer og Datastrukturer IAI 21899 Høgskolen i Østfold Avdeling for informatikk og automatisering Torsdag 3. november 2, kl. 9. - 14. Hjelpemidler: Alle trykte og skrevne hjelpemidler. Kalkulator.
Datastrukturer for rask søking
Søking Søkeproblemet Gitt en datastruktur med n elementer: Finnes et bestemt element (eller en bestemt verdi) x lagret i datastrukturen eller ikke? Effektiviteten til søkealgoritmer avhenger av: Om datastrukturen
Innledning. IN2010/INF Algoritmer og datastrukturer. Tirsdag 27. november 2018 Kl (4 timer)
Innledning IN2010/INF2220 - Algoritmer og datastrukturer Tirsdag 27. november 2018 Kl. 14.30-18.30 (4 timer) Oppgavesettet består av totalt 15 oppgaver. Poengsum er angitt for hver oppgave. Maksimum poengsum
Par og Lister (først et par sider fra forrige uke) Par er byggestener for lister og trær og sammensatte datatyper.
Par og Lister (først et par sider fra forrige uke) Par er byggestener for lister og trær og sammensatte datatyper. Par kan representeres grafiske slik: Som vi ser kan vi bruke cons til å lage par hvis
INF2810: Funksjonell Programmering
INF2810: Funksjonell Programmering Høyereordens prosedyrer, lambda og lokale variabler Stephan Oepen Universitetet i Oslo 9. februar 2015 Tema 2 Forrige uke Lister og listerekursjon quote Høyereordens
INF2810: Funksjonell Programmering. Huffman-koding
INF2810: Funksjonell Programmering Huffman-koding Stephan Oepen & Erik Velldal Universitetet i Oslo 22. februar, 2013 Tema 2 Forrige uke Data-abstraksjon Lister av lister Tre-rekursjon Prosedyrer som datastruktur
INF2810: Funksjonell Programmering. Lister og høyereordens prosedyrer
INF2810: Funksjonell programmering INF2810: Funksjonell Programmering Lister og høyereordens prosedyrer Erik Velldal Universitetet i Oslo 5. februar 2015 Agenda Forrige uke Substitusjonsmodellen og evalueringsstrategier.
Algoritmer og datastrukturer Løsningsforslag
1 Algoritmer og datastrukturer Løsningsforslag Eksamen 29. november 2011 Oppgave 1A Verdien til variabelen m blir lik posisjonen til den «minste»verdien i tabellen, dvs. bokstaven A, og det blir 6. Oppgave
EKSAMEN. Dato: 18. mai 2017 Eksamenstid: 09:00 13:00
EKSAMEN Emnekode: ITF20006 Emne: Algoritmer og datastrukturer Dato: 18. mai 2017 Eksamenstid: 09:00 13:00 Hjelpemidler: Alle trykte og skrevne Kalkulator Faglærer: Jan Høiberg Om eksamensoppgavene: Oppgavesettet
Søkeproblemet. Gitt en datastruktur med n elementer: Finnes et bestemt element (eller en bestemt verdi) x lagret i datastrukturen eller ikke?
Søking Søkeproblemet Gitt en datastruktur med n elementer: Finnes et bestemt element (eller en bestemt verdi) x lagret i datastrukturen eller ikke? Effektiviteten til søkealgoritmer avhenger av: Om datastrukturen
INF2810: Funksjonell Programmering. Huffman-koding
INF2810: Funksjonell Programmering Huffman-koding Stephan Oepen & Erik Velldal Universitetet i Oslo 22. februar, 2013 Tema 2 Forrige uke Data-abstraksjon Lister av lister Tre-rekursjon Prosedyrer som datastruktur
INF Algoritmer og datastrukturer
INF2220 - Algoritmer og datastrukturer Institutt for informatikk, Universitetet i Oslo INF2220, forelesning 11: Huffman-koding & Dynamisk programmering (Ifi, UiO) INF2220 H2015, forelesning 11 1 / 32 Dagens
INF2810: Funksjonell programmering: Mer om Scheme. Rekursjon og iterasjon.
INF2810: Funksjonell programmering: Mer om Scheme. Rekursjon og iterasjon. Stephan Oepen & Erik Velldal Universitetet i Oslo 25. januar, 2013 På blokka 2 Forrige uke Introduksjon og oversikt Funksjonell
TMA4140 Diskret Matematikk Høst 2016
Norges teknisk naturvitenskapelige universitet Institutt for matematiske fag TMA4140 Diskret Matematikk Høst 2016 Seksjon 10.2 18 La G = (V,E) være en enkel graf med V 2. Ettersom G er enkel er de mulige
Dagens tema. INF Algoritmer og datastrukturer. Binærtrær. Generelle trær
Dagens tema INF2220 - Algoritmer og datastrukturer HØSTEN 2007 Institutt for informatikk, Universitetet i Oslo INF2220, forelesning 2: Binærtrær og abstrakte datatyper (ADT) Kort repetisjon Generelle trær
Symbolske data SICP 2.3
Symbolske data SICP 2.3 Vi har så langt alt vesentlig sett på tall enkeltstående tall, talluttrykk, og lister og trær med tall. Et av målene for John McCarthy (opphavsmannen til Lisp) var å lage et språk
Dynamisk 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.)
Alg. Dat. Øvingsforelesning 3. Grafer, BFS, DFS og hashing. Børge Rødsjø [email protected]
Alg. Dat Øvingsforelesning 3 Grafer, BFS, DFS og hashing Børge Rødsjø [email protected] Dagens tema Grafer Terminologi Representasjon av grafer Bredde først søk (BFS) Dybde først søk (DFS) Hashing Hashfunksjoner,
ITF20006 Algoritmer og datastrukturer Oppgavesett 7
ITF Algoritmer og datastrukturer Oppgavesett 7 Av Thomas Gabrielsen Eksamen Oppgave. ) Det tar konstant tid å hente et gitt element fra en tabell uavhengig av dens størrelse, noe som med O-notasjon kan
EKSAMEN. Algoritmer og datastrukturer
EKSAMEN Emnekode: ITF20006 Emne: Algoritmer og datastrukturer Dato: Eksamenstid: 20. mai 2009 kl 09.00 til kl 13.00 Hjelpemidler: 8 A4-sider (4 ark) med egne notater Kalkulator Faglærer: Gunnar Misund
Dagens plan. INF Algoritmer og datastrukturer. Koding av tegn. Huffman-koding
Grafer Dagens plan INF2220 - Algoritmer og datastrukturer HØSTEN 2007 Institutt for informatikk, Universitetet i Oslo Avsluttende om grådige algoritmer (kap. 10.1.2) Dynamisk programmering Floyds algoritme
Hvorfor 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
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 å
INF110 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
Kap 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
EKSAMEN. Emne: Algoritmer og datastrukturer
1 EKSAMEN Emnekode: ITF20006 000 Dato: 19. mai 2010 Emne: Algoritmer og datastrukturer Eksamenstid: 09:00 til 13:00 Hjelpemidler: 8 A4-sider (4 ark) med egne notater Faglærer: Gunnar Misund Oppgavesettet
Algoritmer og datastrukturer Eksamen 22. februar 2011
Side 1 av 5 Algoritmer og datastrukturer Eksamen 22. februar 2011 Eksamenstid: 5 timer Hjelpemidler: Alle trykte og skrevne + håndholdt kalkulator som ikke kommuniserer. Faglærer: Ulf Uttersrud Råd og
Notater til INF2220 Eksamen
Notater til INF2220 Eksamen Lars Bjørlykke Kristiansen December 13, 2011 Stor O notasjon Funksjon Navn 1 Konstant log n Logaritmisk n Lineær n log n n 2 Kvadratisk n 3 Kubisk 2 n Eksponensiell n! Trær
Eksamen iin115, 14. mai 1998 Side 2 Oppgave 1 15 % Du skal skrive en prosedyre lagalle som i en global character array S(1:n) genererer alle sekvenser
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i IN 115 Algoritmer og datastrukturer Eksamensdag: 14. mai 1998 Tid for eksamen: 9.00 15.00 Oppgavesettet er på 8 sider. Vedlegg:
