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

Like dokumenter
ALGORITMER OG DATASTRUKTURER

ALGORITMER OG DATASTRUKTURER

Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer

ALGORITMER OG DATASTRUKTURER

ALGORITMER OG DATASTRUKTURER

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

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

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

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

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

Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Eksamen i tdt4120 Algoritmer og datastrukturer

Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer

Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

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

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.

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer

Kontinuasjonseksamen i fag SIF8010 Algoritmer og Datastrukturer Torsdag 9. August 2001, kl

ALGORITMER OG DATASTRUKTURER

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

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

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Algdat-ninja på 60 minutter: Et galskapsprosjekt. Magnus Lie Hetland

Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer

All good things. Fjortende forelesning

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

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

Pensum: fra boken (H-03)+ forelesninger

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Pensum: fra boken (H-03)+ forelesninger

Notater til INF2220 Eksamen

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

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

Løsningsforslag for eksamen i fag SIF8010 Algoritmer og Datastrukturer Tirsdag 18. Desember 2000, kl

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

Avsluttende eksamen i IT1105/TDT4120 Algoritmer og datastrukturer

Innhold. Innledning 1

Uretta grafar (1) Mengde nodar Mengde kantar som er eit uordna par av nodar

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

Eksamen 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

SIF8010 ALGORITMER OG DATASTRUKTURER

Øvingsforelesning 4. Topologisk sortering, Strongly Connected Components og Minimale spenntrær. Magnus Botnan

MAT1030 Forelesning 25

Agenda. 1 Sortering, heap og select. 2 Binære trær. 3 Grafer, BFS og DFS. 4 Spenntrær og Korteste vei. 5 Maks flyt. 6 Dynamisk programmering

Løsningsforslag - Korteste vei

Øvingsforelesning Korteste vei: Alle til alle

MAT1030 Diskret Matematikk

Maks Flyt og NPkompletthet

Eksamenshefte TDT4120 Algoritmer og datastrukturer

Alg. Dat. Øvingsforelesning 3. Grafer, BFS, DFS og hashing. Børge Rødsjø

All good things. Fjortende forelesning

IN Algoritmer og datastrukturer

Dijkstras algoritme. Her finnes det også (minst) en riktig rekkefølge for Relax, men den må vi oppdage litt etter hvert.

Løsningsforslag for utvalgte oppgaver fra kapittel 9

Algdat Eksamensforelesning. Nils Barlaug

Eksamensoppgave i MA0301 Elementær diskret matematikk løsningsforslag

Fra A til B. Syvende forelesning

INF Algoritmer og datastrukturer

Oppgave 1. Sekvenser (20%)

INF1020 Algoritmer og datastrukturer GRAFER

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

GRAFER. Noen grafdefinisjoner. Korteste vei i en uvektet graf V 2 V 1 V 5 V 3 V 4 V 6

Alg. Dat. Øvingsforelesning 3. Grafer, BFS, DFS og hashing

Forelesning 25. MAT1030 Diskret Matematikk. Litt repetisjon. Litt repetisjon. Forelesning 25: Trær. Dag Normann

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

UNIVERSITETET I OSLO

Korteste vei i en vektet graf uten negative kanter

Kompleksitet. IN algoritmer og datastrukturer Plenumstime / repetisjon

UNIVERSITETET I OSLO

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Alle mot alle. Åttende forelesning. (eller eller Bellman-Ford, eller BFS, alt ettersom) fra alle noder.

Kompleksitet og Beregnbarhet

Lineær sortering. Radix sort

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

TMA4140 Diskret Matematikk Høst 2016

UNIVERSITETET I OSLO

45011 Algoritmer og datastrukturer Løsningsforslag eksamen 13. januar 1992

Grunnleggende Grafteori

Dijkstras algoritme. Her finnes det også (minst) en riktig rekkefølge for Relax, men den må vi oppdage litt etter hvert.

ALGORITMER OG DATASTRUKTURER

EKSAMEN med løsningsforslag

Korteste Vei II. Lars Vidar Magnusson Kapittel 24 Bellman-Ford algoritmen Dijkstra algoritmen

Avsluttende eksamen i TDT4125 Algoritmekonstruksjon, videregående kurs

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

INF2220: Forelesning 1. Praktisk informasjon Analyse av algoritmer (kapittel 2) (Binær)trær (kapittel )

KONTINUASJONSEKSAMEN I FAG ALGORITMER OG DATASTRUKTURER

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

Algoritmer og Datastrukturer

MAT1030 Forelesning 25

Algdat Oppsummering, eksamen-ting. Jim Frode Hoff

Forelesning 24. Grafer og trær. Dag Normann april Vektede grafer. En kommunegraf

GRAFER. Korteste vei i en vektet graf uten negative kanter. Korteste vei, en-til-alle, for: Minimale spenntrær

