Danmarks Tekniske Universitet

Relaterede dokumenter
Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

02105 Eksamensnoter. Lasse Herskind S maj Sortering 3

Danmarks Tekniske Universitet

Algoritmer og datastrukturer Course No Cheat Sheet May 15, 2012

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

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

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer

Prioritetskøer og hobe. Philip Bille

Binære søgetræer. Nærmeste naboer Binære søgetræer Indsættelse Predecessor og successor Sletning Trægennemløb. Philip Bille

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer

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

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

Skriftlig Eksamen Algoritmer og Datastrukturer 1. Datalogisk Institut Aarhus Universitet

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

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

Binære søgetræer. Binære søgetræer. Nærmeste naboer. Nærmeste nabo

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

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

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)

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

DATALOGISK INSTITUT, AARHUS UNIVERSITET

INSTITUT FOR DATALOGI, AARHUS 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.

Definition : Et træ er en sammenhængende ikke-orienteret graf uden simple kredse. Sætning : En ikke-orienteret graf er et træ hvis og kun hvis der er

DATALOGISK INSTITUT, AARHUS UNIVERSITET

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507)

Binære søgetræer. Binære søgetræer. Nærmeste naboer. Nærmeste nabo

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

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)

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

DATALOGISK INSTITUT, AARHUS UNIVERSITET

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

DATALOGISK INSTITUT, AARHUS UNIVERSITET

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

DATALOGISK INSTITUT, AARHUS UNIVERSITET

DATALOGISK INSTITUT, AARHUS UNIVERSITET

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 )?

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

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

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

Skriftlig Eksamen Algoritmer og Datastrukturer 2 (2003-ordning)

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

DATALOGISK INSTITUT, AARHUS UNIVERSITET

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

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

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

DM02 Kogt ned. Kokken. Januar 2006

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

Orienterede grafer. Orienterede grafer. Orienterede grafer. Vejnetværk

Datastrukturer (recap)

Datastrukturer (recap)

Grafer og graf-gennemløb

Grafer og graf-gennemløb

Grafer og graf-gennemløb

Grafer og graf-gennemløb

Mindste udspændende træ

Grafer og graf-gennemløb

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

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

DATALOGISK INSTITUT, AARHUS UNIVERSITET

Datastrukturer (recap) Datastruktur = data + operationer herpå

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

Orienterede grafer. Orienterede grafer. Orienterede grafer. Orienterede grafer

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

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

Orienterede grafer. Introduktion Repræsentation Søgning Topologisk sortering og DAGs Stærke sammenhængskomponenter Implicitte grafer.

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

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

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

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

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

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

DM507 Algoritmer og datastrukturer

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

Algoritmisk geometri

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

1. Redegør for Lister, stakke og køer mht struktur og komplexitet af de relevante operationer

Minimum udspændende Træer (MST)

Korteste veje i vægtede grafer. Længde af sti = sum af vægte af kanter på sti.

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

Intervalsøgning. Algoritmisk geometri. Motivation for intervaltræer. Intervalsøgning. Lad der være givet en database over ansatte i en virksomhed

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

Transkript:

ksamen 06, F side af sider anmarks Tekniske Universitet Skriftlig prøve, den 9. maj 0. ursusnavn: lgoritmer og datastrukturer ursus nr. 06. jælpemidler: Skriftlige hjælpemidler. et er ikke tilladt at medbringe lommeregner. Varighed: timer Vægtning af opgaverne: Opgave - 0%, Opgave - 0%, Opgave - 0%, Opgave - %, Opgave - %. Vægtningen er kun en cirka vægtning. lle opgaver besvares ved at udfylde de indrettede felter nedenfor. Som opgavebesvarelse afleveres blot denne og de efterfølgende sider i udfyldt stand. vis der opstår pladsmangel kan man eventuelt benytte ekstra papir som så vedlægges opgavebesvarelsen. Vejledende løsning ksamenssættet fortsætter på næste side

