Mm4: Greedy algorithms, backtracking and more recurrences - October 21, 2008

Størrelse: px
Starte visningen fra side:

Download "Mm4: Greedy algorithms, backtracking and more recurrences - October 21, 2008"

Transkript

1 Algorithms and Architectures I Rasmus Løvenstein lsen (RL), Jimmy Jessen Nielsen (JJE) Mm4: Greedy algorithms, backtracking and more recurrences - ctober 21, 2008

2 Algorithms and Architectures II 1. Introduction to analysis and design of algorithms(rl) 2. Recursive algorithms and recurrences (RL) 3. More about recurrences (RL) 4. Greedy algorithms, backtracking and more recurrences(rl) 5. Counting, probabilities and randomized algorithms (RL) 6. More sorting algorithms: Heap sort and quick sort (RL) 7. A little bit more about sorting - and more times for exercises (RL) 8. Hash tables, Hashing and binary search trees (RL) 9. Binary search trees, red-black trees (JJE) 10. Red-black trees continued + string matching (JJE)

3 Dagsorden Rekursion flere eksempler Heltalsmultiplikation Tennis turnering Dynamisk programmering World series odds Grådige algoritmer Eksempler Kruskals algoritme Prims algoritme Den omrejsende handelsmand Heuristiske algoritmer Backtracking Alpha beta beskæring psummering og konklusion pgaver

4 Multiplikation af heltal #1 Tænk på opgaven Z = * Y En algoritme går ud på at dele og Y ind i to andre heltal med længden n/2 bits hver, således = A B = A2 n/2 + B Y = C D = C2 n/2 + D Produktet Z kan nu skrives som Z = Y = AC2 n + (AD + BC)2 n/2 + BD Dette kræver 4 Multiplikationer af n/2 bit heltal, hver tager T(n/2) Tre additioner og to skifte operationer (*2 n termerne), tager (n)

5 Multiplikation af heltal #2 Multiplikationskompleksiteten bliver således T(1) = 1 T(n) = 4T(n/2) + cn a = 4, b = 2 og med c = 1og vi får d(n) = n Ved brug af de metoder vi kender kan vi konstatere at T(n) = (n 2 )

6 Multiplikation af heltal #3 Tænk nu over flg. metode at udføre multiplikationen Z = Y = AC2 n + [(A - B)(D - C) + AC + BD]2 n/2 + BD Kompliceret? Måske umiddelbart, men nu kræves der kun Tre multiplikationer, hver T(n/2) Seks additioner/subtraktioner og to rotationer, i alt (n) Derved opnår vi en kompleksitet på T(1) = 1 T(n) = 3T(n/2) + cn Hvis løsning er T(n) = (n log2(3) ) = (n 1.59 ) (n 1.59 ) < (n 2 ) og dermed er det hurtigere at anvende denne

7 Multiplikation af heltal #3 men men men.. Hvorfor bruger/lærer vi så ikke den komplicerede algoritme? Den første algoritme er for de fleste nemmere at indse og lære Vi har sat konstanten c = 1, med andre værdier af c opnår vi ens beregningskompleksitet

8 Tennis turnering En round-robin tennis turnering planlægges for n = 2 k spillere Spillene udføres over n 1 dage Programmet organiseres i en n x n-1 matrix, der indikerer hvem spiller mod hvem på de forskellige dage Ideen bag en algoritme der kan lave en sådan turnering er således at Gruppen af spillere deles op i halve portioner (undergrupper), indtil vi når grundtilfældet med undergrupper på to spillere De to parres og samles i større undergrupper Undergrupperne parres nu sammen indtil samtlige undergrupper er samlet i den store gruppe Efterfølgende dage, skabes ved samtlige mulige permutationer af den/de disjunkte undergruppe

9 Løsning af underproblemerne Til samling af undergrupperne udføres altså en cyklisk permutation af de enkelte undergrupper Til deling og samling af undergrupperne kan vi benytte enten Insertion - sort der giver en kompleksitet på T(n) = T(1) + T(n-1) + n; -> (n 2 ) Merge sort der giver en kompleksitet på T(n)=2T(n/2) + d(n); T(1)=1; -> (nlog 2 (n))

10 Dagsorden Rekursion flere eksempler Heltalsmultiplikation Tennis turnering Dynamisk programmering World series odds Grådige algoritmer Eksempler Kruskals algoritme Prims algoritme Den omrejsende handelsmand Heuristiske algoritmer Backtracking Alpha beta beskæring psummering og konklusion pgaver

11 Dynamisk programmering Rekursive algoritmer baseres ofte på at dele problemer op i mindre dele der ligner original problemet, som vi har set Det sker dog ofte at vi løser det samme problem igen og igen En ide kunne være at genbruge resultater, så f.eks. f(n) = n! ved vi at hvis vi en gang har beregnet f(4) = 4*3*2*1 = 24, så behøver vi ikke beregne f(4) igen. Vi gemmer resultatet i en tabel og genbruger. Dermed øges hastigheden også på beregning af f.eks. f(5) = 5*f(4)

12 World series odds #1 Tænk på to teams, A og B, spiller et spil hvori det gælder om at vinde n spil World series er sådan et spil med n = 4 Antag A og B er lige gode, hvert hold har 50% sandsynlighed for at vinde Lad nu P(i,j) være sandsynligheden for at team A vinder, hvor i er antallet af spil A mangler at vinde for at vinde spillet j er antallet af spil B mangler at vinde for at vinde spillet Hvis i = 0 eller j = 0 så har A eller B vundet kampen allerede, dvs. P(0,j) = 1; j>0 P(i,0) = 0; i>0 Generelt P(i,j) = (P(i-1, j) + P(i, j-1))/2

13 World series odds #2 Dermed har vi en funktion (for vores sandsynlighed) der ser således ud 1; i = 0, j > 0 P( i, j) = 0; i > 0, j = 0 P( i 1, j) + P( i, j 1) ; 2 Lad T(n) være den maksimum tid det tager at kalde P(i,j), hvor i + j = n, så T(1) = c T(n) = 2T(n-1) + d T(n) 2 n-1 + (2 n-1-1)d = (2 n ) Konklusion: P(i,j) tager ikke mere end (2 i+j ) tid i > 0, j > 0

14 World series odds #3 Den totale mængde af kald til P(i,j) er givet ved (antallet af måder i hvormed i kan vælges ud af i+j muligheder) For i = j er T(n) givet ved Ω(2 n /sqrt(n)) i + j Forskellen mellem (2 n ) og Ω(2 n /sqrt(n)) er ikke forfærdelig stor, og i begge tilfælde er det ikke praktisk at beregne sandsynlighederne på denne måde Men hvad gør vi så? Dynamisk Programmering..