UNIVERSITETET I OSLO

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Transkript:

Studentnummer: Side 1 av 1 Løsningsforslag, Eksamen i TDT4120 Algoritmer og datastrukturer August 2005 Faglige kontakter under eksamen: Magnus Lie Hetland, Arne Halaas Tillatte hjelpemidler: Bestemt enkel kalkulator. Ingen trykte eller håndskrevne hjelpemidler. Merk: Svarene skal skrives på angitt sted på oppgavearket. Oppgave 1 (80%) De følgende deloppgavene skal besvares med ja eller nei (sett kryss ved det som passer). Dersom deloppgaven er et utsagn (og ikke et spørsmål) betyr ja at utsagnet er sant og nei at utsagnet er usant eller ikke stemmer (evt. ikke gir mening). En riktig besvart deloppgave gir 4 poeng, en ubesvart deloppgave gir 0 poeng og en galt besvart deloppgave gir 4 poeng. En negativ totalsum for hele denne oppgaven teller som 0 poeng når totalen for eksamen beregnes. Les oppgavene nøye. Oppgavetekstene er utformet slik at svarene ikke skal være opplagte. Svar bare dersom du er sikker på at du har forstått oppgaven og at du vet svaret. [x] [x] a) Uansett form på et binært tre med n 1 interne noder vil antall løvnoder være n + 1. Dette spørsmålet har vist seg å være for upresist. Hvis interne noder kan ha 1 eller 2 barn (mens løvnoder har 0 barn) er utsagnet galt. Dette er i tråd med definisjonen i Levitin. Hvis interne noder alltid har 2 barn (som i et søketre der alle interne noder har nøkler) vil utsagnet være riktig. Det gis derfor full score uansett hva man har svart (og også om spørsmålet er ubesvart). b) Grådighet er en generalisering av dynamisk programmering. c) Warshalls algoritme kan brukes når man har kanter med negativ vekt i grafen. Warshalls algoritme finner den transitive tillukningen av naboskapsrelasjonen i grafen, og er ikke avhengig av eventuelle kantvekter. (Floyds algoritme, også ofte kjent som Floyd-Warshall, som finner korteste vei mellom alle par med noder, gjør heller ingen

Studentnummer: Side 2 av 2 antagelser om positive kanter, i motsetning til Dijkstras algoritme. Hvis den finner at en node har negativ avstand til seg selv så betyr det at grafen inneholder en negativ sykel.) Du har oppgitt en graf G = (V, E) og ønsker å finne det største settet V V der alle nodene i V har kanter til alle de andre andre nodene i V. d) Problemet kan effektivt løses med dynamisk programmering. Dette er Max-Clique-problemet, som er NP-komplett. Under antagelsen P NP (som forutsettes) kan ikke problemet løses effektivt (det vil si i polynomisk tid). e) Det er umulig å lage en algoritme for å sjekke om (vilkårlige) andre algoritmer er korrekte. Dette er en variant (generalisering) av Halting-problemet, som er umulig å løse. Vi har gitt en graf G = (V, E), der V = {1,, 7} og E = {(1, 2), (1, 4), (2, 4), (2, 5), (3, 1), (3, 6), (4, 3), (4, 5), (4, 6), (4, 7), (5, 7), (7, 6)}. Vi har også gitt kantvektfunksjonen w(u, v), gitt ved w(1, 2) = 2, w(1, 4) = 1, w(2, 4) = 3, w(2, 5) = 10, w(3, 1) = 4, w(3, 6) = 5, w(4, 3) = 2, w(4, 5) = 2, w(4, 6) = 8, w(4, 7) = 4, w(5, 7) = 6, w(7, 6) = 1. Simuler (utfør) Dijkstras algoritme på denne grafen, med 3 som start-node. Før første iterasjon er det kun node 3 som har riktig avstandsestimat. Hvis du kan velge mellom to noder, velg alltid den med lavest nummer. Fremdriften til algoritmen blir slik (etter de angitte iterasjonene): Iterasjon d[1] d[2] d[3] d[4] d[5] d[6] d[7] 0 1 4 0 5 2 4 6 0 5 5 3 4 6 0 5 7 5 9 4 4 6 0 5 7 5 9 5 4 6 0 5 7 5 9 f) Node 4 har riktig avstandsestimat etter andre iterasjon. g) Node 5 har riktig avstandsestimat etter fjerde iterasjon.