ksamen 06, F side af sider Opgave (kompleksitet). ngiv for hver af nedenstående udsagn om de er korrekte: n(n + )/00 = O(n ) n(n + )/ + log n = O(n ) n log n = O(n) n = O(log n) n + n(n )/ = O(n) a x x x Nej x x. Skriv følgende liste af funktioner op i voksende rækkefølge efter asymptotisk vækst. vs. hvis funktionen g(n) følger umiddelbart efter funktionen f(n) i din liste, så skal der gælde at f(n) = O(g(n)). n 0000 n log n + 00n + 000n n log n n / n + n Svar: n /, n + n, n log n + 00n + 000n, n 0000, n log n. etragt nedenstående algoritme, der som input tager et array med n heltal. lgorithm økke([... n]) : for i = to n do : for j = i + to n do : if [i]=[j] return false : end for : end for 6: Return true Forklar hvad algoritmen beregner/gør: lgoritmen returnerer true hvis alle tal i rækken er forskellige og false ellers. øretiden af algoritmen er (sæt kun ét kryds): it svar skal være så tæt som muligt Θ(log n) Θ(n) Θ(n log n) Θ(n log n) Θ(n. ) F Θ(n ) Θ( n ) Θ(n ) Θ( n) ksamenssættet fortsætter på næste side

ksamen 06, F side af sider. ntag at du har en algoritme hvis køretid er præcist n. vor meget langsommere kører algoritmen hvis du fordobler inputstørrelsen? dobbelt så langsom gange langsommere gange langsommere 8 gange langsommere gange langsommere F gange langsommere. etragt nedenstående algoritme. lgorithm økke(n) : if n > 0 then : for i = to n do : print : end for : økke(n ) 6: end if a) vor mange stjerner udskriver algoritmen økke når den bliver kaldt med parameteren n = : 0 b) øretiden af algoritmen er (sæt kun ét kryds): it svar skal være så tæt som muligt Θ(log n) Θ(n) Θ(n log n) Θ(n log n) Θ(n ) F Θ(n ) Θ( n ) Θ(n ) Θ( n) ksamenssættet fortsætter på næste side

ksamen 06, F side af sider Opgave (grafer). ngiv et korteste veje træ for nedenstående graf når korteste veje beregningen sker fra startknuden. ngiv for hver knude afstanden fra knuden. F 6 8 ngiv korteste veje træet og afstandene her: 0 6 F 6 0 6 en stiplede kant er ikke med i i korteste veje træet. Men kanten fra til kan erstattes med den stiplede kant. ksamenssættet fortsætter på næste side

ksamen 06, F side af sider. etragt nedenstående graf. F a) ngiv et FS træ for grafen når FS gennemløbet starter i knuden. ngiv FS-dybde/lag for hver knude. et antages at incidenslisterne er sorteret i alfabetisk orden. 0 F b) ngiv et FS træ for grafen, når FS gennemløbet starter i knuden. ngiv discovery time og finishing time for hver knude. et antages at incidenslisterne er sorteret i alfabetisk orden. / / / / 9/0 8/ F / /6 0/ /6 /9 /8 ksamenssættet fortsætter på næste side

ksamen 06, F side 6 af sider. ngiv et mindste udspændende træ i nedenstående graf. 8 9 F 6 ngiv det mindste udspændende træ og værdien af det her: F Værdi:. r nedenstående graf en (directed acyclic graph)? vis ja, så angiv en topologisk sortering af knuderne. vis nej, så forklar hvorfor. F rafen er ikke en, da den indeholder kredse (se kreds markeret med rødt). ksamenssættet fortsætter på næste side 6

