Høgskoleni østfold EKSAMEN. 4 dobbeltsidige ark med notater Lars Magnusson

Like dokumenter
Ny/utsatt EKSAMEN. Dato: 6. januar 2017 Eksamenstid: 09:00 13:00

EKSAMEN. Dato: 28. mai 2018 Eksamenstid: 09:00 13:00

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

EKSAMEN. Dato: 9. mai 2016 Eksamenstid: 09:00 13:00

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Oppgavesettet består av 7 sider, inkludert denne forsiden. Kontroll& at oppgaven er komplett før du begynner å besvare spørsmålene.

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Om Kurset og Analyse av Algoritmer

EKSAMEN. Dato: 18. mai 2017 Eksamenstid: 09:00 13:00

Minimum Spenntrær - Kruskal & Prim

EKSAMEN. Algoritmer og datastrukturer. Eksamensoppgaven: Oppgavesettet består av 11 sider inklusiv vedlegg og denne forsiden.

EKSAMEN. Emne: Algoritmer og datastrukturer

Ny/utsatt EKSAMEN. Dato: 5. januar 2018 Eksamenstid: 09:00 13:00

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

EKSAMEN Løsningsforslag. med forbehold om bugs :-)

Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer

LØSNINGSFORSLAG, EKSAMEN I ALGORITMER OG DATASTRUKTURER (IT1105)

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

EKSAMEN. Emne: Algoritmer og datastrukturer

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer

EKSAMEN. Oppgavesettet består av 16 oppgaver. Ved sensur vil alle oppgaver telle like mye med unntak av oppgave 6 som teller som to oppgaver.

Eksamen i tdt4120 Algoritmer og datastrukturer

EKSAMEN. Algoritmer og datastrukturer

EKSAMEN med løsningsforslag

Ekstra ark kan legges ved om nødvendig, men det er meningen at svarene skal få plass i rutene på oppgavearkene. Lange svar teller ikke positivt.

Heapsort. Lars Vidar Magnusson Kapittel 6 Heaps Heapsort Prioritetskøer

Algdat Eksamensforelesning. Nils Barlaug

EKSAMENSOPPGAVE. INF-1101 Datastrukturer og algoritmer. Adm.bygget, rom K1.04 og B154 Ingen

Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer

Løsningsforslag. Emnekode: Emne: Matematikk for IT ITF Eksamenstid: Dato: kl til kl desember Hjelpemidler: Faglærer:

ALGORITMER OG DATASTRUKTURER

ALGORITMER OG DATASTRUKTURER

UNIVERSITETET I OSLO

ALGORITMER OG DATASTRUKTURER

Eksamen i fag SIF8010 Algoritmer og datastrukturer Lørdag 9. august 2003, kl

EKSAMEN. Emnekode: Emne: Matematikk for IT ITF Eksamenstid: Dato: kl til kl desember Hjelpemidler: Faglærer:

UNIVERSITETET I OSLO

Innhold. Innledning 1

Løsningsforslag for eksamen i fag SIF8010 Algoritmer og datastrukturer Lørdag 9. august 2003, kl

Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer

Eksamen i fag SIF8010 Algoritmer og Datastrukturer Tirsdag 14. Desember 1999, kl

UNIVERSITETET I OSLO

Løsningsforslag for Obligatorisk Oppgave 3. Algoritmer og Datastrukturer ITF20006

Quicksort. Lars Vidar Magnusson Kapittel 7 Quicksort Randomisert Quicksort Analyse av Quicksort

13/21. Høgskoleni østfold EKSAMEN. Emnekode: Emne: LSMATAF213 V3: Tall, algebra, funksjoner 2

Innledning. IN2010/INF Algoritmer og datastrukturer. Tirsdag 27. november 2018 Kl (4 timer)

Teoriøving 7 + litt om Ford-Fulkerson. Magnus Lie Hetland

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Studentnummer: Side 1 av 1. Løsningsforslag, Eksamen i TDT4120 Algoritmer og datastrukturer August 2005

KORTESTE STI. Vektede Grafer. Korteste Sti. Dijkstra s Algoritme. Vektet Urettet Graf

EKSAMEN. Tall og algebra, funksjoner 2

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

EKSAMEN ITF Webprogrammering 1 Dato: Eksamenstid: Hjelpemidler: 2 A4 ark (4 sider) med egenproduserte notater (håndskrevne/maskinskrevne)