Studentnummer: Side 3 av 3 h) Nodene i grafen G kan ordnes topologisk i O( E ) tid. Det kan se ut til at spørsmålet er meningsløst (asymptotisk kjøretid for en gitt probleminstans), men poenget er at grafen inneholder en sykel, så nodene kan ikke ordnes topologisk i det hele tatt. I den følgende deloppgaven, se bort fra kantretningene (det vil si, se på G som en urettet graf). La T være et minimalt spenntre for grafen G, beregnet med Prims algoritme med node 1 som startnode. Hvis du kan velge mellom to noder, velg vilkårlig. i) Kanten (2, 4) er med i T. Først vil kantene (1, 4), (1, 2) og (4, 5) legges til, med de siste to i vilkårlig rekkefølge. På dette tidspunktet ville kanten (2, 4) lage en sykel. Du har en hashfunksjon definert ved h(k) = (7k + 3) mod 5, der k er en heltallsnøkkel og mod er modulus- eller restoperatoren. For eksempel vil h(1) = 0. Du har også en hashtabell A med 5 plasser, A[0],, A[4]. Du bruker lukket hashing (linear probing). j) Etter å ha satt inn tallene 11, 13, 15 og 21 kan 14 settes inn uten kollisjon. Ingen av de foregående nøklene hasher direkte til posisjon h(14) = 1, men både nøkkel 11 og 21 hasher til posisjon 0, og på grunn av den lukkede hashingen havner nøkkel 21 da i posisjon 1, så 14 kolliderer med 21. Betrakt rekurrensen T(n) = 2T(n/2) + n, T(1) = 1. k) Rekurrensen er typisk for algoritmer basert på dynamisk programmering. Dette er en typisk rekurrens for algoritmer basert på splitt-og-hersk-tankegang. Et typisk eksempel er flettesortering. Om man løser rekurrensen får man T(n) = (n log n). l) T(n) (n2 ) m) T(n) O(n2 ) I enkelte sanger (som Gubben og gamla og The Twelve Days of Christmas ) øker lengden på versene med (1) for hvert vers. Anta at antall vers er n. n) Den totale sanglengden er (n1.7 ). Lengden er kvadratisk (summen av en aritmetisk rekke, (1 + 2 + + n)). Mer presist: Kall verselengden etter n vers V(n). Vi får da (fra oppgaveteksten) følgende rekurrens: V(n) = V(n 1) + (1). Vi ser lett at V(n) (n). Hvis vi kaller sanglengden L(n) får vi altså følgende rekurrens: L(n) = L(n 1) + V(n) = L(n 1) + (n). Løser vi denne rekurrensen får vi L(n) (n 2 ) (n 2 ) (n 1.7 ).

Studentnummer: Side 4 av 4 En algoritme tar et vilkårlig heltall n som input og kjøretiden er (n 1.7 ). o) Algoritmen har (nødvendigvis) eksponensiell kjøretid, som funksjon av problemstørrelsen. Problemstørrelsen er plassen problemet tar (antall bits). Problemstørrelsen er altså her m = log n, og kjøretiden blir (2 1.7m ). [x] [x] p) Hvis en kant e er den billigste/letteste kanten i en graf så finnes det et minimalt spenntre som inneholder e. Siden det ikke ble presisert at det var snakk om en sammenhengende graf ble dette spørsmålet litt uheldig. Man kan mene at det er opplagt at det er snakk om en sammenhengende graf, og svaret blir da ja (nødvendig for korrekthet av f.eks. Kruskals algoritme). Gjør man derimot ikke denne antagelsen blir svaret nei, siden en usammenhengende graf ikke har noe spenntre. Oppgaven vil derfor ikke telle ved sensur (alle får full uttelling for oppgaven, enten den er besvart eller ikke.) q) Et minimalt spenntre er unikt hvis og bare hvis alle kantvektene er forskjellige. Et enkelt moteksempel er et tre der kantvektene er like. Spenntreet vil likevel være unikt. r) Sortering ved sammenligning kan ikke løses med bedre kjøretid enn (n log n) i verste tilfelle. s) Ingen av sorteringsalgoritmene i pensum har kjøretid O(n) i verste tilfelle. Tellesortering har kjøretid O(n) i verste tilfelle. Du har n forskjellige verdigjenstander, hver med en vilkårlige positiv heltallsverdi (pris), og ønsker å finne ut om det er mulig å fordele gjenstandene likt på to av dine venner (så begge vennene mottar samme totale verdi). t) Det finnes ingen kjent metode som kan avgjøre dette med en kjøretid bedre enn O(n 2 ). Dette er ett av de NP-komplette problemene i pensum, the partition problem. Det finnes ingen kjente metoder som kan løse slike problemer i polynomisk tid. Oppgave 2 (10%) Det er NP-komplett å finne den lengste stien i en graf. Anta at nodene i grafen G = (E, V) er sanger og at kanten (u, v) finnes i E dersom sang v er en nyinnspilling ( cover ) av sang u. Anta at nodene i grafen G = (E, V ) er artister og at kanten (u, v ) finnes i E dersom artist v har gjort en nyinnspilling av en av artist u sine sanger. Anta at du kan ha vilkårlig mange sanger og artister. a) (5%) Enten (1) argumenter for at det er NP-komplett å finne den lengste stien i G, eller (2) beskriv kort en effektiv algoritme som finner den lengste stien i G (angi kjøretid).