ksamen 06, F side af sider Opgave (modellering og anvendelse af algoritmer/datastrukturer) Rejseselskabet Øer os planlægger rejser til øgruppen lgo. Nogle af øerne er forbundet med broer, andre må man sejle imellem. er er X øer, broer, og F færger. ver færge sejler frem og tilbage mellem to øer. Opgave.: Rejser for søsyge R a nogle af rejseselskabets kunder nemt bliver søsyge, ønsker firmaet at finde det største antal øer man kan besøge uden at skulle sejle imellem dem. På den måde kan de rejsende nøjes med at sejle til den første ø i gruppen og derefter komme til de andre øer via broerne. iv en effektiv algoritme der finder det største antal øer man kan besøge uden at sejle imellem dem. ngiv køretiden af din algoritme i asymptotisk notation (ved hjælp af parametrene X, og F ) og argumenter for at den virker. Svar Problemet kan modelleres som en uorienteret graf. Øer er knuder og broerne er kanter. er er en knude for hver ø. er er en kant mellem to knuder, hvis der er en bro mellem de to øer som knuderne svarer til. er er X øer og kanter. Problemet svarer nu til at finde den største sammenhængskomponent i grafen. ette kan gøres ved hjælp af enten FS- eller FS-algoritmen. ør FS (eller FS) fra en knude. Modificer algoritmen så den har en tæller, der tælles op hver gang en ny knude mødes. Til sidst returneres antallet af mødte knuder, dvs. antallet af knuder i den sammenhængskomponent. vis der stadig er knuder i grafen der ikke er besøgt, så kør FS (eller FS) igen fra en af disse (med tælleren nulstillet). liv ved med at køre FS (FS) indtil alle knuder er besøgt. Nu kendes størrelserne af alle sammenhængskomponenterne og det største tal returneres. FS-algoritmen tager O(X + ) tid. Modifikationen ændrer ikke på køretiden, da tælleren kan opdateres i konstant tid i hver iteration (det samme gælder FS). ksamenssættet fortsætter på næste side

ksamen 06, F side 8 af sider Opgave.: illigste færgeture ndre af rejseselskabets kunder ønsker at besøge en gruppe af Y øer, hvor der ikke er nogle broer imellem. et er muligt at besøge alle øerne ved at tage færger imellem dem. Firmaet kender prisen for alle færgeture. lle billetterne til færgerne er returbilletter. vs. man betaler for både at sejle frem og tilbage når man køber en færgebillet. er er færgeruter. Firmaet vil gerne tilbyde den billigste rejse, så de vil gerne minimere den pris man betaler for færgebilletter. iv en algoritme der finder ud af hvilke færgebilletter der skal købes for at alle Y øer kan besøges, og så den samlede pris for færgebilletter bliver mindst mulig. ngiv køretiden af din algoritme i asymptotisk notation (ved hjælp af parametrene Y og ) og argumenter for at den virker. Svar Problemet modelleres som en vægtet uorienteret graf. Øer er knuder og færgertuerne er kanter. er er en knude for hver ø. er er en kant mellem to knuder, hvis der er en færgerute mellem de to øer som knuderne svarer til. Vægten af kanten er prisen for færgebilletten. er er Y øer og kanter. a priserne er for en returbillet, svarer problemet til at finde det mindste udspændende træ i grafen. Når man har fundet et mindste udspændende træ kan man besøge alle øer ved at følge en rute der svarer til et trægennemløb af træet. ver kant besøges kun gange (en gang i hver retning) og det svarer til at der betales for netop en returbillet for hver færgerute i det mindste udspændende træ. Prisen for færgebilletter i alt bliver derfor vægten af det mindste udspændende træ. enne kan findes i lineær tid (O(Y ) tid) ved et trægennemløb når først MST er fundet. et er ikke muligt at gøre det billigere end prisen for et mindste udspændende træ, da enhver rute der besøger alle øerne må være sammenhængende, og et mindste udspændende træ er den billigste sammenhængende delgraf i grafen. vis Prims algoritme bruges bliver køretiden O( log Y ). ksamenssættet fortsætter på næste side 8

ksamen 06, F side 9 af sider Opgave.: illigste tur til alle øer Som i forrige opgave ønsker firmaet at minimere den pris man betaler for færgebilletter. Men nu er der broer mellem nogle af øerne. a broerne er gratis er der ingen grund til at tage en færge mellem to øer hvis der er en bro. er er X øer, broer, og F færger. iv en algoritme der finder ud af hvilke færgebilletter der skal købes for at alle X øer kan besøges, og så den samlede pris for færgebilletter bliver mindst mulig. ngiv køretiden af din algoritme i asymptotisk notation (ved hjælp af parametrene X, og F ) og argumenter for at den virker. Svar Problemet modelleres som en graf, hvor alle øer er knuder og kanterne svarer til broer og færgeruter. anterne der svarer til broer har vægt 0, og kanterne der svarer til færgeruter har vægt lig med prisen for billetten. vs. der er en kant mellem to knuder hvis der er en bro eller færgerute imellem dem. Problemet kan nu løses ved hjælp af algoritmen fra opgave.. rafen har X knuder og højst F + kanter. ruges Prims algoritme til at finde MST i tager O((F + ) log X) tid. lternativt svar Problemet modelleres som en graf, hvor alle øer er knuder og kanterne svarer til broer som i opgave.. lle sammenhængskomponenter findes som i opgave.. er laves nu en ny graf, hvor knuderne er sammenhængskompenterne i. anterne i er færgeruterne. er er en kant mellem to knuder u og v hvis der er en færgerute mellem en ø i u og en ø i v. Vægten af kanten er prisen for den billigste sådanne færgerute. Problemet kan nu løses ved hjælp af algoritmen fra opgave.. t finde alle sammenhængskomponenterne i tager O(X + ) tid. Når sammenhængskomponenterne er fundet tager det O(X + F ) tid at konstruere. rafen har højst X knuder og højst F kanter. ruges Prims algoritme til at finde MST i tager denne del O(F log X) tid. alt bliver køretiden: O(X + ) + O(X + F ) + O(F log X) = O(X + + F log X). ksamenssættet fortsætter på næste side 9