15 World series odds dynamisk programmering /2 21/32 13/16 15/ /32 1/2 11/16 7/ /16 5/16 1/2 3/ /16 1/8 1/4 1/ i j Lad algoritmen udfylde tabellen fra nederste højre hjørne og arbejd opad/henad. I det her tilfælde kan man også udnytte symmetrien P(i,j) + P(j,i) = 1

16 Worlds series odds Implementering af beregning Funktion odds(i, j) Cost Integer s, k; 1 For s = 1 to i + j n = i + j 2 P(0, s) = 1; n 1 3 P(s, 0) = 0; n 1 4 for k = 1 to s-1 5 P(k, s-k) = ((P(k-1, s-k) + P(k, s-k-1))/2 6 return P(i, j) 1 Dermed bliver T(n) for odds(i,j) = (n 2 ), n=i+j s 1 k = 1 s 2 k = 1 k k

17 Sammenligning (2 n ) Complexity f(n) Ω(2 n / n) n (n 2 ) - Konklusion: Vi har lyst til at bruge dynamisk programmering!!

18 Dagsorden Rekursion flere eksempler Heltalsmultiplikation Tennis turnering Dynamisk programmering World series odds Grådige algoritmer Eksempler Kruskals algoritme Prims algoritme Den omrejsende handelsmand Heuristiske algoritmer Backtracking Alpha beta beskæring psummering og konklusion pgaver

19 Grådige algoritmer Forestil jer at vi har følgende mønter 25 Eurocents 10 Eurocents 5 Eurocents 1 Eurocents Nu skal vi give 63 Eurocents tilbage for et køb af en vare Hvordan finder vi ud af at give penge tilbage? Nogle bud? A. 63x1 Eurocents B. 6x10 + 3x1 Eurocents C. 2x25 + 1x10 + 3x1 Eurocents D. 2x25 + 1x5 + 8x1 Eurocents Hvilke kriterier havde i for jeres valg?

20 Grådige algoritmer: Nogle grundsten 1. Et kandidat sæt hvorfra en løsning er skabt 2. En udvælgelsesfunktion der bestemmer den bedste kandidat der skal tilføjes løsningen 3. En gyldighedsfunktion der bestemmer om den mulige løsning overhovedet er lovlig 4. En formålsfunktion der bestemmer om løsningen skal med i den fuldstændige eller en partiel løsning 5. En løsningsfunktion der bestemmer hvorvidt algoritmen har nået en løsning eller ej

21 Møntproblemet igen nu også grafisk

22 Den omrejsende salgsmand (the travelling salesman) problem - Brute force løsninger giver en kompleksitet på (n!) - Med dynamisk programmering kan vi reducere det til (n 2 2 n ) - Flere andre løsninger findes også: - Dijkstras algoritme og lignende - Backtracking - Alfa-beta beskæring - Genetiske algoritmer

23 Eksempel - Dijkstras algoritme Grådig algoritme til at finde korteste og billigste sti i en retningsorienteret graf Ideen er for hvert punkt at estimere prisen for at rejse til næste knude, og vælge den billigste tur Anvendes til bl.a. routning af data pakker i netværk S Ø 2 Q V[G] 3 while Q Ø do u ETRACT-MIN(Q) S S {u} for each vertex v Adj[u] do Relax(u,v,w) 4 6

24 Eksempel - Kruskal s algorithm Grådig algoritme til at konstruere et minimum span træ Ideen er baseret på at danne et sæt af linjer lokalvist og derefter sætte dem sammen stykvist 1 A Ø 2 for each vertex v V[G] do MAKE-SET(v) 3 sort edges of E into increasing cost by w 4 for each edge (u,v) E do if FIND-SET(u) FIND-SET(v) then A A {(u,v)} UNIN(u,v) 5 return A a b h i 2 6 c g d f e

25 Eksempel - Prim s algorithm Grådig algoritme til at danne et sæt af forbundne noder, ligesom Kruskal s Alle kanter der endnu ikke er en del af træet er anført i en minimum prioritets kø, Q A = {( v, π[ v]) : v V { r} Q} Målet er nået når flg. kriterium er opnået A = {( v, π[ v]) : v V { r}} a b h i 2 6 c g 7 1 for each u V[G] do key[u] π[u] NIL 2 key[r] 0 3 Q V[G] 4 while Q Ø do u ETRACT-MIN(Q) for each v Adj[u] do if v Q and w(u,v)<key[v] then π[v] u key[v] w(u,v) 2 4 d f e

26 Eksempler Sammenligninger Kompleksitet for de tre algoritmer Knuder : V; Forbindelser : E Kruskal s algoritme (E log (V)) Prim s og Djikas algoritme (afhængig af hvorledes Q er implementeret) Adjacency matrix: (V 2 ) Binary heap: ((V+E) log (V)) = (E log(v)) Fibonacci heap: (E+V log(v)) Prim s algorithm indeholde til enhver tid et komplet træ, mens Kruskal s algoritme ikke nødvendigvis gør

27 Heuristiske grådige algoritmer For nogle problemer producerer grådige algoritmer ikke optimale løsninger, f.eks. Dijkstras algoritme med negativt vægtede forbindelser Den omrejsende salgsmand

28 Dijkstras algoritme med negative vægtet forbindelse Betragt følgende: SA = 1, ikke så meget der AB = 2 < AC = 3, ergo vælger en grådig algoritme AB Men hmmm.. AC + CB = 1 < AB = 2 Konklusion: Grådige algoritmer virker ikke altid helt efter hensigten! Grådige algoritmer som Dijkstra ser ikke på helhedsbilledet. 2 B S 1 A -2 3 C

29 Heuristiske grådige algoritmer Nogle problemer egner sig som sagt ikke til at finde optimale løsninger med Men i langt de fleste tilfælde er det nok at få et ret godt resultat Spørgsmålet er blot hvor godt Eller om andre valg er realistiske tidsmæssige... Tag nu den omrejsende salgsmands problem igen som eksempel... c d c d c d b e b e b e a A f Hvilken tur er den bedste? Det er nemt nok hvis der kun er tre at vælge imellem, men hvad hvis der var løsninger at vælge imellem? a B f a C f

30 Den omrejsende salgsmands problem igen igen En modificeret Kruskals algoritme kan løse vores problem (en heuristisk grådig algoritme) Et punkt under betragtning skal overholde flg. krav før den kan indgå i en løsning: kanten får ikke den eksisterende løsning til at have mere end tre grader kanten får ikke den eksisterende løsning til at danne en kreds, undtagen der er tale om den sidste kant En betragtet kant der overholde disse krav, bliver en del af løsningen og hvis ikke, bliver den afvist

31 g den modificerede algoritme i praksis c d b e a f Så svaret på spørgsmålet blev her (A)

32 Backtracking hvad er problemet? Er det virkelig nødvendigt at gennemgå løsninger der er baseret på ulovlige træk? Kan vi ikke spare noget tid ved eliminering af sådanne muligheder? Løsningen hedder backtracking Eksempler Kryds og bolle Dronninge problemet Convex hull problemet

33 Eksempel - Kryds og bolle

34 Eksempel - Kryds og bolle #2 Først mappes udviklingen ind i et træ med symboler forståelig for vores algoritme, f.eks. -1 indikation af et godt træk for 0 indikation af et lige godt/dårligt træk for og 1 indikation af et godt træk for Spillerne bør bruge funktionen : min(x 1,..,x n ) : max(x 1,..,x n ) Andre spil/problemer, f.eks. Skak kan have meget mere komplicerede regler og funktioner flytter S = 0 flytter S = -1 Udsnit af træ S = 1 flytter S = -1 flytter

35 Eksempel - Dronninge problemet Betragt et n gange n skakbræt, og problemet med at placere q dronninger på brættet uden at dronningerne truer hinanden. Ø Ø ØØ Ø Ø En dronning truer en række felter Løsningsrummet er {1,2,3,,n} n At prøve alle samtlige løsninger inkluderer n n tilfælde, men ved at udnytte to dronninger ikke kan være i samme række/kolonne reducerer opgaven til n! tilfælde.

36 Eksempel: Convex hull (Graham s Scan) Problemet går ud på at konstruere den korteste polygon der omkredser et given sæt af punkter på et plan Gennemgå punkterne i en tilfældig rækkefølge, læg dem i en delvis løsning når der laves et retningskift på mindre en 180 o og backtrack når der laves større retningsskift Gennemgå nu de forskellige løsninger Intuitivt Start med et yderpunkt Algoritmen kræver (o log n) gange for at sortere punkterne og (n) tid for at vælge en relevant basis

37 Backtracking En potentiel løsning er repræsenteret som S={v 1,v 2,..,v n } Try(S) Is S a solution Yes Return S No For each v in S, do: No Is {v 1,v 2,..,v n, v} Acceptable? Yes Try {v 1,v 2,..,v n, v} No Is S = Ø Return S Yes

38 Karakteristika for backtracking algoritmen Backtracking er god til at gennemgå et løsningsrum for gode løsninger Det vigtigste, og tit sværeste, er identifikation af problemet Beskrivelse og identifikation af regler er nødvendige, men ikke nødvendigvis let! kan nemt reducere antallet af iterationer der er behov for under udførsel

39 Alpha beta beskæring I nogle tilfælde kan man afskære hele grene af et træ og spare meget tid Betragt flg. Regler 1. Hvis alle underpunkter af et knudepunkt n er blevet overvejet eller afskåret, lad den endelige værdi for knudepunktet blive endeligt 2. Hvis vi for et knudepunkt n betragter en 1. Max knudepunkt der har en midlertidig værdi v1 og et underpunkt med en endelig værdi v2, så sæt den midlertidige værdi af n til max(v1,v2). 2. Min knudepunkt der har en midlertidig værdi v1 og et underpunkt med en endelig værdi v2, så sæt den midlertidige værdi af n til min(v1,v2) 3. Hvis et knudepunkt er en 1. Min knudepunkt p med en super knude q (en max knude) og p og q har midlertidige værdier v1 og v2, med v1<=v2 så kan vi afskære underpunkterne i p 2. Max knudepunkt p med en super knude q (en max knude) og p og q har midlertidige værdier v1 og v2, med v2<=v1 så kan vi afskære underpunkterne i p g i praksis ser det således ud...

40 Eksempel - Alpha beta beskæring

41 Dagsorden Rekursion flere eksempler Heltalsmultiplikation Tennis turnering Dynamisk programmering World series odds Grådige algoritmer Eksempler Kruskals algoritme Prims algoritme Den omrejsende handelsmand Heuristiske algoritmer Backtracking Alpha beta beskæring psummering og konklusion pgaver

42 psummering og konklusion Endnu lidt flere eksempler med rekursive algoritmer og udnyttelse af analyse til valg af effektiv algoritme Heltalsmultiplikation Tennis turnering Hvordan vi kan effektivisere rekursive algoritmer Dynamisk programmering Grådige algoritmer Fokuserer sig på bedst løsning i situationen Ser ikke så meget på helhedsbilledet F.eks. Kruskals algoritme og Prims algoritme Effektivisering af grådige algoritmer Reducering af løsningsrum ved afskæring af ulovlige løsningsmuligheder Backtracking Alpha beta beskæring

43 g endelig...!!!

44 pgaver vervej implementeringsstrategier for planlægning af hvorledes en robot kan bevæge sig effektivt i et lager Hvilke forbehold er der for en potentiel rute? Hvilken type algoritme vil være bedst? Kruskal, Prims, Dijkstras eller noget andet? Hvordan vil robotten kunne opdatere sin rute hvis der sker ændringer i lokalet? Hvad hvis en sætter en boks et sted og forhindrer/gør det dyrt at bevæge sig et sted? Er det muligt at anvende en form for beskæring af muligheder i form af ulovlige ruter? Fortsæt med rekursive opgaver fra sidst

Algorithms and Architectures I Rasmus Løvenstein Olsen (RLO), Jimmy Jessen Nielsen (JJE) Mm3: More about recurrences - October 10, 2008

Algorithms and Architectures I Rasmus Løvenstein Olsen (RLO), Jimmy Jessen Nielsen (JJE) Mm3: More about recurrences - October 10, 2008 Algorithms and Architectures I Rasmus Løvenstein Olsen (RLO), Jimmy Jessen Nielsen (JJE) Mm3: More about recurrences - October 10, 2008 1 Algorithms and Architectures II 1. Introduction to analysis and

Læs mere

Algorithms and Architectures I Rasmus Løvenstein Olsen (RLO), Jimmy Jessen Nielsen (JJE) Mm2: Rekursive algoritmer og rekurrens - October 10, 2008

Algorithms and Architectures I Rasmus Løvenstein Olsen (RLO), Jimmy Jessen Nielsen (JJE) Mm2: Rekursive algoritmer og rekurrens - October 10, 2008 Algorithms and Architectures I Rasmus Løvenstein Olsen (RLO), Jimmy Jessen Nielsen (JJE) Mm2: Rekursive algoritmer og rekurrens - October 10, 2008 1 Algorithms and Architectures II 1. Introduction to analysis

Læs mere

Mm7: A little bit more about sorting - and more times for exercises - November 4, 2008

Mm7: A little bit more about sorting - and more times for exercises - November 4, 2008 Algorithms and Architectures I Rasmus Løvenstein Olsen (RLO), Jimmy Jessen Nielsen (JJE) Mm: A little bit more about sorting - and more times for exercises - November 4, 2008 1 Algorithms and Architectures

Læs mere

Mm6: More sorting algorithms: Heap sort and quick sort - October 29, 2008

Mm6: More sorting algorithms: Heap sort and quick sort - October 29, 2008 Algorithms and Architectures I Rasmus Løvenstein Olsen (RLO), Jimmy Jessen Nielsen (JJE) Mm6: More sorting algorithms: Heap sort and quick sort - October 9, 008 Algorithms and Architectures II. Introduction

Læs mere

Algorithms and Architectures I Rasmus Løvenstein Olsen (RLO) Mm2: Rekursive algoritmer og rekurrens - October 12, 2010

Algorithms and Architectures I Rasmus Løvenstein Olsen (RLO) Mm2: Rekursive algoritmer og rekurrens - October 12, 2010 Algorithms and Architectures I Rasmus Løvenstein Olsen (RLO) Mm2: Rekursive algoritmer og rekurrens - October 12, 2010 1 Algorithms and Architectures II 1. Introduction to analysis and design of algorithms

Læs mere

Mm8: Hash tables, Hashing and binary search trees - November 7, 2008

Mm8: Hash tables, Hashing and binary search trees - November 7, 2008 Algorithms and Architectures I Rasmus Løvenstein Olsen (RLO), Jimmy Jessen Nielsen (JJE) Mm8: Hash tables, Hashing and binary search trees - November 7, 2008 1 Algorithms and Architectures II 1. Introduction

Læs mere

Algorithms & Architectures I 2. lektion

Algorithms & Architectures I 2. lektion Algorithms & Architectures I 2. lektion Design-teknikker: Divide-and-conquer Rekursive algoritmer (Recurrences) Dynamisk programmering Greedy algorithms Backtracking Dagens lektion Case eksempel: Triple

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af sider Danmarks Tekniske Universitet Skriftlig prøve, den 6. maj 0. Kursusnavn: Algoritmer og datastrukturer I Kursus nr. 005. Tilladte hjælpemidler: Skriftlige hjælpemidler. Varighed: timer Vægtning

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af sider Danmarks Tekniske Universitet Skriftlig prøve, den. maj 00. Kursusnavn Algoritmer og datastrukturer Kursus nr. 06. Tilladte hjælpemidler: Alle hjælpemidler. Vægtning af opgaverne: Opgave

Læs mere

Mm1: Introduction to analysis and design of algorithms - October 7, 2008

Mm1: Introduction to analysis and design of algorithms - October 7, 2008 Algorithms and Architectures I Rasmus Løvenstein Olsen (RLO), Jimmy Jessen Nielsen (JJE) Mm1: Introduction to analysis and design of algorithms - October 7, 2008 Algorithms and Architectures II 1. Introduction

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af sider Danmarks Tekniske Universitet Skriftlig prøve, den 6. maj 0. Kursusnavn: Algoritmer og datastrukturer Kursus nr. 06. Tilladte hjælpemidler: Skriftlige hjælpemidler. Varighed: timer Vægtning

Læs mere

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

Mindste udspændende træ. Mindste udspændende træ. Introduktion. Introduktion Philip Bille Introduktion (MST). Udspændende træ af minimal samlet vægt. Introduktion (MST). Udspændende træ af minimal samlet vægt. 0 0 Graf G Ikke sammenhængende Introduktion (MST). Udspændende træ af

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af sider Danmarks Tekniske Universitet Skriftlig prøve, den. maj 00. Kursusnavn Algoritmer og datastrukturer I Kursus nr. 005. Tilladte hjælpemidler: Alle skriftlige hjælpemidler. Vægtning af opgaverne:

Læs mere

Algorithms and Architectures I Rasmus Løvenstein Olsen (RLO) Mm1: Introduction to analysis and design of algorithms - October 11, 2010

Algorithms and Architectures I Rasmus Løvenstein Olsen (RLO) Mm1: Introduction to analysis and design of algorithms - October 11, 2010 Algorithms and Architectures I Rasmus Løvenstein Olsen (RLO) Mm1: Introduction to analysis and design of algorithms - October 11, 2010 1 Algorithms and Architectures II 1. Introduction to analysis and

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af 2 sider Danmarks Tekniske Universitet Skriftlig prøve, den 2. maj 200. Kursusnavn Algoritmer og datastrukturer Kursus nr. 02326. Tilladte hjælpemidler: Alle hjælpemidler. Vægtning af opgaverne:

Læs mere

Skriftlig Eksamen Algoritmer og Datastrukturer 2 (2003-ordning)

Skriftlig Eksamen Algoritmer og Datastrukturer 2 (2003-ordning) Skriftlig Eksamen Algoritmer og Datastrukturer 2 (2003-ordning) Datalogisk Institut Aarhus Universitet Fredag den 28. maj 2004, kl. 9.00 13.00 Opgave 1 (20%) En (r, k) kryds-graf er en orienteret graf

Læs mere

DM02 Kogt ned. Kokken. Januar 2006

DM02 Kogt ned. Kokken. Januar 2006 DM02 Kogt ned Kokken Januar 2006 1 INDHOLD Indhold 1 Asymptotisk notation 2 2 Algoritme analyse 2 3 Sorterings algoritmer 2 4 Basale datastrukturer 3 5 Grafer 5 6 Letteste udspændende træer 7 7 Disjunkte

Læs mere

Algoritmer og datastrukturer Course No. 02105 Cheat Sheet 2012. May 15, 2012

Algoritmer og datastrukturer Course No. 02105 Cheat Sheet 2012. May 15, 2012 Algoritmer og datastrukturer Course No. 02105 Cheat Sheet 2012 May 15, 2012 1 CONTENTS 2012 CONTENTS Contents 1 Kompleksitet 3 1.1 Køretid................................................ 3 1.2 Asymptotisk

Læs mere

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

Skriftlig Eksamen Algoritmer og Datastrukturer (dads) Skriftlig Eksamen Algoritmer og Datastrukturer (dads) Datalogisk Institut Aarhus Universitet Tirsdag den 27. maj 2003, kl. 9.00 3.00 Opgave (25%) For konstanten π = 3.4592... gælder identiteten π 2 6 =

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet Eksamen 005, F side af sider Danmarks Tekniske Universitet Skriftlig prøve, den 6. maj 0. Kursusnavn: Algoritmer og datastrukturer I Kursus nr. 005. Tilladte hjælpemidler: Skriftlige hjælpemidler. Varighed:

Læs mere

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

Skriftlig Eksamen Algoritmer og Datastrukturer (dads) Skriftlig Eksamen Algoritmer og Datastrukturer (dads) Datalogisk Institut Aarhus Universitet Mandag den 27. maj 2002, kl. 9.00 13.00 Opgave 1 (25%) Denne opgave handler om multiplikation af positive heltal.

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af 2 sider Danmarks Tekniske Universitet Skriftlig prøve, den 2. maj 200. Kursusnavn Algoritmer og datastrukturer I Kursus nr. 0205. Tilladte hjælpemidler: Alle skriftlige hjælpemidler. Vægtning af

Læs mere

Mm5: Counting, probabilities and randomized algorithms - Oktober 24, 2008

Mm5: Counting, probabilities and randomized algorithms - Oktober 24, 2008 Algorithms and Architectures I Rasmus Løvenstein Olsen (RLO), Jimmy Jessen Nielsen (JJE) Mm5: Counting, probabilities and randomized algorithms - Oktober 24, 2008 1 Algorithms and Architectures II 1. Introduction

Læs mere

Mindste udspændende træ

Mindste udspændende træ Mindste udspændende træ Introduktion Repræsentation af vægtede grafer Egenskaber for mindste udspændende træer Prims algoritme Kruskals algoritme Philip Bille Mindste udspændende træ Introduktion Repræsentation

Læs mere

Algorithms and Architectures I Rasmus Løvenstein Olsen (RLO) Mm8: Hash tables og Hashing - November 10, 2010

Algorithms and Architectures I Rasmus Løvenstein Olsen (RLO) Mm8: Hash tables og Hashing - November 10, 2010 Algorithms and Architectures I Rasmus Løvenstein Olsen (RLO) Mm8: Hash tables og Hashing - November 10, 2010 1 Algorithms and Architectures II 1. Introduction to analysis and design of algorithms (RLO

Læs mere

Dynamisk programmering

Dynamisk programmering Dynamisk programmering Dynamisk programmering Optimeringsproblem: man ønsker at finde bedste den kombinatoriske struktur (struktur opbygget af et endeligt antal enkeltdele) blandt mange mulige. Eksempler:

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet Eksamen 005, F0 side af sider Danmarks Tekniske Universitet Skriftlig prøve, den 6. maj 00. Kursusnavn Algoritmik og datastrukturer I Kursus nr. 005. Tilladte hjælpemidler: Alle skriftlige hjælpemidler.

Læs mere

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

Mindste udspændende træ. Mindste udspændende træ. Introduktion. Introduktion Philip Bille Introduktion (MST). Udspændende træ af minimal samlet vægt. Introduktion (MST). Udspændende træ af minimal samlet vægt. 0 0 Graf G Ikke sammenhængende Introduktion (MST). Udspændende træ af

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet Eksamen 02105, F14 side 1 af 14 Danmarks Tekniske Universitet Skriftlig prøve, den 22. maj 2014. Kursusnavn: Algoritmer og datastrukturer 1 Kursusnummer: 02105 Hjælpemidler: Skriftlige hjælpemidler. Det

Læs mere

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

Algoritmeanalyse. Øvre grænse for algoritme. Øvre grænse for problem. Nedre grænse for problem. Identificer essentiel(le) operation(er) Algoritmeanalyse Identificer essentiel(le) operation(er) Øvre grænse for algoritme Find øvre grænse for antallet af gange de(n) essentielle operation(er) udføres. Øvre grænse for problem Brug øvre grænse

Læs mere

Dynamisk programmering

Dynamisk programmering Dynamisk programmering Dynamisk programmering Optimeringsproblem: man ønsker at finde bedste den kombinatoriske struktur blandt mange mulige. Dynamisk programmering Optimeringsproblem: man ønsker at finde

Læs mere

Løs til optimalitet i eksponentiel tid Find tilnærmet løsning i polynomiel tid

Løs til optimalitet i eksponentiel tid Find tilnærmet løsning i polynomiel tid 6 april Løsning af N P -hårde problemer Løs til optimalitet i eksponentiel tid Find tilnærmet løsning i polynomiel tid Oversigt Grænseværdier (repetition) Branch-and-bound algoritmens komponenter Eksempler

Læs mere

Udtømmende søgning 1

Udtømmende søgning 1 Udtømmende søgning Udtømmende søgning (kombinatorisk søgning) Systematisk gennemsøgning af alle potentielle løsninger Den rejsende sælgers problem (TSP): En sælger skal besøge N byer Find den korteste

Læs mere

Tirsdag 12. december David Pisinger

Tirsdag 12. december David Pisinger Videregående Algoritmik, DIKU 2006/07 Tirsdag 12. december David Pisinger Resume sidste to gang Sprog L : mængden af instanser for et afgørlighedsproblem hvor svaret er 1. P = {L : L genkendes af en algoritme

Læs mere

Dynamisk programmering

Dynamisk programmering Dynamisk programmering Dynamisk programmering Et algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Har en hvis lighed med divide-and-conquer: Begge opbygger løsninger til større problemer

Læs mere

02105 Eksamensnoter. Lasse Herskind S maj Sortering 3

02105 Eksamensnoter. Lasse Herskind S maj Sortering 3 02105 Eksamensnoter Lasse Herskind S153746 12. maj 2017 Indhold 1 Sortering 3 2 Analyse af algoritme 4 2.1 Køretid.......................................... 4 2.2 Pladsforbrug.......................................

Læs mere

Udtømmende søgning. Udtømmende søgning (kombinatorisk søgning) Problem med 4461 byer Udtømmende søgning i grafer. Find den korteste rundtur

Udtømmende søgning. Udtømmende søgning (kombinatorisk søgning) Problem med 4461 byer Udtømmende søgning i grafer. Find den korteste rundtur Udtømmende søgning Udtømmende søgning (kombinatorisk søgning) Systematisk gennemsøgning af alle potentielle løsninger Den rejsende sælgers problem (TSP): En sælger skal besøge N byer ind den korteste rundtur

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet ksamen 06, side af sider anmarks Tekniske Universitet Skriftlig prøve, den 6. maj 0. ursusnavn: lgoritmer og datastrukturer ursus nr. 06. Tilladte hjælpemidler: Skriftlige hjælpemidler. Varighed: timer

Læs mere

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer Skriftlig Eksamen DM507 Algoritmer og Datastrukturer Institut for Matematik og Datalogi Syddansk Universitet, Odense Mandag den 6. juni 2016, kl. 15:00 19:00 Besvarelsen skal afleveres elektronisk. Se

Læs mere

Algorithms and Architectures I Rasmus Løvenstein Olsen (RLO), Jens Myrup Pedersen (JMP) Mm4: Sorting algorithms - October 23, 2009

Algorithms and Architectures I Rasmus Løvenstein Olsen (RLO), Jens Myrup Pedersen (JMP) Mm4: Sorting algorithms - October 23, 2009 Algorithms and Architectures I Rasmus Løvenstein Olsen (RLO), Jens Myrup Pedersen (JMP) Mm4: Sorting algorithms - October 3, 009 Algorithms and Architectures II. Introduction to analysis and design of

Læs mere

Mindste udspændende træ

Mindste udspændende træ Mindste udspændende træ Introduktion Repræsentation af vægtede grafer Egenskaber for mindste udspændende træer Prims algoritme Kruskals algoritme Philip Bille Mindste udspændende træ Introduktion Repræsentation

Læs mere

Prioritetskøer og hobe. Philip Bille

Prioritetskøer og hobe. Philip Bille Prioritetskøer og hobe Philip Bille Plan Prioritetskøer Træer Hobe Repræsentation Prioritetskøoperationer Konstruktion af hob Hobsortering Prioritetskøer Prioritetskø Vedligehold en dynamisk mængde S af

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af 3 sider anmarks Tekniske Universitet Skriftlig prøve, den 29. maj 203. ursusnavn: lgoritmer og datastrukturer ursus nr. 02326. jælpemidler: Skriftlige hjælpemidler. et er ikke tilladt at medbringe

Læs mere

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507)

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507) 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.)

