Side 1 av 6 Noe viktige pukter: (i) (ii) (iii) (iv) Les hele eksamessettet øye før du begyer! Faglærer går ormalt é rude gjeom lokalet. Ha evt. spørsmål klare! Skriv svaree die i svarrutee og levér i oppgavearket. Bruk gjere blyat! Evt. kladd på eget ark først for å ugå overstrykiger, og for å få e ege kopi. Ekstra ark ka legges ved om ødvedig, me det er meige at svaree skal få plass i rutee på oppgavearkee. Lage svar teller ikke positivt. Eksame har 20 oppgaver, totalt verdt 100 poeg. Poegverdi er agitt ved hver oppgave. For hver av de første 5 oppgavee skal du velge svaret blat disse algoritmee: BFS Bellma-Ford DFS Dag-Shortest-Path Dijkstra Faster-All-Pairs-Shortest-Paths Floyd-Warshall Slow-All-Pairs-Shortest-Paths
Kadidatummer: Side 2 av 6 (5 p) 1. Hvilke algoritme på side 1 tillater ikke sykler? (5 p) 2. Hvilke algoritme på side 1 tillater vilkårlige positive me ikke egative katvekter? (5 p) 3. Hvilke algoritme på side 1 vil ikke ødvedigvis fie korteste vei i e rettet asyklisk graf der alle katvekter er 1? (5 p) 4. Hvilke algoritme på side 1 bør du bruke for å fie korteste vei fra alle til alle i e vilkårlig graf med positive katvekter, dersom du har Θ(V 2 ) kater? (5 p) 5. Hvilke algoritme på side 1 bør du bruke for å fie e flytforøkede sti (augmetig path)? (5 p) 6. I maski-modelle til læreboka har heltall ormalt c lg bits. Hva er kravet til c? (5 p) 7. Du har fuet best-case-kjøretide for e algoritme. Hvilke av O, Ω eller Θ vil du bruke for å beskrive de? (5 p) 8. Hva er worst-case-kjøretide til Merge-Sort? (5 p) 9. Hva har Bellma-Ford oppdaget dersom de returerer false? (5 p) 10. La A = [3, 3, 1, 4, 4, 3, 1, 2, 3, 5]. Hvorda ser C[0.. 6] ut idet Coutig-Sort(A, B, 6) returerer?
Kadidatummer: Side 3 av 6 (5 p) 11. La A = [0, 9, 2, 8, 1, 5, 3, 4, 7, 6]. Ata at Partitio velger siste elemet som pivot (som i læreboka). Hvilke ideks returerer da Partitio(A, 1, 10)? (5 p) 12. La G = (V, E) være e graf med oder V = {0.. 9} og med positive katvekter w. La D[0.. 9] være e tabell med avstadsestimater, der D[u] = u.d, for u = 0.. 9. Etter at Dijkstra(G, w, 0) er utført er D = [0, 2, 3, 5, 8, 6, 9, 1, 7, 4]. I hvilke rekkefølge har odee 0.. 9 blitt valgt ut og besøkt? (5 p) 13. La C = {a, b,.., j}, der a.freq = 11, b.freq = 12,..., j.freq = 20. Utfør Huffma(C). Ata, som i boka, at vestre bar er midre e høyre, og at vestre bar er 0. Hva blir Huffma-kode for g? (5 p) 14. La A = [5, 0, 2, 7, 3, 9, 1, 6, 8, 4]. Utfør Build-Max-Heap(A). Hvorda ser A ut etterpå? (5 p) 15. La A = [0, 1, 2, 3, 6, 4, 9, 8, 5, 7]. Utfør Extract-Mi(A). Hvorda ser A ut etterpå? (5 p) 16. La T (0) = 0 og T () = T ( 1) + 2 + år > 0. Løs rekurrese. Bruk asymptotsk otasjo. (5 p) 17. La T (0) = 0 og T () = π 2 T (/π) + 2 år > 0, der π = 3.14159.... Løs rekurrese. Bruk asymptotisk otasjo. (5 p) 18. Du har fuet e reduksjo med polyomisk kjøretid fra A til B, der A og B er beslutigsproblemer. E optimal algoritme for B har worst-case-kjøretid Θ(2 ). Ka du si oe om kjøretide til algoritmer for A? Hvis ja, beskriv kjøretide med asymptotisk otasjo. (5 p) 19. Du har et mieområde på bytes, og skal dele det opp i segmeter, som vist i figur 1 på side 5. Et segmet med legde k bytes har e kostad på c k, og du vil fie e oppdelig som er slik at de totale kostade f() blir mist mulig. Skriv e rekursiv ligig som gir de optimale verdie for f(). Løsige skal ege seg for memoiserig. Du ka ata f(0) = 0.
Kadidatummer: Side 4 av 6 (5 p) 20. Som i the 0-1 kapsack problem har e tyv gjort ibrudd i e butikk og fuet gjestader. Hu gir hver gjestad i e positiv eller egativ verdi v i, basert på hvor tug de er og hvor mye hu ka selge de for. Hu øsker å velge ut e delmegde S av gjestader slik at i S v i blir størst mulig. Me: Noe av gjestadee er avhegige av adre. For eksempel ka hu ikke ta med det atikke sverdet ute å også ta med de atikke sverdslire. Hu ka bare velge ut e delmegde der slike avhegigheter er ivaretatt: Hvis i er avhegig av j og hu vil ta med i så må hu også ta med j. (Se figur 2 for et eksempel.) Beskriv e algoritme som løser problemet effektivt. Hold forklarige så kort og ekel som mulig. Teg gjere e figur.
Side 5 av 6 Ett segmet med legde : f() = c 1 2 3 4 To like store segmeter: f() = c + c 2 2 1 2 2 +1 Tre segmeter med ulik legde: f() = c 3 + c 2 + c 5 1 2 3 4 5 6 7 8 9 10 segmeter med legde 1: f() = c 1 + c 1 + c 1 + c 1 + + c 1 1 2 3 4 Figur 1: Illustrasjo til oppgave 19. Mieområdet ka deles i i alt fra ett til segmeter av lik eller ulik legde. Et segmet med legde k har kostad c k, og de totale løsige har kostad f(), som er summe av kostadee til segmetee. Du skal prøve å fie e oppdelig slik at dee totalsumme av kostader blir mist mulig.
Side 6 av 6 v 1 = 2 v 2 = 1 1 2 v 6 = 1 6 3 v 3 = 2 5 4 v 5 = 1 v 4 = 1 2 Figur 2: Illustrasjo til oppgave 20. Ibrudstyve vil i dette eksemplet velge e delmegde av {1,..., 6}. Hvert gjestad har e pil til hver av gjestadee de er avhegig av. For eksempel: Hvis du vil ta med gjestad 2 så må du også ta med gjestad 1. Totalt sett bidrar disse to gjestadee med e verdi på 1, så det løer seg ikke. Gjestad 6 ka du ta med eller ikke ute hesy til adre gjestader. De har e positiv verdi, så det løer seg å ta de med. Hvis du vil ta med gjestad 3 må du ta med gjestad 5 og gjestad 6. Selv om v 5 er egativ så vil dette løe seg (heller e å bare ta med gjestad 6), side v 3 + v 5 > 0. Gjestad 4 er det ige vits i å ta med seg.