Algorithms and Architectures I Rasmus Løvenstein Olsen (RLO) Mm2: Rekursive algoritmer og rekurrens - October 12, 2010
|
|
- Bjørn Laursen
- 7 år siden
- Visninger:
Transkript
1 Algorithms and Architectures I Rasmus Løvenstein Olsen (RLO) Mm2: Rekursive algoritmer og rekurrens - October 12,
2 Algorithms and Architectures II 1. Introduction to analysis and design of algorithms (RLO - 11/10) 2. Recursive algorithms and recurrences (RLO - 12/10) 3. Implementation of recursive algorithms (Self study - 25/10) 4. Greedy algorithms, backtracking and recurrences (Self study - 26/10) 5. Sorting algorithms (RLO - 1/11) 6. Implementation of sorting algorithms (Self study - 2/11) 7. Counting, probabilities and randomized algorithms (RLO - 8/11) 8. Hash tables and Hashing (RLO - 10/11) 9. Binary search trees, red-black trees and string matching (RLO - 15/11) 10. Course round-up (RLO - 16/11) 2
3 Dagsorden Introduktion til rekursion og rekursive algoritmer Divide and conquer taktikken Eksempler på rekursive algoritmer Merge sort algoritmen Fibonaccis tal Hanois tårne Factoriale tal. Substitutionsmetoden Generelt om rekursive algoritmer Opsummering og konklusion Opgaver 3
4 Hanois tårne Du må kun flytte en ring ad gangen På hver eneste pind må der aldrig være en større ring på en mindre Spørgsmål: Hvordan ser algoritmen ud? Hvor lang tid tager det? 4
5 Algoritme til løsning af Hanois tårne Hvis n>1 så benyt denne procedure til at flytte n-1 skiver fra A til B Flyt største skive, n fra A til C. Hvis n>1 så benyt denne procedure til at flytte n-1 skiver fra B til C A B C NB: Angivelserne A, B, C er ikke faste angivelser 5
6 Fibonacci tal Fibonacci s tal først beskrevet af Leonardo da Pisa Tal udviklingen er beskrevet således at F = 1, F = F n = Fn + F 2; n 1 n 3 6
7 Merge-sort algoritmen Baserer sig på merge algoritmen vi så på sidste gang Men lad os lige genopfriske hvordan den så ud før vi ser på hvordan vi kan sortere med den vha. rekursivitet 7
8 Merge algoritmen grafisk representation L R L R L R L R 8
9 Merge algoritmen Merge(A, p, q, r) 1 n1 = q-p+1 10 i=1 2 n2 = r-q 11 j=1 3 Make arrays L[1..n1+1], R[1..n2+1] 12 for k = p to r 4 for i = 1 to n1 13 do if L[i] R[j] 5 do L[i] = A[p+i-1] 14 then A[k] = L[i] 6 for j = 1 to n2 15 i = i+1 7 do R[j] = A[q+j] 16 else 8 L[n1+1] = Inf 17 j=j+1 9 R[n2+1] = Inf Θ(1) Θ(n) Θ(n) Θ(1) Θ(1) Θ(n) T(n) = Θ(1) + Θ(n) + Θ(n) + Θ(1) + Θ(1) + Θ(n) = Θ(n) 9
10 Merge-sort algoritmen grafisk representation Merge-sort Merge-sort Merge-sort Talrække (input) 10
11 Merge-sort Merge-sort(A,p,r) Cost Tid 1 if p<r c 1 Θ(1) 2 then q=(p+r)/2 c 2 Θ(1) 3 Merge-Sort(A,p,q) c 3 T(n/2) 4 Merge-Sort(A,q+1,r) c 4 T(n/2) 5 Merge(A,p,q,r) c 5 Θ(n) p = start af array r = slut af array 11
12 Kompleksitet af merge sort algoritmen Tidskompleksiteten bliver følgelig T ( n) Θ(1) = 2T ( n / 2) + Θ( n) ; n ; n = 1 > 1 Kan også skrives som Men hvorfor det sidste? T ( n) = Θ( n log2( n)) 12
13 Rekurens træ cn cn cn/2 cn/2 cn cn/4 cn/4 cn/4 cn/4 cn Log 2 (n) c c c c c c c c n cn Husk at vi her antager at opgaverne kommer som n = 2 k 13
14 Dagsorden Introduktion til rekursion og rekursive algoritmer Divide and conquer taktikken Eksempler på rekursive algoritmer Merge sort algoritmen Fibonaccis tal Hanois tårne Factoriale tal. Substitutionsmetoden Generelt om rekursive algoritmer Opsummering og konklusion Opgaver 14
15 Substitutions metoden Kan kun anvendes på simplere algoritmer hvor vi er i stand til at gætte en løsning, eller løsningsstruktur Metoden baserer sig på at udnytte gættet til at vise løsningen Metoden består af to trin 1. Gæt en form af løsningen 2. Brug af matematisk induktion til at finde konstanter og vis at løsningen virker 15
16 Eksempel med gætte metoden Bestem øvre eller nedre grænse for en rekurrent algoritme med kompleksitet Et gæt vil være T(n) = O(nlog 2 (n)) Metoden går nu ud på at bevise T(n) cnlog 2 (n) Men er det nu alt? T ( n) = 2T ( n / 2) + n 16
17 Nogle potentielle problemer. Ved induktiv bevisførelse skal vi nu vise løsningen holder Først finder vi et startspunkt, f.eks. n 0 = 1 Med T(1) =1 som den grænsende funktion får vi T(n=1) cnlog 2 (n) = clog 2 (1) = 0 Men 1 0!!! Så n 0 = 1 er ikke en god basis for bevis Men hvis vi vælger et n n 0 > 1, f.eks. n = 2 og n = 3 Dermed får vi følgende krav til konstanten c T(2) = 4 2cLog 2 (2) T(3) = 5 3cLog 2 (3) Dvs. at c 2 17
18 Alternative gæt Hvad nu hvis vi har noget der ligner noget vi kender.? T ( n) = 2T ( n / 2 + k) + n Konklusion: Hvis vi kan omformulere et problem til noget vi kender, kan vi også nemmere sige noget om dets kompleksitet 18
19 Et andet eksempel Eksempel Et gæt kunne være løsning O(n) Så vi prøver at vise T(n) cn med et passende valg af c Konklusion: Med passende valg af funktion og konstanter kan vi vise at T(n) cn - b, istedet for og vi er alle glade Eller hvad?... T( n) = T( n/ 2) + T( n/ 2)
20 Vær opmærksom på algoritmen Antag vores tidligere kompleksitet T ( n) = 2T ( n / 2) + n Hvad nu hvis vi gætter at T(n) cn, dvs. T(n) = O(n)? Konklusion: Vær opmærksom på hvad i ved om algoritmen. Vi kan ikke bare snyde os til en simplere algoritme. (men vi kan godt snyde os selv ) 20
21 Ændring af variable I nogle tilfælde ligner funktionen ikke helt, men alligevel lidt.. F.eks. T ( n) = 2T ( n) + log 2( n) Kan der gøres noget ved den så den ligner endnu mere? Prøv m = log 2 (n), og se bort fra afrundingsfunktionen T (2 Hvis vi nu siger at S(m) = T(2 m ), så får vi noget vi kender m m / 2 ) = 2T (2 ) + m S ( m) = 2T ( m / 2) + m Endelig kan vi også transformere kompleksiteten, således at T ( n) = T (2 m ) = O(Log = S( m) 2 ( n)log = O( mlog 2 (Log 2 2 ( n))) ( m)) 21
22 Dagsorden Introduktion til rekursion og rekursive algoritmer Divide and conquer taktikken Eksempler på rekursive algoritmer Merge sort algoritmen Fibonaccis tal Hanois tårne Factoriale tal. Substitutionsmetoden Generelt om rekursive algoritmer Opsummering og konklusion Opgaver 22
23 Ekspandering af rekurrens Vi starter igen med følgende kompleksitet Efter induktion kan vi nu se at T ( n) 2T ( n / 2) + c2n i i T ( n) 2 T ( n / 2 ) + ic Antag at n sker i 2 potens, såsom 2 k, dvs. n = 2 k k = Log 2 (n), så kan kompleksiteten også skrives som k T ( n) 2 T (1) + kc = c 2 n 2 n, T (1) T ( n) c1n + c2nlog2( n) 1 23
24 24 Mere generelt om den type kompleksitet Den generelle forskrift for kompleksiteten Antag at n = b k, dvs. n forekommer i potenser af k med base b Kan derfor også udskrives som en sum Note: For merge-sort algoritmen er a = b = 2, og d(n) = cn ) ( ) / ( ) ( 1 (1) n d b n at n T T + = = = + = 1 0 ) ( ) ( k j j k j k b d a a n T
25 Homogene og partikulære løsninger Homogene løsning Homogene løsning T ( n) = a k k 1 j= 0 k j Udtrykker prisen for at løse et delproblem Eksakt løsning når d(n)=0 for alle n Partikulære løsning Udtrykker prisen for at danne og kombinere delproblemerne Hvis homogene løsning er større end partikulære løsning, så vokser kompleksiteten i samme grad som den homogene løsning Hvis den partikulære løsning vokser med mere end n ε for ε>0, så vokser den partikulære løsning med graden af d(n) Hvis d(n) vokser med samme hastighed som den homogene løsning, eller med maksimalt log k (n), så vokser den partikulære løsning med log(n) x d(n) + a j d( b Partikulære løsning ) 25
26 Nogle flere gode råd som konsekvens Hvis den homogene løsning er størst vil en hurtigere måde at kombinere delproblemerne praktisk taget ingen effekt have. Derfor bør man således finde en måde at dele problemet i endnu mindre problemer, der hurtigere kan løses Hvis den partikulære løsning er størst vil en formindskelse i kompleksiteten af at splitte og/eller kombinere delproblemer have størst effekt. For eksempel vil en reducering i kompleksitet af den del af algoritmen der opdeler arrayet A i merge-sort til en nær lineær funktion, f.eks. d(n)=cn 0.9, helt sikkert reducere den samlede kompleksitet. NB: Der gemmer sig nok en nobel pris eller lignende til den der kan opdage en merge algoritme med en sådan kompleksitet!! 26
27 Kogebog for multiplikative funktioner En funktion er benævnt multiplikativ hvis f(xy) = f(x)f(y) T (1) = 1 T ( n) = at ( n / b) + d( n) Overvej k a d( b) a 1 d( b) k 1 j k j a d( b ) = j= 0 1. a > d(b): giver at den partikulære og homogene løsning er ens, fordi (1) bliver O(a k ) ~ O(n logb(a) ). I det tilfælde afhænger kompleksiteten mest af hvorledes problemet bliver opdelt, og ikke så meget af løsningen. 2. a = d(b): bliver udtrykket O(n Logb(d(b)) Log b (n)) og i tilfældet med d(n)=n α, bliver det til O(n α Log b (n)) 3. a < d(b): giver at den partikulære løsning dominerer, og dermed O(d(b) k ) ~ O(n logb(d(b)) ). I det tilfælde give det mening at se på at minimere d(n) og/eller a og b. Et specialtilfælde hvor d(n)=n α, giver en løsning O(n α ) eller O(d(n)) k (1) 27
28 Nogle eksempler #1 Sammenlign de følgende kompleksiteter, med T(1)=1 1. T(n) = 4T(n/2) + n 2. T(n) = 4T(n/2) + n 2 3. T(n) = 4T(n/2) + n 3 T (1) = 1 T ( n) = at ( n / b) + d( n) I alle tre tilfælde gælder følgende: a = 4 b = 2 Den homogene løsning er n 2 pga. antagelsen om n = b k k = log b (n) gør at a k = a logb(n) = n logb(a) Log 2 (4) = 2 giver et n 2 28
29 Nogle eksempler #2 For 1) T(n) = 4T(n/2) + n: d(n) = n betyder at d(b=2) = 2 Fordi a = 4 > d(b=2), er løsningen n 2, dvs. T(n) er O(n 2 ) For 2) T(n) = 4T(n/2) + n 2 : d(n) = n 2, hvilket betyder at d(b=2) = 4 Fordi a = 4 = d(b=2), er løsningen n Logb(d(b)) Log b (n)=n 2 Log 2 (n) For 3) T(n)= 4T(n/2) + n 3 : d(n) = n 3, hvilket betyder at d(b=2) = 8 Fordi a = 4 < d(b=2), er løsningen af O(n Logb(d(b)) ) = O(n 3 ) 29
30 Andre funktioner Eksempel T(1) = 1 T(n) = 3T(n/2)+2n 1.5 2n 1.5 er ikke multiplikativ, men n 1.5 er! Prøv derfor med U(n) = T(n)/2 for alle n U(1) = ½ U(n) = 3U(n/2)+n 1.5 Hvis U(1) var 1, ville løsningen være n log2(3) <n 1.59 Vi kan nu vise at U(1) = ½ er mindre end n 1.59 /2, dermed O(n 1.59 ) Fordi d(b) = b 1.5 = 2.83 < a er løsningen O(a k ) = O(n 1.59 ) (a k = n Logb(a) ) 30
31 Et andet eksempel Betragt T(1) = 1 T(n) = 2T(n/2) + nlog b (n) Homogen løsning er n, fordi a = b = 2 Problemet er d(n) = nlog b (n), derfor skal den partikulære løsning beregnes manuelt k 1 j= 0 a j d( b k j ) = = k 1 j= 0 2 k( k + 1) log(2 Løsningen er således at den partikulære er O(nLog 2 (n)), der er større end den homogene løsning, hvilket medfører at T(n) = O(nLog 2 (n)) 2 k 1 j 2 k j k j ) 31
32 Dagsorden Introduktion til rekursion og rekursive algoritmer Divide and conquer taktikken Eksempler på rekursive algoritmer Merge sort algoritmen Fibonaccis tal Hanois tårne Factoriale tal. Substitutionsmetoden Generelt om rekursive algoritmer Opsummering og konklusion Opgaver 32
33 Opsummering og konklusion på forelæsning Rekursive algoritmer bruges i forskellige situationer hvor samme principielle problem kan løses igen og igen Hanois tårne Fibonacci tal Merge-sort algoritme Vi så på kompleksiten af rekursive algoritmer af typen Θ(1) T ( n) = 2T ( n / 2) + Θ( n) ; n ; n = 1 > 1 Løsninger af denne type, baseret på Substitution med gæt Ændring af variable til noget der ligner tidligere Generel omskrivning og analyse af rekursive algoritmer Homogene og partikulære løsninger Omskrivninger til standard model 33
34 Og endnu en at gå hjem på 34
35 Dagsorden Introduktion til rekursion og rekursive algoritmer Divide and conquer taktikken Eksempler på rekursive algoritmer Merge sort algoritmen Fibonaccis tal Hanois tårne Factoriale tal. Substitutionsmetoden Generelt om rekursive algoritmer Opsummering og konklusion Opgaver 35
36 Opgaver Opgaver fra Cormen (2nd edition) Opgave 4.1-1, 4.1-2, Opgaver fra Comen (3rd edition) Opgave 4.3-2, 4.3-3, Opgaver fra Aho, Hopcroft og Ullman Opgave 9.1, 9.2, 9.3,
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 mereAlgorithms 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 mereAlgorithms 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 mereMm7: 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 mereMm6: 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 mereMm1: 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 mereAlgorithms & 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 mereDivide-and-Conquer algoritmer
Divide-and-Conquer algoritmer Divide-and-Conquer algoritmer Det samme som rekursive algoritmer. 1. Opdel problem i mindre delproblemer (af samme type). 2. Løs delproblemerne ved rekursion (dvs. kald algoritmen
Læs mereAlgorithms 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 mereMm8: 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 mereAlgorithms 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 mereMm4: Greedy algorithms, backtracking and more recurrences - October 21, 2008
Algorithms and Architectures I Rasmus Løvenstein lsen (RL), Jimmy Jessen Nielsen (JJE) Mm4: Greedy algorithms, backtracking and more recurrences - ctober 21, 2008 Algorithms and Architectures II 1. Introduction
Læs mereDynamisk 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 mereDivide-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 mereDynamisk 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 mereDivide-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 mere28 Algoritmedesign. Noter. PS1 -- Algoritmedesign
28 Algoritmedesign. Algoritmeskabelon for Del og Hersk. Eksempler på Del og Hersk algoritmer. Binær søgning i et ordnet array. Sortering ved fletning og Quicksort. Maksimal delsums problem. Tætteste par
Læs mereSøgning og Sortering. Søgning Linæer søgning Binær søgning Sortering Indsættelsessortering Flettesortering. Philip Bille
Søgning og Sortering Søgning Linæer søgning Binær søgning Sortering Indsættelsessortering Flettesortering Philip Bille Søgning og Sortering Søgning Linæer søgning Binær søgning Sortering Indsættelsessortering
Læs mereMm1: 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 mereRekursion og dynamisk programmering
Rekursion og dynamisk programmering Datastrukturer & Algoritmer, Dat C Forelæsning 12/10-2004 Henning Christiansen Rekursion: at en procedure kalder sig selv eller et antal metoder kalder hinanden gensidigt.
Læs mereDanmarks 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 mereDynamisk 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 mereDanmarks 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 mereDanmarks 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 mereDM02 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 mereSøgning og Sortering. Søgning og Sortering. Søgning. Linæer søgning
Søgning og Sortering Søgning og Sortering Philip Bille Søgning. Givet en sorteret tabel A og et tal x, afgør om der findes indgang i, så A[i] = x. Sorteret tabel. En tabel A[0..n-1] er sorteret hvis A[0]
Læs mereDanmarks 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 mereSøgning og Sortering. Philip Bille
Søgning og Sortering Philip Bille Plan Søgning Linæer søgning Binær søgning Sortering Indsættelsesortering Flettesortering Søgning Søgning 1 4 7 12 16 18 25 28 31 33 36 42 45 47 50 1 2 3 4 5 6 7 8 9 10
Læs mereAlgoritmer 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 mereDanmarks 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 mereAlgoritmisk 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 mereOpskriv følgende funktioner efter stigende orden med hensyn til O-notationen: (logn) 2 2 n 1/n (logn) n. n 2
Side af sider Opgave (%) Ja Nej n er O(n n)? n er O(n+n )? ( n ) er O( n )? logn er O(n / )? n +n er O(n)? Opgave (%) Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: (logn)
Læs mereBRP Sortering og søgning. Hægtede lister
BRP 18.10.2006 Sortering og søgning. Hægtede lister 1. Opgaver 2. Selection sort (udvælgelsessortering) 3. Kompleksitetsanalyse 4. Merge sort (flettesortering) 5. Binær søgning 6. Hægtede lister 7. Øvelser:
Læs mereDanmarks 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 mereDanmarks 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 mereMålet for disse slides er at beskrive nogle algoritmer og datastrukturer relateret til at gemme og hente data effektivt.
Merging og hashing Mål Målet for disse slides er at beskrive nogle algoritmer og datastrukturer relateret til at gemme og hente data effektivt. Dette emne er et uddrag af kurset DM507 Algoritmer og datastrukturer
Læs mereMm5: 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 mereOpskriv følgende funktioner efter stigende orden med hensyn til O-notationen: n+logn logn (logn) 7 (3/2) n
Side af sider Opgave (%) Ja Nej n er O( n )? n er O(log n)? n er O(n )? n + er O(0n)? nlogn er O(n / )? Opgave (%) Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: nlogn logn
Læs mereDanmarks 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 mereSortering. Sortering ved fletning (merge-sort) Del-og-hersk. Merge-sort
Sortering 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 1 2 Del-og-hersk Merge-sort Del-og-hersk er et generelt paradigme til algoritmedesign Del: opdel input-data
Læs mereDanmarks 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 mereIntervalsøgning. Algoritmisk geometri. Motivation for intervaltræer. Intervalsøgning. Lad der være givet en database over ansatte i en virksomhed
Algoritmisk geometri Intervalsøgning 1 2 Motivation for intervaltræer Intervalsøgning Lad der være givet en database over ansatte i en virksomhed Ansat Alder Løn Ansættelsesdato post i databasen Vi kan
Læs mere02105 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 mereMålet for disse slides er at diskutere nogle metoder til at gemme og hente data effektivt.
Merging og hashing Mål Målet for disse slides er at diskutere nogle metoder til at gemme og hente data effektivt. Dette emne er et uddrag af kurset DM507 Algoritmer og datastrukturer (2. semester). Mål
Læs mereAlgoritmedesign med internetanvendelser ved Keld Helsgaun
Algoritmedesign med internetanvendelser ved Keld Helsgaun 1 Analyse af algoritmer Input Algoritme Output En algoritme er en trinvis metode til løsning af et problem i endelig tid 2 Algoritmebegrebet D.
Læs mereMartin Olsen. DM507 Projekt Del I. 19. marts 2012 FOTO: Colourbox
Martin Olsen DM0 Projekt 0 Del I. marts 0 FOTO: Colourbox Indhold Indledning... Opgave... Opgave... Opgave... Opgave... Opgave... Opgave... Opgave... Kildekode til SimpleInv.java... Kildekode til MergeSort.java...
Læs mereOpskriv 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 mereDivide-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 mereSortering 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 mereAnalyse af algoritmer
Analyse af algoritmer Analyse af algoritmer Køretid Pladsforbrug Asymptotisk notation O, Θ og Ω-notation. Eksperimentiel analyse af algoritmer Philip Bille Analyse af algoritmer Analyse af algoritmer Køretid
Læs mereTilgang til data. To udbredte metoder for at tilgå data: Sekventiel tilgang Random access: tilgang via ID (key, nøgle) for dataelementer.
Merging og Hashing Tilgang til data To udbredte metoder for at tilgå data: Sekventiel tilgang Random access: tilgang via ID (key, nøgle) for dataelementer. API for sekventiel tilgang (API = Application
Læs mereTilgang til data. To udbredte metoder for at tilgå data: Sekventiel tilgang Random access: tilgang via ID (også kaldet key, nøgle) for dataelementer.
Merging og Hashing Tilgang til data To udbredte metoder for at tilgå data: Sekventiel tilgang Random access: tilgang via ID (også kaldet key, nøgle) for dataelementer. API for sekventiel tilgang (API =
Læs mereDanmarks 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 mereIntroduktion til DM507
Introduktion til DM507 Rolf Fagerberg Forår 2017 1 / 20 Hvem er vi? Underviser: Rolf Fagerberg, IMADA Forskningsområde: algoritmer og datastrukturer 2 / 20 Hvem er vi? Underviser: Rolf Fagerberg, IMADA
Læs mereDM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Introduktion til kurset Rolf Fagerberg Forår 2019 1 / 20 Hvem er vi? Underviser: Rolf Fagerberg, Institut for Matematik og Datalogi (IMADA) Forskningsområde: algoritmer
Læs mereRolf Fagerberg. Forår 2015
Forår 2015 Dagens program 1 2 3 4 5 Underviser:, IMADA Forskningsområde: algoritmer og datastrukturer Deltagere: BA i Datalogi BA i Software Engineering BA i Matematik-Økonomi BA i Anvendt Matematik BA
Læs mere6. december. Motivation. Internettet: Login til DIKU (med password) Handel med dankort Fortrolig besked Digital signatur
6. december Talteoretiske algoritmer, RSA kryptosystemet, Primtalstest Motivation Definitioner Euclids algoritme Udvidet Euclid RSA kryptosystemet Randominserede algoritmer Rabin-Miller primtalstest Svært
Læs mereRolf Fagerberg. Forår 2015
Forår 2015 Dagens program 1 2 3 4 5 Underviser:, IMADA Forskningsområde: algoritmer og datastrukturer Underviser:, IMADA Forskningsområde: algoritmer og datastrukturer Deltagere: BA i Datalogi BA i Software
Læs mereSidste gang Motivation Definitioner Approximations-algoritme for knudeoverdækning Approximations-algoritme for TSP med trekantsulighed
Approximations-algoritmer Sidste gang Motivation Definitioner Approximations-algoritme for knudeoverdækning Approximations-algoritme for TSP med trekantsulighed Negativt resultat om generel TSP Approximations-algoritme
Læs mereINSTITUT FOR DATALOGI, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi
INSTITUT FOR DATALOGI, AARHUS UNIVERSITET Det Naturvidenskabelige Fakultet EKSAMEN Grundkurser i Datalogi Antal sider i opgavesættet (incl. forsiden): 12 (tolv) Eksamensdag: Torsdag den 21. marts 2013,
Læs mereGrå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 mereSortering i lineær tid
Sortering i lineær tid Nedre grænse for sammenligningsbaseret sortering Nedre grænser kræver en præcis beregningsmodel. Nedre grænse for sammenligningsbaseret sortering Nedre grænser kræver en præcis beregningsmodel.
Læs mereRolf Fagerberg. Forår 2014
Forår 2014 Mål for i dag Dagens program: 1 2 3 4 5 6 Forudsætninger: Format: Programmering og Diskret matematik I (forelæsninger), TE (øvelser), S (arbejde selv og i studiegrupper) Eksamenform: Skriftlig
Læs mereAlgoritmer 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 mereOpgave 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 )?
Eksamen juni Algoritmer og Datastrukturer (-ordning) Side af sider Opgave (%) I det følgende angiver log n -tals-logaritmen af n. n+n er O(n)? n 6 er O(n )? nlogn er O(n /logn)? n er O(n )? n er O(n )?
Læs mereOpskriv følgende funktioner efter stigende orden med hensyn til O-notationen: (logn) 5. 5n 2 5 logn. 2 logn
Eksamen august 0 Algoritmer og Datastrukturer (00-ordning) Side af sider Opgave (%) n +n er O(n )? Ja Nej n er O(n )? n+n er O(n. )? n+n er O(8n)? n logn er O(n )? Opgave (%) Opskriv følgende funktioner
Læs mereSortering af information er en fundamental og central opgave.
Sortering 1 / 36 Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden 6, 2, 9, 4, 5, 1, 4, 3 1, 2, 3, 4, 4, 5, 6, 9 Mange opgaver er hurtigere i sorteret information (tænk på ordbøger, telefonbøger,
Læs mereMODUL 8. Differensligninger. Forfattere: Michael ELMEGÅRD & Øistein WIND-WILLASSEN. Modulet er baseret på noter af Peter BEELEN.
MODUL 8 Differensligninger Forfattere: Michael ELMEGÅRD & Øistein WIND-WILLASSEN Modulet er baseret på noter af Peter BEELEN. 26. august 2014 2 Indhold 1 Introduktion 5 1.1 Rekursioner og differensligninger.........................
Læs mereDM507 - 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 mereAlgoritmeanalyse. Ø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 mereGrå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 mere22 Hobe. Noter. PS1 -- Hobe. Binære hobe. Minimum-hob og maximum-hob. Den abstrakte datatype minimum-hob. Opbygning af hobe. Operationen siv-ned.
22 Hobe. Binære hobe. Minimum-hob og maximum-hob. Den abstrakte datatype minimum-hob. Opbygning af hobe. Operationen siv-ned. Indsættelse i hobe. Sletning af minimalt element i hobe. Repræsentation. 327
Læs mereRolf Fagerberg. Forår 2012
Forår 2012 Mål for i dag Dagens program: 1 2 3 4 5 6 Forudsætninger: DM502 og DM503 Timer: 50% forelæsninger, 50% øvelser Forudsætninger: DM502 og DM503 Eksamenform: Skriftlig eksamen: Timer: 50% forelæsninger,
Læs mereRolf Fagerberg. Forår 2013
Forår 2013 Mål for i dag Dagens program: 1 2 3 4 5 6 Forudsætninger: DM536 og DM537 Timer: 50% forelæsninger, 50% øvelser Forudsætninger: DM536 og DM537 Eksamenform: Skriftlig eksamen: Timer: 50% forelæsninger,
Læs mereNetvæ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 mereOpskriv følgende funktioner efter stigende orden med hensyn til O-notationen: 7 n 1/ log n. (log n) 4
Eksamen august 00 Algoritmer og Datastrukturer (00-ordning) Side af sider Opgave (%) n er O(n )? n(log n) er O(n )? n n + (log n) er O(n )? n er O(n )? n er Ω( n )? Opgave (%) Opskriv følgende funktioner
Læs mereIntroduktion. Algoritmer og datastrukturer Toppunkter Algoritme 1 Algoritme 2 Algoritme 3. Philip Bille
Introduktion Algoritmer og datastrukturer Toppunkter Algoritme 1 Algoritme 2 Algoritme 3 Philip Bille Introduktion Algoritmer og datastrukturer Toppunkter Algoritme 1 Algoritme 2 Algoritme 3 Algoritmer
Læs mereOpskriv følgende funktioner efter stigende orden med hensyn til O-notationen: n 3/2. n logn (3/2) n. 2 3logn (3/2) n
Side af 0 sider Opgave (4%) Ja Nej n er O(n / )? n +n er O(n )? (logn) er O( logn )? n er O()? /n er O(logn)? Opgave (4%) Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: logn
Læs mereDatastrukturer (recap)
Dictionaries Datastrukturer (recap) Data: Datastruktur = data + operationer herpå En ID (nøgle) + associeret data. Operationer: Datastrukturens egenskaber udgøres af de tilbudte operationer (API for adgang
Læs mereDM02 opgaver ugeseddel 2
DM0 opgaver ugeseddel af Fiona Nielsen 16. september 003 Øvelsesopgaver 9/9, 10/9 og 11/9 1. Vis, at 1 3 + 3 3 + 5 3 +... + (n 1) 3 = n 4 n. Omskriver til summationsformel: (i 1) 3 = n 4 n Bevis ved induktion
Læs mereGrå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 mereDATALOGISK 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: Tirsdag den 20. marts 2012, kl.
Læs mereOpskriv følgende funktioner efter stigende orden med hensyn til O-notationen: n 7 n 1 7 7/n. 7nlogn. 7n 7nlogn n7
Side af 0 sider Opgave (%) Ja Nej /n er O(n )? n (logn) er O(n 3 )? n + n er O(3 n )? n er O((logn) 3 )? nlogn er Ω(n)? Opgave (%) Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen:
Læs mereProgrammering og Problemløsning, 2017
Programmering og Problemløsning, 2017 Martin Elsman Datalogisk Institut Københavns Universitet DIKU 10. Oktober, 2017 Martin Elsman (DIKU) Programmering og Problemløsning, 2017 10. Oktober, 2017 1 / 15
Læs mereSkriftlig 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 mereLø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 mereSkriftlig 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 mereEksamen i Diskret Matematik
Eksamen i Diskret Matematik Første Studieår ved Det Tekniske Fakultet for IT og Design samt Det Ingeniør- og Naturvidenskabelige Fakultet 29. maj 2017. Kl. 9-13. Nærværende eksamenssæt består af 11 nummererede
Læs mereINSTITUT FOR DATALOGI, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi
INSTITUT FOR DATALOGI, AARHUS UNIVERSITET Det Naturvidenskabelige Fakultet EKSAMEN Grundkurser i Datalogi Antal sider i opgavesættet (incl. forsiden): 12 (tolv) Eksamensdag: Fredag den 16. august 2013,
Læs mereDanmarks 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 mereDanmarks 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 mereGrundlæggende Algoritmer og Datastrukturer. Analyseværktøjer [CLRS, 1-3.1]
Grundlæggende Algoritmer og Datastrukturer Analyseværktøjer [CLRS, 1-3.1] Eksempler på en beregningsprocess Puslespil ved ombytninger Maximum delsum Hvad er udførselstiden for en algoritme? Maskinkode
Læs mereOpskriv 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 mereReeksamen i Diskret Matematik
Reeksamen i Diskret Matematik Første studieår ved Det Teknisk-Naturvidenskabelige Fakultet 23. august, 2016, 9.00-13.00 Dette eksamenssæt består af 11 nummerede sider med 16 opgaver. Alle opgaver er multiple
Læs mereSymmetrisk 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 mereIntroduktion. Philip Bille
Introduktion Philip Bille Plan Algoritmer og datastrukturer Toppunkter Algoritme 1 Algoritme 2 Algoritme 3 Algoritmer og datastrukturer Hvad er det? Algoritmisk problem: præcist defineret relation mellem
Læs mereIntroduktion. Introduktion. Algoritmer og datastrukturer. Eksempel: Maksimalt tal
Philip Bille Algoritmer og datastrukturer Algoritmisk problem. Præcist defineret relation mellem input og output. Algoritme. Metode til at løse et algoritmisk problem. Beskrevet i diskrete og entydige
Læs mereDATALOGISK 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): 1 (tolv) Eksamensdag: Fredag den 7. august 009, kl.
Læs mereOpskriv 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
Side af 0 sider Opgave (%) Ja Nej n er O(0n logn)? n er O(n )? n +n er O(n )? n logn er O(n )? n logn er O(n)? Opgave (%) Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: n
Læs mereBinære søgetræer. Binære søgetræer. Nærmeste naboer. Nærmeste nabo
Philip Bille er. Vedligehold en dynamisk mængde S af elementer. Hvert element har en nøgle x.key og satellitdata x.data. operationer. PREDECESSOR(k): returner element x med største nøgle k. SUCCESSOR(k):
Læs mere