Læs mere

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

Korteste veje i vægtede grafer. Længde af sti = sum af vægte af kanter på sti. Korteste veje Korteste veje i vægtede grafer Længde af sti = sum af vægte af kanter på sti. Korteste veje i vægtede grafer Længde af sti = sum af vægte af kanter på sti. δ(u, v) = længden af en korteste

Læs mere

Algorithms and Architectures II Jens Myrup Pedersen (JMP), Rasmus Løvenstein Olsen (RLO)

Algorithms and Architectures II Jens Myrup Pedersen (JMP), Rasmus Løvenstein Olsen (RLO) Algorithms and Architectures II Jens Myrup Pedersen (JMP), Rasmus Løvenstein Olsen (RLO) Mm3: Algorithm examples: Advanced backtracking, min-max, algorithms for task scheduling - February 23, 2009 Algorithms

Læs mere

Sommeren 2001, opgave 1

Sommeren 2001, opgave 1 Sommeren 2001, opgave 1 Vi antager at k 3, da det ellers er uklart hvordan trekanterne kan sættes sammen i en kreds. Vi ser nu at for hver trekant er der en knude i kredsen, og en spids. Derfor er n =

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af 2 sider Danmarks Tekniske Universitet Skriftlig prøve, den 23. maj 20. Kursusnavn: Algoritmer og datastrukturer I Kursus nr. 0205. Varighed: 4 timer Tilladte hjælpemidler: Alle skriftlige hjælpemidler.