Studentnummer: Side 5 av 5 Svar: Under antagelsen P NP (som forutsettes) vil kun ett av alternativene kunne velges. (Studenter som eventuelt klarer å vise at problemet er NP-komplett og å løse det effektivt vil naturligvis automatisk få karakteren A.) Om studenten finner en polynomisk algoritme og argumenterer for at problemet derfor ikke er NP-komplett skal ikke dette trekke ned (selv om det formelt sett ikke er korrekt). Problemet kan løses effektivt. Hvordan man gjør dette kommer an på et sentralt spørsmål: Kan man ha en nyinnspilling av en nyinnspilling? Eller vil denne nyinnspillingen automatisk være en nyinnspilling av originalen? Siden dette ikke var spesifisert, vil begge varianter godtas. Variant 1: Man kan kun ha nyinnspillinger av originalsanger Her vil de lengste stiene ha lengde 1 (hvis man antar en rettet graf og rettede stierellers vil lengste sti kunne bestå av to kanter), og man trenger kun sjekke om grafen har noen kanter i det hele tatt (eventuelt lete etter noder med to naboer). Kjøretiden blir (1) (eventuelt (V)). For å få full uttelling for variant 1 må man eksplisitt ha forklart hvorfor løsningen er riktig (dvs., at man ikke kan ha en nyinnspilling av en nyinnspilling). Variant 2: Man kan ha nyinnspillinger av nyinnspillinger Uansett vil nyinnspillinger komme senere i tid, så man kan ikke ha sykler. Med kun denne observasjonen (G er en DAG) vil man kunne finne den lengste stien ved dynamisk programmering (den lengste stien til en node er kun avhengig av de lengste stiene til forgjengerne). Ved å legge til observasjonen at hver cover kun kan ha en forgjenger, ser man at grafen er en skog (en samling trær), og man kan for eksempel bruke BFS eller DFS. Kjøretiden blir (V + E). b) (5%) Enten (1) argumenter for at det er NP-komplett å finne den lengste stien i G, eller (2) beskriv kort en effektiv algoritme som finner den lengste stien i G (angi kjøretid). Under antagelsen P NP (som forutsettes) vil kun ett av alternativene kunne velges. (Studenter som eventuelt klarer å vise at problemet er NP-komplett og å løse det effektivt vil naturligvis automatisk få karakteren A.) Grafen G er ikke nødvendigvis asyklisk. Den kan være en vilkårlig rettet graf, og kan derfor representere en vilkårlig (urettet) graf. Problemet er altså NP-komplett (fordi det er ekvivalent med det NP-komplette problemet som er beskrevet i oppgaveteksten). Oppgave 3 (10%)

Studentnummer: Side 6 av 6 I det følgende, anta at G = (V, E) er en urettet, asyklisk graf der alle kantene i E har vekt 1. Hvis du finner de korteste avstandene fra en node v i V til alle de andre nodene i V så er eksentrisiteten til v den lengste av disse avstandene. a) (4%) Beskriv kort en effektiv algoritme som finner en eller flere noder med minimal eksentrisitet i grafen G. Oppgi kjøretid i verste tilfelle (så presist som mulig) med asymptotisk notasjon. Begrunn svaret. En urettet, asyklisk graf er det samme som en skog. Hvis grafen ikke er sammenhengende vil alle noder ha uendelig eksentrisitet, så vi antar at grafen er sammenhengende, det vil si et tre. Så lenge det finnes interne noder i treet vil ikke løvnodene kunne ha minimal eksentrisitet. Hvis man gjentatte ganger fjerner alle løvnodene helt til man ikke lenger har interne noder vil man ha funnet svaret. Å finne løvnodene i første iterasjon vil ta (n) tid (med n noder). Mengden med løvnoder kan så vedlikeholdes uten ekstra asymptotisk kostnad når gamle løvnoder fjernes og nye oppstår. Siden man maksimalt kan fjerne (n) noder blir kjøretiden (n). b) (3%) Hvor mange noder kan inngå i svaret til algoritmen i a)? Gi en kort begrunnelse. Maksimalt to noder. Tre eller flere noder kan ikke ha samme eksentrisitet i et tre. c) (3%) Beskriv kort et praktisk eksempel der en slik algoritme kan være av interesse. Her er det åpent for kreative forslag. Det viktigste er at man gir uttrykk for å ha forstått problemstillingen helt presist. Man må altså ha forstått at grafen er et tre (eventuelt, i spesielle tilfeller en usammenhengende skog) og at man er ute etter noden(e) som ligger i sentrum. Et eksempel kan for eksempel være å finne det beste stedet å legge et lager i et distribusjonsnettverk (der nettverket er uten sykler).