Skriftlig Eksamen Algoritmer og Datastrukturer (DM507)

Relaterede dokumenter
Skriftlig Eksamen Algoritmer og Datastrukturer (DM507)

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer

Skriftlig Eksamen Algoritmer og Sandsynlighed (DM538)

Danmarks Tekniske Universitet

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET EKSAMEN. Grundkurser i Datalogi. Algoritmer og Datastrukturer 1 (2003-ordning)

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

Skriftlig Eksamen Kombinatorik, sandsynlighed og randomiserede algoritmer (DM528)

Skriftlig Eksamen Diskret Matematik (DM528)

Skriftlig Eksamen Algoritmer og Datastrukturer 1. Datalogisk Institut Aarhus Universitet. Mandag den 22. marts 2004, kl

Skriftlig Eksamen Algoritmer og sandsynlighed (DM538)

DATALOGISK INSTITUT, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi

DATALOGISK INSTITUT, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi

DATALOGISK INSTITUT, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi

Danmarks Tekniske Universitet

DATALOGISK INSTITUT, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

Skriftlig Eksamen Kombinatorik, sandsynlighed og randomiserede algoritmer (DM528)

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi

DATALOGISK INSTITUT, AARHUS UNIVERSITET

Skriftlig Eksamen Algoritmer og Datastrukturer 1. Datalogisk Institut Aarhus Universitet

DATALOGISK INSTITUT, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi

Danmarks Tekniske Universitet

Skriftlig Eksamen Algoritmer og Datastrukturer 2 (2003-ordning)

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

DATALOGISK INSTITUT, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

DATALOGISK INSTITUT, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi

Eksamensopgaver i DM17, Januar 2003

DATALOGISK INSTITUT, AARHUS UNIVERSITET

DATALOGISK INSTITUT, AARHUS UNIVERSITET

Prioritetskøer og hobe. Philip Bille

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

Skriftlig Eksamen Introduktion til lineær og heltalsprogrammering (DM515)

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET. Science and Technology EKSAMEN. Grundkurser i Datalogi. Algoritmer og Datastrukturer 1 (2003-ordning)

DATALOGISK INSTITUT, AARHUS UNIVERSITET

Skriftlig Eksamen Introduktion til lineær og heltalsprogrammering (DM515)

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen (bemærk at log n betegner totals logaritmen): n 2 (log n) 2 2.

Algoritmer og invarianter

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: 7 n 1/ log n. (log n) 4

Danmarks Tekniske Universitet

DATALOGISK INSTITUT, AARHUS UNIVERSITET

DATALOGISK INSTITUT, AARHUS UNIVERSITET

DATALOGISK INSTITUT, AARHUS UNIVERSITET

Danmarks Tekniske Universitet

Algoritmer og datastrukturer Course No Cheat Sheet May 15, 2012

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: n 3/2. n logn (3/2) n. 2 3logn (3/2) n

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

DATALOGISK INSTITUT, AARHUS UNIVERSITET

DATALOGISK INSTITUT, AARHUS UNIVERSITET

Algoritmeanalyse. Øvre grænse for algoritme. Øvre grænse for problem. Nedre grænse for problem. Identificer essentiel(le) operation(er)

DATALOGISK INSTITUT, AARHUS UNIVERSITET

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: 5n 4. logn. n 4n 5 n/logn. n n/logn 5n

Prioritetskøer. Prioritetskøer. Prioritetskøer. Prioritetskøer

DM507 Algoritmer og datastrukturer

Opgave 1 (10%) I det følgende angiver log n 2-tals-logaritmen af n. Ja Nej. n+3n er O(2n)? n 6 er O(n 5 )? nlogn er O(n 2 /logn)? 4n 3 er O(3n 4 )?

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: 23n log n. 4 n (log n) log n

Invarianter. Invariant: Et forhold, som vedligeholdes af algoritmen gennem (dele af) dens udførelse. Udgør ofte kernen af ideen bag algoritmen.

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: (logn) 7 n 1/2 2 n /n 3 2logn n 2 /logn

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: 4 n n 3n n 2 /logn 5 n n (logn) 3n n 2 /logn 4 n n 5 n

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: n n (log n) 2. n 2 + log n 3 n. n n (log n)

Danmarks Tekniske Universitet

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: (logn) 5. 5n 2 5 logn. 2 logn

Danmarks Tekniske Universitet

DATALOGISK INSTITUT, AARHUS UNIVERSITET

Skriftlig Eksamen Beregnelighed (DM517)

Reeksamen i Diskret Matematik

Prioritetskøer. Prioritetskøer. Prioritetskøer. Prioritetskøer

Prioritetskøer. Prioritetskøer Træer og hobe Repræsentation af hobe Algoritmer på hobe Hobkonstruktion Hobsortering. Philip Bille

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: (logn) 2 2 n 1/n (logn) n. n 2

Datastrukturer (recap)

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: n 7 n 1 7 7/n. 7nlogn. 7n 7nlogn n7

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: n 2 n (log n) 2. 3 n /n 2 n + (log n) 4

Reeksamen i Diskret Matematik

Danmarks Tekniske Universitet

DM507 Algoritmer og datastrukturer

Eksamen i Diskret Matematik

Grådige algoritmer. Et algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Mindste udspændende træ

Mindste udspændende træ. Mindste udspændende træ. Introduktion. Introduktion

Datastrukturer (recap)

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Sammenhængskomponenter i grafer

Dynamisk programmering

02105 Eksamensnoter. Lasse Herskind S maj Sortering 3

Mindste udspændende træ. Mindste udspændende træ. Introduktion. Introduktion

DATALOGISK INSTITUT, AARHUS UNIVERSITET