Læs mere

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

Korteste veje i vægtede grafer. Længde af sti = sum af vægte af kanter på sti. Korteste veje Korteste veje i vægtede grafer Længde af sti = sum af vægte af kanter på sti. Korteste veje i vægtede grafer Længde af sti = sum af vægte af kanter på sti. δ(u, v) = længden af en korteste

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af sider Danmarks Tekniske Universitet Skriftlig prøve, den 3. maj 0. Kursusnavn: Algoritmer og datastrukturer I Kursus nr. 005. Varighed: timer Tilladte hjælpemidler: Alle skriftlige hjælpemidler.

Læs mere

Symmetrisk Traveling Salesman Problemet

Symmetrisk Traveling Salesman Problemet Symmetrisk Traveling Salesman Problemet Videregående Algoritmik, Blok 2 2008/2009, Projektopgave 2 Bjørn Petersen 9. december 2008 Dette er den anden af to projektopgaver på kurset Videregående Algoritmik,

Læs mere

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer Skriftlig Eksamen DM507 Algoritmer og Datastrukturer Institut for Matematik og Datalogi Syddansk Universitet, Odense Tirsdag den 24. juni 2014, kl. 10:00 14:00 Besvarelsen skal afleveres elektronisk. Se

Læs mere

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

Korteste veje i vægtede grafer. Længde af sti = sum af vægte af kanter på sti. Korteste veje Korteste veje i vægtede grafer Længde af sti = sum af vægte af kanter på sti. Korteste veje i vægtede grafer Længde af sti = sum af vægte af kanter på sti. δ(u, v) = længden af en korteste

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af 2 sider Danmarks Tekniske Universitet Skriftlig prøve, den 26. maj 2009. Kursusnavn Algoritmik og datastrukturer I Kursus nr. 0205. Tilladte hjælpemidler: Alle skriftlige hjælpemidler. Vægtning