Oppgave 1. Sekvenser (20%)

Høgskoleni østfold EKSAMEN. ITF10213 Innføring i programmering (Høst 2013)

Høgskoleni østfold EKSAMEN

UNIVERSITETET I OSLO

Dijkstras algoritme Spørsmål

Divide-and-Conquer II

Grunnleggende Grafalgoritmer

Løsningsforslag for eksamen i fag TDT4120 Algoritmer og datastrukturer Tirsdag 9. desember 2003, kl

EKSAMEN. Oppgavesettet består av 9 oppgaver med i alt 20 deloppgaver. Ved sensur vil alle deloppgaver telle omtrent like mye.

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

Løsningsforslag til eksamen i fag SIF8010 Algoritmer og Datastrukturer Tirsdag 14. Desember 1999, kl

Høgskoleni østfold EKSAMEN. LSVIMAT12 Matematikk 1, V 1: Tall og algebra. funksjoner 1. Dato: 16. desember Eksamenstid: kl til kl 15.

Emnenavn: Matematikk for IT. Eksamenstid: Faglærer: Christian F Heide

EKSAMEN. Oppgavesettet består av 9 oppgaver med i alt 21 deloppgaver. Ved sensur vil alle deloppgaver telle omtrent like mye.

Løsningsforslag EKSAMEN

Høgskoleni østfold NY/UTSATT EKSAMEN

Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer

Høgskoleni østfold EKSAMEN. Hjelpem idler: Faglærer: Kåre Sorteberg Ingen hjelpemidler. Monica Kristiansen

Løsningsforslag for Obligatorisk Oppgave 2. Algoritmer og Datastrukturer ITF20006

Eksamen i fag SIF8010 Algoritmer og Datastrukturer Tirsdag 18. Desember 2000, kl

Øvingsforelesning 2 - TDT4120. Grafer og hashing. Benjamin Bjørnseth

EKSAMEN. Oppgavesettet består av 11 oppgaver med i alt 21 deloppgaver. Ved sensur vil alle deloppgaver telle omtrent like mye.

Høgskoleni østfold EKSAMEN. Ikke-programmerbar lommeregner uten grafisk skjerm Monica Nordbakke Marianne Maugesten

EKSAMEN (Konvertert fra en gammel PHPeksamen)

Algoritmer og Datastrukturer

EKSAMENSOPPGAVE. IAI20102 Algoritmer og datastrukturer

Høgskoleni østfold EKSAMEN. V3: Tall og algebra, funksjoner 2 ( trinn) Dato: Eksamenstid: Fra kl til kl

EKSAMEN. Emne: Webprogrammering med PHP (kont.) Webprogrammering 1 (kont.) Eksamenstid:

UNIVERSITETET I OSLO

Høgskoleni østfold EKSAMEN. LSV1MAT12 Vl: Tall og algebra, funksjoner 1. Dato: Eksamenstid: kl til kl

Høgskoleni østfold EKSAMEN

ALGORITMER OG DATASTRUKTURER

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Høgskoleni østfold EKSAMEN. LSV1MAT12 Matematikk Vl: Tall, algebra og funksjoner 1

Notater til INF2220 Eksamen

EKSAMEN. Emne: Webprogrammering med PHP (kont.) Webprogrammering 1 (kont.) Eksamenstid:

Løsningsforslag for Obligatorisk Oppgave 1. Algoritmer og Datastrukturer ITF20006

ALGORITMER OG DATASTRUKTURER

Emnenavn: Matematikk for IT. Eksamenstid: Faglærer: Christian F Heide

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Løsningsforslag. Oppgavesettet består av 9 oppgaver med i alt 20 deloppgaver. Ved sensur vil alle deloppgaver telle omtrent like mye.

EKSAMEN. Bildebehandling og mønstergjenkjenning

EKSAMEN. Evaluering av IT-systemer. Eksamenstid: kl 0900 til kl 1300

Transkript:

Høgskoleni østfold EKSAMEN Emnekode: ITF 20006 Emne: Algoritmer og Datastrukturer Dato: 22.05.2015 Eksamenstid: kl 09.00 til kl 13.00 Hjelpemidler: Faglærer: 4 dobbeltsidige ark med notater Lars Magnusson Eksamensoppgaven: Oppgavesettet består av 9 sider inklusiv denne forsiden. Kontroller at oppgaven er komplett før du begynner å besvare spørsmålene. Dersom det er noen spørsmål ang. oppgavesettet, kan faglærer nås på mob: 91117116 Sensurdato: 15.06.2015 Karakterene er tilgjengelige for studenter på studentweb senest 2 virkedager etter oppgitt sensurfrist. Følg instruksjoner gitt på: www.hiofno/studentweb

Oppgavesettet har fire deler. Hver del er merket med en prosent som angir hvor stor andel hver del utgjør av hele oppgavesettet. Oppgavesettet inneholder en del oppgaver som krever tekstlige besvarelser. Prøv å svar så kort og konsist som mulig på disse da dere ikke blir vurdert på anaet enn innhold. 1 Analyse (40%) I denne delen skal du ta i bruk de teknikkene vi har gjennomgått i kurset for å analysere algoritmer. Oppgave 1 - Enkel Analyse (10%) I denne oppgaven skal du utføre en såkalt detaljert analyse av de enkle algoritmene gitt i pseudokode under. Du skal så bruke resultatet fra den detaljerte analysen til å komme frem til en asymptotisk grense (asymptotisk notasjon) for algoritmene. Du kan anta at hver programlinje tar en tidsenhet å utføre hver gang den kjøres. OPPGAVE 1A (n) 1 sum = 0 2 for i = 1 to n 3 871,771= sum, + i 4 return sum OPPGAVE 1B (n) 1 sum = O 9 for i = 1 to n 3 sum = sum + i 4 fori = 1 to n 5 for j = 1 to 2n. 6 sum = sum + i 7 return sum OPPGAVE 1C(n) 1 sum = 0 2 i = 1 3 while < 4 sum = sum + i 5 6 return sum 1