Transkript:

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507) Institut for Matematik og Datalogi Syddansk Universitet, Odense Onsdag den 0. juni 009, kl. 9 Alle sædvanlige hjælpemidler (lærebøger, notater, osv.) samt brug af lommeregner er tilladt. Eksamenssættet består af 5 opgaver på 7 nummererede sider ( 7). Fuld besvarelse er besvarelse af alle 5 opgaver. De enkelte opgavers vægt ved bedømmelsen er angivet i procent. Der må gerne refereres til algoritmer og resultater fra lærebogen inklusive øvelsesopgaverne. Henvisninger til andre bøger accepteres ikke som besvarelse af et spørgsmål. Bemærk, at hvis der er et spørgsmål, man ikke kan besvare, må man gerne besvare de efterfølgende spørgsmål og blot antage, at man har en løsning til de foregående spørgsmål. Husk at begrunde dine svar!

Opgave (0%) Spørgsmål a (7%): Udfør Heap-Extract-Max på den binære hob repræsenteret ved nedenstående array. 0 7 6 5 4 Vis hvert skridt. Det kan være en god ide at tegne træ-repræsentationen fremfor array-repræsentationen. Spørgsmål b (6%): Betragt nedenstående rød-sorte træ, hvor sorte knuder er tegnet med fed. Tegn træet, som det ser ud, efter at knuden med nøgle er slettet. 9 7 5 5 8 Spørgsmål c (7%): Betragt følgende hash-tabel med 6 pladser. 0 4 5 6 7 8 9 0 4 5 0 7 9 Der bruges åben adressering og kvadratisk probing med h (k) = k mod 6 og c = c =. Nu indsættes et element med nøgle 7. På hvilken plads havner elementet?

Opgave (5%) Betragt følgende algoritme, som beregner et heltal tæt på n. KvadratRod(n) i 0 s 0 while s n s s + i + i i + r i return r Spørgsmål a (8%): Bevis følgende invariant for while-løkken: I starten af while-løkken er s = i Spørgsmål b (7%): Brug invarianten fra spørgsmål a til at argumentere for, at algoritmen KvadratRod returnerer det største heltal, som er mindre end eller lig med n.

Opgave (0%) For hver af de tre grafer G, G og G skal du angive en simplest mulig algoritme, som kan bruges til at finde de korteste veje fra s til hver af de andre knuder. Begrund dit valg af algoritme. Angiv desuden afstandene fra s til hver af de andre knuder. Graferne er også gengivet på næst-sidste side i dette sæt. Du kan evt. skrive afstandene ved knuderne på denne side (husk i så fald at aflevere siden sammen med resten af besvarelsen). s s -5-5 4 4 - (a) G (b) G s 5 5 4 4 (c) G Figur : De tre grafer

Opgave 4 (0%) En knude-dækning af en graf G = (V, E) er en delmængde V V af knuderne, sådan at alle kanter i E er incidente til mindst en knude i V. Denne opgave handler om at finde en mindst mulig knude-dækning af et træ. Knuderne, som er farvet sorte i Figur, er eksempler på knude-dækninger. De sorte knuder i Figur udgør ikke en knude-dækning, da de to kanter tegnet med fed ikke er dækkede. (a) En knude-dækning (b) En mindst mulig knude-dækning Figur : To forskellige knude-dækninger af det samme træ Figur : Ikke en knude-dækning Betragt følgende grådige algoritme til at finde en knude-dækning af et træ T = (V, E), hvor e(v) betyder mængden af kanter, som er incidente til knuden v. 4

Knude-Dækning(V, E) V while E Vælg en knude v, som har et barn u, der ikke (længere) har nogen børn V V {v} E E e(v) Return V v u v (a) Efter. iteration af løkken u (b) Efter. iteration af løkken v u v (c) Efter. iteration af løkken u (d) Efter 4. iteration af løkken Figur 4: Muligt forløb af algoritmen Knude-dækning på træet fra Figur Spørgsmål a (0%): Bevis, at algoritmen Knude-Dækning altid finder en mindst mulig knude-dækning af input-træet. Spørgsmål b (0%): Forklar, hvordan man kan finde en mindst mulig knude-dækning af et træ i lineær tid; dvs. i O(n) tid, hvor n er antallet af knuder i træet. 5

Opgave 5 (5%) Denne opgave handler om dynamisk programmering. Et palindrom er et ord, der læses ens forfra og bagfra, f.eks. bob, abba og kajak. Lad S = x, x,..., x n være en sekvens af længde n. I denne opgave ønsker vi at finde en længst mulig delsekvens af S, som er et palindrom. Eksempel: ADA er en længst mulig delsekvens af ANDREAS, som er et palindrom, og ABBA er en længst mulig delsekvens af SABBAT, som er et palindrom. Hvis følgende rekursive algoritme kaldes med LP(S,, n), finder den længden af en længst mulig delsekvens af S, som er et palindrom. LP(S, i, j) if i > j return 0 if i = return if i < j and x i = x j return + LP(i +, j ) if i < j and x i x j return max{lp(i +, j), LP(i, j )} 6

Spørgsmål a (9%): Indsæt værdierne for LP(ALBA,i, j) i nedenstående tabel. På sidste side af sættet er der en kopi af tabellen, som du evt. kan bruge (husk i så fald at aflevere siden sammen med resten af din besvarelse). j 4 i 4 Spørgsmål b (%): Skriv en iterativ algoritme, som vha. dynamisk programmering finder længden af en længste delsekvens af S, som er et palindrom. Spørgsmål c (5%): spørgsmål b? Hvad er køretid og pladsforbrug for algoritmen fra 7

s s -5-5 4 4 - (a) G (b) G s 5 5 4 4 (c) G Figur 5: De tre grafer fra opgave

j 4 i 4 Figur 6: Tabellen fra opgave 5