Læs mere

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: (logn) 7 n 1/2 2 n /n 3 2logn n 2 /logn Eksamen august 0 Algoritmer og Datastrukturer (00-ordning) Side af sider Opgave (%) n er Ω(n)? n er O( n )? n er O(8logn)? + er O(n)? n er O(n / )? Opgave (%) Opskriv følgende funktioner efter stigende

Læs mere

P (n): rekursiv beregning af f n kræver f n beregninger af f 1. P (n) er sand for alle n 2.

P (n): rekursiv beregning af f n kræver f n beregninger af f 1. P (n) er sand for alle n 2. P (n): rekursiv beregning af f n kræver f n beregninger af f 1. P (n) er sand for alle n 2. Bevis ved stærk induktion. Basisskridt: P (2) er sand og P (3) er sand. Induktionsskridt: Lad k 2 og antag P

Læs mere

Geometrisk skæring. Afgørelse af om der findes skæringer blandt geometriske objekter Bestemmelse af alle skæringspunkter

Geometrisk skæring. Afgørelse af om der findes skæringer blandt geometriske objekter Bestemmelse af alle skæringspunkter Planfejning 1 Skæring 2 Geometrisk skæring Afgørelse af om der findes skæringer blandt geometriske objekter Bestemmelse af alle skæringspunkter Løsningsmetoder: Rå kraft Planfejning (eng. plane sweep)