ksamen 06, F side 0 af sider Opgave (Træer). Trægennemløb etragt nedenstående træ. F ngiv hvilke af følgende sekvenser af bogstaver der bliver udskrevet ved et preorder, inorder og postorder gennemløb af ovenstående træ. F F F F F 6 F Preorder: norder: Postorder:. orteste sti enne opgave omhandler rodfæstede binære træer. ver knude har enten to eller ingen børn. nuden x s venstre barn betegnes left[x], og dens højre barn betegnes right[x]. vis knuden x ikke har nogle børn, har left[x] og right[x] den specielle nil værdi. vis knude x ikke har nogle børn, kaldes den et blad. llers kaldes den en intern knude. Såfremt rodknuden for et træ er nil, er træet tomt... etragt nedenstående træ. F M vad er længden af den korteste rod-til-blad sti i træet: vad er længden af den længste rod-til-blad sti i træet: ksamenssættet fortsætter på næste side 0

ksamen 06, F side af sider.. etragt følgende algoritme: lgorithm Træ(x) : if (x = nil or left[x] = nil) then : return 0 : else : return Træ(left[x]) + : end if Forklar hvad algorimen Træ(x) beregner når den bliver kørt med rodknuden til et vægtet binært træ T som input? Svar en returnerer længden af stien der går fra roden og ned til bladet længst til venstre. av algoritmen om så den i stedet returnerer længden af den korteste rod-til-blad sti i træet. køretiden af din algoritme i asymptotisk notation og argumenter for at den virker. ngiv Svar lgorithm Træ(x) : if (x = nil or left[x] = nil) then : return 0 : else : return min{træ(left[x]), Træ(right[x])}+ : end if lgoritmen finder længden af den korteste rod-til-blad sti i børnenes deltræer, tager minimum af de to og lægger en til svarende til kanten fra knuden x til barnet. vis det er et tomt træ returneres 0. vis x er et blad returneres også 0. øretiden af algoritmen er Θ(n) hvor n er antallet af knuder i træet. vert kald tager konstant tid og der kaldes kun en gang for hver knude. ksamenssættet fortsætter på næste side

ksamen 06, F side af sider Opgave (datastrukturer). etragt nedenstående kø implementeret ved hjælp af en tabel (et array)..head = og.tail = 8. 6 8 O M ngiv hvordan køen ser ud efter følgende operationer: nqueue(), nqueue(t), equeue(), nqueue(u). 6 8 T U O M. ad være en hægtet hashtabel (chained hashing) af størrelse med hashfunktion h(x) = x mod. ngiv hvordan hashtabellen ser ud efter indsættelse af tallene 6,,,, 0 6. ad være en hashtabel med linær probering (linear probing) af størrelse med hashfunktion h(x) = x mod. ngiv hvordan hashtabellen ser ud efter indsættelse af tallene 6,,,, 0 6 ksamenssættet fortsætter på næste side

ksamen 06, F side af sider. enne opgave omhandler binære max-hobe. Opgave a ngiv hvordan den binære hob nedenfor ser ud efter indsættelse af et element med nøgle 8. 9 6 Svar 8 9 6 Opgave b ngiv hvordan den binære hob nedenfor ser ud efter én xtract-max operation. 8 9 6 Svar 9 8 6