OPPGAVE1D(n) 1 sun) O 2 for i = 1 to 3 sum = sum + i 4 return sum Oppgave 2 - Masterteoremet (10%) I denne oppgaven skal du i første omgang bedømme hvorvidt det er mulig å benytte masterteoremet for å finne en asymptotisk grense for et sett med recurrence-likninger. I de oppgavene det er mulig skal du vise alle stegene involvert i å bruke masterteoremet for å finne den asymptotiske grensen, og i de oppgavene det ikke kan benyttes skal du Iorklare hvorfor. (-)(1) (") 8T(n/2) if== 1 if n > 1 e)(1) ifr = 1 T (n) = 41(n/4) + e(n) if ii > 0(1) ifei = T(n) = 9T(n/3) + 0(n log if n > 1 e(l) if n = 1 T (n) = 21(n/2) + e(n) if 71> Oppgave 3 - Avansert Analyse (20%) I denne oppgaven skal du analysere algoritmen gitt under. er en 1-Mdeksert tabell med heltall, og j er et heltall. Det første kallet til algoritmen vil være OPPGAVE3(A,1). A. length angir størrelsen til tabellen. 2

OPPGAVE3(A, j) 1 if j > A. length 2 return 3 i = j 1 4 key = A[j] 5 while i > 0 and A[i] > key 6 A[i 11 = A[il 7 i = i 1 8 A[i = key 9 OPPGAVE3(A, j 1) Du skal beskrive hva algoritmen gjør med egne ord, og du skal bevise at algoritmen er korrekt. Du skal resonnere deg frem til en recurrence-likning som beskriver kjøretiden til algoritmen. Du kan begrense deg til finne en øvre grense for average-ease kjøretid. Sett opp et rekursjonstre eller utfør et matematisk resonnement som leder frem til en gjetning for en øvre grense for kjøretiden til algoritmen over. Denne gjetningen skal så bevises med substitusjonsmetoden. Prøv å gjør beviset så fullstendig som mulig. Hva er kjøretiden til algoritmen ved bestefall input? Sett opp en recurreneelikning og utfør et matematisk resonnement for å komme frem til svaret. Du trenger ikke å bevise at gjetningen er korrekt. 2 Sortering (20%) I denne delen skal du vise at du har oversikt over de ulike sorteringsalgoritmene vi har gjennomgått kurset. Oppgave 1 - Velge Sorteringsalgoritme (10%) I oppgavene under er det gitt enten et sett Ined eksempler på, eller en beskrivelse av, lister som skal sorteres. Du skal i lwert tilfelle forklare hvilke sorteringsalgoritmer som er passende, og i de tilfellene lwor fiere er aktuelle skal du argumentere for hvilken som ville vært aller best. 3

Lister med rundt en million heltall i intervallet [0, 1015]. [1,3, 2, 4, 6, 5, 7, 9,8] [1, 3, 4,6] [2, 4, 8, 5, 9, 7, 1, 6, 5, 4, 8, 9, 7, 6, 6, 1, 2, 1, 4] [3, 4, 6, 5, 1, 2, 9, 1, 1, 4, 6, 5] [4, 8, 5, 1, 6, 8, 9, 7, 6, 6, 1, 2, 1, 4] [9, 3, 2, 5, 6, 1, 7, 4, 8] [2, 5, 6, 4, 8, 5, 9, 7, 1, 4, 8, 5, 1, 6, 8, 9, 7, 6, 6, 1, 2, 1, 4, 6, 5, 4, 8, 9, 7, 6, 6, 1, 2, 1, 4] [2, 5,5, 9, 7, 1,8, 5, 1, 6, 8, 9,7, 8, 5,1, 6, 5,4, 8, 8,5, 1, 9, 7, 6,6,1, 2, 1, 4] [9, 7, 1, 8, 7, 1, 7, 7, 1, 4, 1, 4, 4, 5, 7, 1, 4, 8, 5, 1, 1, 8, 5, 1 21 [3, 4, 6, 5, 1, 9, 8] [2, 5, 4, 6, 5, 1, 6, 7, 4, 8, 4, 8, 5, 9, 7, 1, 4, 8, 5, 1, 6, 8, 9, 7, 4, 6, 5, 1, 6, 1, 2, 1, 4, 6,4,6,5,1,8, 5,9, 7,1,6,5,5,4,8,9, 4,8,5, 1,6,9, 7,6, 6, 6,4,6, 5,1,1,2,1, 4] [6, 5, 1, 9, 8, 6, 6, 1, 2, 1, 4, 8, 5, 1, 6, 8] Lister med mellom en million og ti millioner flyttal med normalfordelt distribusjon. [111,35,2] [451, 259, 261, 71] [2056101, 4052303] [34165, 1289, 1146501] [84851, 168917, 68612, 14] [93136, 171, 8] [2564, 859, 714, 8511 [661, 65, 97, 12] [34651, 98] [65198, 6612, 148516, 8] [71564, 18519, 410] [851. 917, 68, 14] 4

Oppgave 2 - MERGE SORT (10%) Denne oppgaven tar for seg MERGE-SoRT algoritmen, som er listet under sammen med hjelpefunksjonen MERGE. MERGE(A, p, q, r) 1 ni= q p+ 2 n2 = r q 3 let L[1..ri + 1[ and R[1 N + 1[ be new arrays 4 for i = 1 to n1 5 L[i] = A[p + i 6 for j = 1 to n2 7 R[j] = A[q + j] 8 L[ni+l]= cxi 9 R[n2 + 1] = oc 10 i 1 11 j = 1 12 for k=pto r 13 if L[i] < R[j] 14 A[k] = L[i] 15 i = i 1 16 else A[k] = R[j] 17 j = j + 1 MERGE-SORT(A, p, r) 1 if p < 2 q = [(p + r)12] 3 MERGE-SORT(A,p,q) 4 MERGE-SoRT(A,q+1,r) 5 1VIERGE(A,p,q,r) Vis så detaljert som mulig hvordan algoritmen ville kjørt på følgende input. Her kan det være greit å basere seg på hva som kommer inn og hva som kommer ut av hvert funksjonskall. [41, 3, 16, 9, 15, 1, 21, 82, 7, 12] Hvilke fordeler og ulemper har MERGE-SORT i forhold til QUICKSORT? Trekk inn relevant teori fra kurset. 3 Datastrukturer (20%) I denne delen skal du vise at du har oversikt over ulike datastrukturene vi har gjennomgått i kurset. 5

Oppgave 1 - Kollisjonshåndtering i Hashtabeller (10%) Denne oppgaven tar for seg ulike typer kollisjonshandtering hashtabeller. Vi har en hashtabell med 10 plasser, og vi benytter en hashfunksjon som er definert som følger. h(k) = k mod 10 Vi har følgende liste med heltall som skal settes inn i den tenkte hashtabellen. [1,3,12,53,91,103] Tegn slik hashtabellen vil se ut etter innsetting av tallene ved bruk av lenking (chaining) for kollisjonshåndtering. Tegn slik hashtabellen vil se ut etter innsetting av tallene ved bruk av dpen adressering og lineccr prvbing for kollisjonshåndtering. Tegn slik hashtabellen vil se ut etter innsetting av tallene ved bruk av cpen adressering og kvadratisk probing for kollisjonshåndtering. Oppgave 2 - Søketrær (10%) I denne oppgaven dreier seg om innsetting i søketrær. Vi har følgende elementer som skal settes inn i trærne. [10, 6, 4, 1, 5, 11, 2, 19, 12, 7, 3] Tegn det binære søketreet som ville vært resultatet av å sette inn elementene i den angitte rekkefølgen. Tegn det rødsvarte søketreet som ville vært resultatet av å sette inn elementene i den angitte rekkefølgen. 4 Grafer (20%) I denne delen skal du vise at chi har oversikt over de ulike grafalgoritmene vi har gjennomgått i kurset. Under er en urettet vektet graf som skal benyttes i alle oppgavene under. 6

6 8 2 9 3 4 5 6 Oppgave 1 - Kruskal (10%) Denne oppgaven dreier seg om KRUSKAL algoritmen for å bygge minimum spenntrær som er listet under. lijelpefunksjonene MAKE-SET, FIND-SET og UNION er operasjoner for å henholdsyis lage et disjunkt (disjoint) sett, for å finne hvilket disjunkt sett et element tilhører, og for å slå sammen to disjunkte sett. KRUSKAL(G, J/J) 1 A = 2 for each vertex v E G. V 3 MAKE-SE4(v) 4 sort the edges of G.E into nondecreasing order by weight w 5 for each (u, v) taken from the sorted list 6 if FIND-SETeu) FIND-SET(v) 7 A = A {(u, v)} 8 USTION(u, v) 9 return A Du skal vise lwordan KRUSKAL algoritmen kjører på den gitte grafen over ved å inkrementelt bygge opp det som til slutt vil bli det resulterende spenntreet. Det kan være fordelaktig å. også tegne opp relevante hjelpestrukturer. Du skal modifisere KRUSKAL algoritmen slik at den ikke slår sammen kanter som har en vekt som er større enn gjennomsnittet av vekten på alle kantene. Dette bør kunne gjøres uten å. øke den asymptotiske kjøretiden. Du skal vise den modifiserte pseudokoden og hvordan den modifiserte algoritmen ville kjørt på den gitte grafen over. Oppgave 2 - Korteste Vei (10%) I denne oppgaven skal dere vise at dere vet hvordan DIJKSTRA og BELLMAN- FoRn algoritmene for korteste vei fungerer. Begge algoritmene er listet under. Hjelpefunksjonen INIT-SINGLE-SOURCE er ansvarlig for å initialiserer estimatet for aystand og forelderpekeren i alle nodene, og RELAX oppdaterer estimatet og 7

forelderpekeren hvis en kortere vei har blitt funnet. Hjelpefunksjonen EXTRACT- MIN henter ut den noden med korteste vei fra prioritetskøen. BELLMAN-FORD(G, w, 1 INIT-SINGLE-SOURCE(C, s) 2 for i = 1 to 1G. V 1 3 for each edge (u, v) E G. E 4 RELAX(U, v, w) 5 for each edge (u, v) c G. E 6 if v. d > u. d + w(u,v) 7 return FALSE 8 return TRUE DIJKSTRA(G, w, S) 1 INIT-SINGLE-SouncE(G, s) 2 S = 3 Q = G. V 4 while 5 u = EXTRACT-MIN(Q) 6 S = S {u} 7 for each vertex v E G. Adj [u] 8 RELAX(y, v, Vis hvordan HELLMAN-Fonn ville kjørt på grafen gitt over ved å vise hvordan korteste-vei-treet og estimatene oppdateres underveis. Start søket i node I. Vis hvordan D1JSTRA ville kjørt på grafen gitt over ved å vise hvordan kortestevei-treet og estimatene oppdateres underveis. Start søket i node 1. Det kan være hjelpsomt å også tegne relevante hjelpestrukturer. Forklar hva som skiller BEIA3AAN-FORD og DIJKSTRA algoritmene for korteste vei fra hverandre. 8