Læs mere

Mm1: Introduction to analysis and design of algorithms - October 6, 2009

Mm1: Introduction to analysis and design of algorithms - October 6, 2009 Algorithms and Architectures I Rasmus Løvenstein Olsen (RLO), Jens Myrup Pedersen (JMP) Mm1: Introduction to analysis and design of algorithms - October 6, 2009 Algorithms and Architectures I 1. Introduction

Læs mere

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET STTUT FR DTG, RUS UVERSTET Science and Technology ESE ntal sider i opgavesættet (incl. forsiden): (elleve) Eksamensdag: Fredag den. juni 0, kl. 9.00-.00 Tilladte medbragte hjælpemidler: lle sædvanlige

Læs mere

Perspektiverende Datalogikursus

Perspektiverende Datalogikursus Perspektiverende Datalogikursus Uge 1 - Algoritmer og kompleksitet Gerth Stølting Brodal 27. august 2004 1 Indhold Mere om Eksempler på beregningsproblemer Algoritmer og deres analyse Korrekthed af algoritmer

Læs mere

Grafer og graf-gennemløb

Grafer og graf-gennemløb Grafer og graf-gennemløb Grafer En mængde V af knuder (vertices). En mængde E V V af kanter (edges). Dvs. ordnede par af knuder. Grafer En mængde V af knuder (vertices). En mængde E V V af kanter (edges).

Læs mere

Korteste veje. Introduktion Egenskaber for korteste veje Dijkstras algoritme Korteste veje på DAGs. Philip Bille

Korteste veje. Introduktion Egenskaber for korteste veje Dijkstras algoritme Korteste veje på DAGs. Philip Bille Korteste veje Introduktion Egenskaber for korteste veje Dijkstras algoritme Korteste veje på DAGs Philip Bille Korteste veje Introduktion Egenskaber for korteste veje Dijkstras algoritme Korteste veje

Læs mere

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 Antal sider i opgavesættet (incl. forsiden): 12 (tolv) Eksamensdag: Fredag den 13. august 2010, kl.

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af 2 sider anmarks Tekniske Universitet Skriftlig prøve, den 23. maj 20. Kursusnavn: lgoritmer og datastrukturer Kursus nr. 02326. Varighed: 4 timer Tilladte hjælpemidler: lle skriftlige hjælpemidler.

Læs mere

Eksamen i Diskret Matematik

Eksamen i Diskret Matematik Eksamen i Diskret Matematik Første Studieår ved Det Teknisk-Naturvidenskabelige Fakultet 10. juni, 2016. Kl. 9-13. Nærværende eksamenssæt består af 11 nummererede sider med ialt 16 opgaver. Alle opgaver

Læs mere

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET INSTITUT FOR DTLOGI, RHUS UNIVERSITET Science and Technology EKSMEN ntal sider i opgavesættet (incl. forsiden): (elleve) Eksamensdag: Mandag den. august 07, kl. 9.00-.00 Tilladte medbragte hjælpemidler:

Læs mere

.. if L(u) + w(u, v) < L(v) then.. begin... L(v) := L(u) + w(u, v)... F (v) := u.. end. med længde L(z)}

.. if L(u) + w(u, v) < L(v) then.. begin... L(v) := L(u) + w(u, v)... F (v) := u.. end. med længde L(z)} Procedure Dijkstra(G = (V, E): vægtet sh. graf,. a, z: punkter) { Det antages at w(e) > 0 for alle e E} For alle v V : L(v) := L(a) := 0, S := while z / S begin. u := punkt ikke i S, så L(u) er mindst

Læs mere

19 Hashtabeller. Noter. PS1 -- Hashtabeller. Hashing problemet. Hashfunktioner. Kollision. Søgning og indsættelse.

19 Hashtabeller. Noter. PS1 -- Hashtabeller. Hashing problemet. Hashfunktioner. Kollision. Søgning og indsættelse. 19 Hashtabeller. Hashing problemet. Hashfunktioner. Kollision. Søgning og indsættelse. Sammenligning af hashtabeller og søgetræer. 281 Hashing-problemet (1). Vi ønsker at afbilde n objekter på en tabel

Læs mere

Matematikken i kunstig intelligens Opgaver om koordinerende robotter

Matematikken i kunstig intelligens Opgaver om koordinerende robotter Matematikken i kunstig intelligens Opgaver om koordinerende robotter Thomas Bolander 2. juni 2018 Vejledning til opgaver Opgave 1 kan eventuelt springes over, hvis man har mindre tid. De resterende opgaver

Læs mere

Netværksalgoritmer 1

Netværksalgoritmer 1 Netværksalgoritmer 1 Netværksalgoritmer Netværksalgoritmer er algoritmer, der udføres på et netværk af computere Deres udførelse er distribueret Omfatter algoritmer for, hvorledes routere sender pakker

Læs mere

Matematikken i kunstig intelligens Opgaver om koordinerende robotter LØSNINGER

Matematikken i kunstig intelligens Opgaver om koordinerende robotter LØSNINGER Matematikken i kunstig intelligens Opgaver om koordinerende robotter LØSNINGER Thomas Bolander 25. april 2018 Vejledning til opgaver Opgave 1 kan eventuelt springes over, hvis man har mindre tid. De resterende

Læs mere

Spilstrategier. 1 Vindermængde og tabermængde

Spilstrategier. 1 Vindermængde og tabermængde Spilstrategier De spiltyper vi skal se på her, er primært spil af følgende type: Spil der spilles af to spillere A og B som skiftes til at trække, A starter, og hvis man ikke kan trække har man tabt. Der

Læs mere

Reeksamen i Diskret Matematik

Reeksamen i Diskret Matematik Reeksamen i Diskret Matematik Første Studieår ved Det Teknisk-Naturvidenskabelige Fakultet 21. august 2015 Nærværende eksamenssæt består af 10 nummererede sider med ialt 17 opgaver. Tilladte hjælpemidler:

Læs mere

Sortering ved fletning (merge-sort)

Sortering ved fletning (merge-sort) Sortering 1 Sortering ved fletning (merge-sort) 7 2 9 4 2 4 7 9 7 2 2 7 9 4 4 9 7 7 2 2 9 9 4 4 2 Del-og-hersk Del-og-hersk er et generelt paradigme til algoritmedesign Del: opdel input-data S i to disjunkte

Læs mere

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

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

Læs mere

DATALOGISK INSTITUT, AARHUS UNIVERSITET

DATALOGISK INSTITUT, AARHUS UNIVERSITET DATALOGISK INSTITUT, AARHUS UNIVERSITET Det Naturidenskabelige Fakultet EKSAMEN Grundkurser i Datalogi Antal sider i opgaesættet (incl. forsiden): 7 (sy) Eksamensdag: Mandag den 20. juni 2005, kl. 9.00-13.00

Læs mere

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

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

Læs mere

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET NSTTUT OR TO, RUS UNVRSTT Science and Technology SN lgoritmer og atastrukturer (00-ordning) ntal sider i opgavesættet (incl. forsiden): 11 (elleve) ksamensdag: redag den 1. august 015, kl. 9.00-.00 Tilladte

Læs mere

Vægtede grafer. I en vægtet graf har enhver kant tilknyttet en numerisk værdi, kaldet kantens vægt

Vægtede grafer. I en vægtet graf har enhver kant tilknyttet en numerisk værdi, kaldet kantens vægt Korteste veje 1 Vægtede grafer HNL I en vægtet graf har enhver kant tilknyttet en numerisk værdi, kaldet kantens vægt Vægte kan repræsentere afstande, omkostninger, o.s.v. Eksempel: I en flyrutegraf repræsenterer

Læs mere

DATALOGISK INSTITUT, AARHUS UNIVERSITET

DATALOGISK INSTITUT, AARHUS UNIVERSITET DATALOGISK INSTITUT, AARHUS UNIVERSITET Det Naturvidenskabelige Fakultet EKSAMEN Grundkurser i Datalogi Antal sider i opgavesættet (incl. forsiden): 6 (seks) Eksamensdag: Fredag den 24. juni 2011, kl.

Læs mere

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET INSTITUT FOR DTLOGI, RHUS UNIVERSITET Science and Technology EKSEN lgoritmer og Datastrukturer (00-ordning) ntal sider i opgavesættet (incl. forsiden): 11 (elleve) Eksamensdag: Torsdag den 1. juni 01,

Læs mere

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

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

Læs mere

DM507 - Algoritmer og datastrukturer

DM507 - Algoritmer og datastrukturer - Algoritmer og datastrukturer Køretid g(n) Udtryk Beskrivelse lim n f(n) o(f) Vokser langsommere end f = 0 O(f) Vokser højst så hurtigt som f < Θ(f) Vokser som f = c(c > 0) Ω(f) Vokser mindst så hurtigt

Læs mere

Skriftlig Eksamen Kombinatorik, sandsynlighed og randomiserede algoritmer (DM528)

Skriftlig Eksamen Kombinatorik, sandsynlighed og randomiserede algoritmer (DM528) Skriftlig Eksamen Kombinatorik, sandsynlighed og randomiserede algoritmer (DM58) Institut for Matematik & Datalogi Syddansk Universitet Torsdag den 7 Januar 010, kl. 9 13 Alle sædvanlige hjælpemidler (lærebøger,

Læs mere

Divide-and-Conquer algoritmer

Divide-and-Conquer algoritmer Divide-and-Conquer algoritmer Divide-and-Conquer algoritmer Det samme som rekursive algoritmer. Divide-and-Conquer algoritmer Det samme som rekursive algoritmer. 1. Opdel problem i mindre delproblemer

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet Eksamen 005, F09 side af sider Danmarks Tekniske Universitet Skriftlig prøve, den 6. maj 009. Kursusnavn Algoritmik og datastrukturer I Kursus nr. 005. Tilladte hjælpemidler: Alle skriftlige hjælpemidler.

Læs mere

Perspektiverende Datalogikursus

Perspektiverende Datalogikursus Perspektiverende Datalogikursus Uge 1 - Algoritmer og kompleksitet Gerth Stølting Brodal 2. september 2005 1 Afleveringsopgaver... /\.. // \\ / \ / [] \ \\_// / \ / \ []._. ---------------- _ 2 Øvelse

Læs mere

DATALOGISK INSTITUT, AARHUS UNIVERSITET

DATALOGISK INSTITUT, AARHUS UNIVERSITET DATALOGISK INSTITUT, AARHUS UNIVERSITET Det Naturvidenskabelige Fakultet EKSAMEN Grundkurser i Datalogi Antal sider i opgavesættet (incl. forsiden): 6 (seks) Eksamensdag: Mandag den 11. august 008, kl.

Læs mere

Hamilton-veje og kredse:

Hamilton-veje og kredse: Hamilton-veje og kredse: Definition: En sti x 1, x 2,...,x n i en simpel graf G = (V, E) kaldes en hamiltonvej hvis V = n og x i x j for 1 i < j n. En kreds x 1, x 2,...,x n, x 1 i G kaldes en hamiltonkreds

Læs mere

Algoritmisk geometri

Algoritmisk geometri Algoritmisk geometri 1 Intervalsøgning 2 Motivation for intervaltræer Lad der være givet en database over ansatte i en virksomhed Ansat Alder Løn Ansættelsesdato post i databasen Antag, at vi ønsker at

Læs mere

Korteste veje. Introduktion Egenskaber for korteste veje Dijkstras algoritme Korteste veje på DAGs. Philip Bille

Korteste veje. Introduktion Egenskaber for korteste veje Dijkstras algoritme Korteste veje på DAGs. Philip Bille Korteste veje Introduktion Egenskaber for korteste veje Dijkstras algoritme Korteste veje på DAGs Philip Bille Korteste veje Introduktion Egenskaber for korteste veje Dijkstras algoritme Korteste veje

Læs mere

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

Skriftlig Eksamen Algoritmer og Datastrukturer (dads) Skriftlig Eksamen Algoritmer og Datastrukturer (dads) Datalogisk Institut Aarhus Universitet Onsdag den. august 200, kl. 9.00.00 Opgave (25%) Lad A = A[] A[n] være et array af heltal. Længden af det længste

Læs mere

DATALOGISK INSTITUT, AARHUS UNIVERSITET

DATALOGISK INSTITUT, AARHUS UNIVERSITET DATALOGISK INSTITUT, AARHUS UNIVERSITET Det Naturvidenskabelige Fakultet EKSAMEN Grundkurser i Datalogi Antal sider i opgavesættet (incl. forsiden): 6 (seks) Eksamensdag: Fredag den 0. august 00, kl. 9.00-.00

Læs mere

Divide-and-Conquer algoritmer

Divide-and-Conquer algoritmer Divide-and-Conquer algoritmer Divide-and-Conquer algoritmer Det samme som rekursive algoritmer. Divide-and-Conquer algoritmer Det samme som rekursive algoritmer. 1. Opdel problem i mindre delproblemer

Læs mere

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.

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. Eksamen august Algoritmer og Datastrukturer (-ordning) Side af sider Opgave (%) n + n er O(n )? n / er O(n / )? n er O(n log n)? n er O((log n) )? n er Ω(n )? Ja Nej Opgave (%) Opskriv følgende funktioner

Læs mere

Algoritmer og invarianter

Algoritmer og invarianter Algoritmer og invarianter Iterative algoritmer Algoritmen er overordnet set een eller flere while eller for-løkker. Iterative algoritmer Algoritmen er overordnet set een eller flere while eller for-løkker.

Læs mere

Spilstrategier. Indhold. Georg Mohr-Konkurrencen. 1 Vindermængde og tabermængde 2. 2 Kopier modpartens træk 4

Spilstrategier. Indhold. Georg Mohr-Konkurrencen. 1 Vindermængde og tabermængde 2. 2 Kopier modpartens træk 4 Indhold 1 Vindermængde og tabermængde 2 2 Kopier modpartens træk 4 3 Udnyt modpartens træk 5 4 Strategityveri 6 5 Løsningsskitser 7 Spilstrategier De spiltyper vi skal se på her, er primært spil af følgende

Læs mere

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

Prioritetskøer. Prioritetskøer. Prioritetskøer. Prioritetskøer Philip Bille (priority-queues). Vedligehold en dynamisk mængde S af elementer. Hver element x er tilknyttet en nøgle x.key og satellitdata x.data. MAX(): returner element med største nøgle. EXTRACTMAX():

Læs mere

Oplæg og øvelser, herunder frugt og vand Gerth Stølting Brodal

Oplæg og øvelser, herunder frugt og vand Gerth Stølting Brodal Oplæg og øvelser, herunder frugt og vand Gerth Stølting Brodal Datalogisk Institut Aarhus Universitet MasterClass Matematik, Mærsk Mc-Kinney Møller Videncenter, Sorø, 29-31. oktober 2009 Algoritmer: Matricer

Læs mere

DATALOGISK INSTITUT, AARHUS UNIVERSITET

DATALOGISK INSTITUT, AARHUS UNIVERSITET DTLOS NSTTUT, RUS UNVERSTET Det Naturvidenskabelige akultet ESMEN rundkurser i Datalogi ntal sider i opgavesættet (incl. forsiden): 7 (syv) Eksamensdag: Torsdag den 14. juni 007, kl. 9.00-1.00 Eksamenslokale:

Læs mere