Mm1: Introduction to analysis and design of algorithms - October 6, 2009
|
|
- Anne Marie Dagmar Fog
- 8 år siden
- Visninger:
Transkript
1 Algorithms and Architectures I Rasmus Løvenstein Olsen (RLO), Jens Myrup Pedersen (JMP) Mm1: Introduction to analysis and design of algorithms - October 6, 2009
2 Algorithms and Architectures I 1. Introduction to analysis and design of algorithms 2. Recursive algorithms and recurrences 3. Self study 4. Sorting Algorithms 5. Self study 6. Hash tables, binary search trees 7. Self study 8. Binary search trees, red-black trees 9. Self study 10. Misc + Q&A
3 Dagsorden Introduktion og formål med kursus Introduktion til algoritmer Eksempler Fra problem til algoritme Analyse af algoritmers korrekthed Metode Eksempler Insert sorterings algoritme Merge algoritme Metoder til analyse af algoritmer Notationer Kompleksitet Opsummering og konklusion Opgaver
4 Formål og mål med kursus (taget fra studieordningen) Kursets formål er at understøtte den studerende i at: Forstå og anvende fundamentale algoritmer til organisation af og beregninger på data. Analysere og konstruere hensigtsmæssige repræsentationer af og beregninger på data. Den studerende skal ved den afsluttende prøve kunne: Anvende begreber, teorier og metoder til at analysere og designe algoritmer. Dokumentere forståelse for simple og sammensatte datastrukturer og deres anvendelser. Dokumentere forståelse for algoritmers og datastrukturers effektivitet, og anvende denne forståelse i forbindelse med konstruktion og analyse af algoritmer og datastrukturer. Redegøre for de overvejelser, der er forbundet med at implementere datastrukturer og algoritmer i praksis Benytte korrekt fagterminologi
5 Dagsorden Introduktion og formål med kursus Introduktion til algoritmer Eksempler Fra problem til algoritme Analyse af algoritmers korrekthed Metode Eksempler Insert sorterings algoritme Merge algoritme Metoder til analyse af algoritmer Notationer Kompleksitet Opsummering og konklusion Opgaver
6 Hvad er algoritmer Ordet algoritmer stammer fra den persiske matematiker fra det 9. århundrede: Abu Abdullah Muhammed ibn Musa al-khwarizmi Algoritmer findes overalt i dagligdagen, f.eks. for lyspærer De tidligst kendte algoritmer blev lavet af Babylonerne omkring år 1600 BC til faktorisering af tal og uddragelse af kvadratrødder Et spørgsmål: Hvorfor skal vi studere algoritmer når vi nu har super hurtige computere, der kværner tal en zillion gange hurtigere end vi selv gør? Lamp does not work Lamp plugged In? Bulp burned Out? Buy new lamp Plug in lamp Replace bulp
7 Et spørgsmål om computer kraft? Lommeregner Desktop Mainframe Distribuerede computere Nogle problemer er mere komplekse end andre. Tænk bare på f.eks. Skak og alle de kombinationsmuligheder der findes, valg af næste træk Søgning og organisering af data på Internettet, data baser, billet systemer osv. Rutning af data over store netværk (evt. ad-hoc) Planlægning af kabel nedgravning for fiber udlægning
8 En analogi til kompleksitet Fire rejsende med forskellige transportmidler L rejser x meter på x tid P rejser x^2 meter på x tid E rejser e^x meters på x tid F rejser x! meters på x tid hver tager en lille tur.
9 En analogi til kompleksitet #2 Så de starter hver deres rejse Når L har taget 18 skridt, har E næsten nået sin anden gang rundt om jorden og F vil have været nået til Månen og tilbage igen næsten gange L linear P polynomial E exponential F - factorial E vil have taget 12 ture rundt om jorden før L har taget 20 skridt
10 En analogi til kompleksitet #3 Fortsat Eller hvad med F har taget Solen-Jorden tur/retur ca. 5*10^127 gange mens L stadig mangler 10 meter på 100 m banen? L linear P polynomial E exponential F - factorial Konklusion: Kompleksitet betyder virkelig noget! Overvej hvad i sætter maskinen igang med at lave!
11 Klassifikation af algoritmer efter design metode Del og hersk Nedbrydning af problem til mindre problemer der er lettere at løse Dynamisk programming Genanvendelse af tidligere opnåede resultater Ligner Del-og-hersk men er typisk hurtigere i udførsel pga. genanvendelse af resultater Lineær programming Løsning af lineære uligheder, eks. Ax<b Grådige algoritmer Valg af umiddelbart mest optimal løsning til et givet delproblem Giver ikke nødvendigvis bedste resultat, men typisk et ret godt resultat Reduktion Inkludere problem transformering til et kendt og mindre kompleks løsning Søg og nummerering Til problemer der kan løses som grafer, f.eks. Skak eller kryds og bolle Probabilistiske and heuristiske algoritmer Algoritmer der er baseret på tilfældigheder, f.eks. genetiske algoritmer
12 Klassifikation af algoritmer efter implementationsmetode Rekursion eller iteration Algoritmer der baserer sig på gentagne kald af sig selv Typisk del-og-hersk type algoritme Logiske Anvendelse af logiske aksiomer der leder til kontrollerede, logiske udledninger baseret på input Serielle, parallelle eller distribuerede Serielle algoritmer kræver instruktioner udført en ad gangen Parallelle algoritmer kan dele sine opgaver op i mindre delopgaver (f.eks. del-og-hersk) Distribuerede algoritmer, arbejder ikke bare på en enkelt maskine, men over et helt netværk Deterministiske eller non-deterministiske Deterministiske algoritmer baserer sine beslutninger på et deterministik grundlag Non-deterministiske algoritmer baserer ikke altid sine beslutninger på et deterministisk grundlag, f.eks. probabilistiske algoritmer Præcise eller upræcise Nogen algoritmer (præcise) leverer et eksakt resultat, mens andre algoritmer leverer et næsten, eller ret godt resultat.
13 Fra problem til algoritme hvad kræves der? Hvad er problemet? Hvordan beskriver vi en løsning, der utvetydigt kan forstås af alle? Samling af Ikea møbler Olie kontrol på bilen Madlavning Sortering af og søgning i millioner af data elementer En computer er ikke indforstået med ret mange ting! Den er DUM! Nogle vigtige krav til algoritmer Korrekthed (skal kunne løse problemet tilfredsstillende præcist) Effektivitet (skal kunne løse problemet indenfor given tids/ressource rammer) Let forståelige og vedligeholdelsesvenlig (andre skal også kunne forstå algoritmen og evt. lave opdateringer) Genbrugelighed og generalitet (må gerne kunne genbruges i andre sammenhæng) Nogle gange er det et trade-off mellem køretid og udviklingstid.
14 Dagsorden Introduktion og formål med kursus Introduktion til algoritmer Eksempler Fra problem til algoritme Analyse af algoritmers korrekthed Metode Eksempler Insert sorterings algoritme Merge algoritme Metoder til analyse af algoritmer Notationer Kompleksitet Opsummering og konklusion Opgaver
15 Loop invarianter I familie med matematisk induktion Beskriver egenskaber for variable, og skal leve op til tre egenskaber Initialisering: Skal være sand før første iteration i et loop Vedligheholdelse: Hvis den er sand før loopet, er den også sand efter Slutning: Når loopet afsluttes, skal invarianten have et brugbart egenskab der hjælper med at afgøre hvornår algoritmen sluttes
16 Insertion sort algoritme Et problem simpelt nok til at starte med
17 Insertion sort algoritmen grafisk representation
18 Insertion sort algoritmen pseudo kode - reminder Insertion - sort(a) 1 for j=2 to length(a) 2 do key=a[j] 3 insert A[j] into sorted sequence A[1..j-1] 4 i=j-1 5 while i>0 and A[i]>key 6 do A[i+1]=A[i] 7 i=i-1 8 A[i+1]=key Loop Invariant: I starten af for loopet, indeholder A[1..j-1] de originale elementer i A[1..j-1] men i ordnet rækkefølge!
19 Bevis for loop invariant i insert-sort algoritmen 1. Initialisering: Første iteration, j=2 -> A[1..j-1] kun indeholder A[1] Denne er sorteret og dermed holder punkt 1 i loop invariant kravet 2. Vedligeholdelse: For hvert j, skal A[1..j-1] være ordnet ved start af loop, og A[i..j-1] skal være ordnet ved slut af loop (ikke nødvendigvis samme orden, men stadig i en orden) Det kræver at den indre while loop overholder samme invarians, hvormed samme type analyse bør udføres for dette loop 3. Slutning: Hvad sker der når det ydre loop når j>n? Sæt j=n+1, og indsæt i array A[1..n+1-1] = A[1..n] (hele det originale array) Pga. 2. med j=n+1 er vi sikker på at arrayet er sorteret ved slutning! Konklusion: Algoritmen virker efter hensigten
20 Merge algoritmen - antagelser og parametre Formål med algoritmen er Umiddelbart: At samle et delvist sorteret array A På længere sigt: At fungere i en rekursiv sorteringsalgoritme Parametrene p, q og r angiver steder i et array A[1..N], hvormed algoritmen skal arbejde p: startangivelse q: midterpunkt r: stopangivelse Algoritmen antager at arrayet A er delvist sorteret A[p.. q] er sorteret A[q+1.. r] er sorteret
21 Merge algoritmen grafisk representation
22 Merge algoritmen grafisk representation p q r L R L R L R L R
23 Loop invariant for merge algoritme Nu definerer vi loop invarianten som I starten af loopet ved linje 10, indeholder delarrayet A[p..k-1] k-p mindste elementer af L[1..n1+1] og R[1..n2+1] i ordnet rækkefølge. Derudover, er L[i] og R[j] de mindste elementer i de respektive arrays der endnu ikke er kopieret over i A[]. Så skal vi igen til at vise 1. Loop invarianten holder før den første iteration 2. Hver iteration holder invarianten 3. Invarianten leder til et brugbart egenskab der afgører algoritmens afslutning
24 Dagsorden Introduktion og formål med kursus Introduktion til algoritmer Eksempler Fra problem til algoritme Analyse af algoritmers korrekthed Metode Eksempler Insert sorterings algoritme Merge algoritme Metoder til analyse af algoritmer Notationer Kompleksitet Opsummering og konklusion Opgaver
25 Vurderinger af algoritme kompleksitet Ultimate goal: Determining calculation time for the algorithms design (well, that is if we don t look at usage of other ressources such as memory, network, other kinds of I/O). Challenge: Even in this case the calculation time depends on factors such as hardware, OS, set of instructions and inputs for the algorithm. In any case we would like to make an estimate of runtimes. Usual method: Analyse the worst-case complexity using Big-O notation (asymptotic notation). This is often fine, but be aware that in some situations best-case or averagecase analysis may be more informative.
26 Vurderinger af algoritme kompleksitet Tre forskellige vurderinger af algoritmer Værste tilfælde Det kan i hvert fald ikke blive værre en det Sker for nogle algoritmer ofte, f.eks. Søgealgoritmer i databaser når data ikke findes Bedste tilfælde Det kan ikke blive bedre end det her Gennemsnitlig tilfælde Et billede af typiske tilfælde Minder ofte om værste tilfælde mere end bedste tilfælde
27 Den store O notation (the big-o) O(g(n)): angiver en asymptotisk øvre grænse for kompleksiteten Ω(g(n)): angiver en asymptotisk nedre grænse for kompleksiteten Θ(g(n)): indikere en øvre og nedre grænse, hvor g(n) er den asymptotiske tætte grænse
28 Udspecificerede notation og definition Θ(g(n)) = { f(n): there exist positive constants c 1, c 2 and n 0 such that 0 c 1 g(n) f(n) c 2 g(n) for all n n 0 } Eksempler på tavlen O(g(n)) = {f(n): there exist positive constants c and n 0, such that 0 f(n) cg(n) for all n n 0 } Hvis en funktion tilhører Θ(g(n)), så tilhører den også automatisk O(g(n)) I meget andet litteratur benyttes O(g(n)) om hvad bogen/vi opfatter som Θ(g(n)) Ω(g(n)) = {f(n): there exist positive constants c and n 0 such that 0 cg(n) f(n) for all n n 0 } For at en funktion f(n) skal tilhøre Θ(g(n)), skal den også tilhøre O(g(n)) OG Ω(g(n))!!
29 Insertion sort algoritmen pseudo kode Den tager vi lige manuelt på tavlen...
30 Udførselstid T(n)= Σalle bidrag fra hvert led Insert-sort på tavlen I bedste tilfælde ved en allerede sorteret struktur T(n)=an+b I værste tilfælde hvis strukturen er omvendt sorteret T(n)=an 2 +bn+c Men hvad kan vi bruge det til? Vi har jo ikke altid bedst eller værst tilfælde Hvad med merge sort?
31 Algoritme kompleksitet sammenligning. To sorterings algoritmer insertion og merge-sort bruger forskellig tid til at løse samme opgave: Insertion bruger c 1 n 2 til at sortere n elementer Merge-sort bruger c 2 *n*log(n) til at sortere n elementer Computer A er hurtig: 1 mia. instruktioner per sekund Computer B er langsommere: 10 mio. instruktioner per sekund Med c 1 =2 og c 2 =50 bruger Computer A: 2000 sekunder Computer B: 100 sekunder Og det til trods at konstanterne c 1 og c 2 favoriserer den hurtige computer!
32 Algoritme kompleksitet grafisk sammenligning Insertion Merge-sort
33 Konklusion og opsummering Først og fremmest svare på spørgsmålet: Virker min algoritme efter hensigten? Programmøren: Ja, den virker da, jeg har prøvet 20 tilfældige test data Dig: Se her er min loop invariant og her er beviset på papir Det kan betale sig at analysere sin algoritme, eventuelt sammenligne med andre der løser samme opgaver: versus Vi kan godt løse problemet med Algoritme A, men det tager.. År Hmmm. Du ved godt Algoritme B tager. Sekunder?
34 Divide and Conquer: Multiplication of integers
35 Problem: How to multiply two integers X and Y, each of n bits? Solution 1: School method O(n 2 ) Solution 2: Divide-and-conquer algorithm (Yes, that is true). Divide the problem into two subproblems of size n/2: X=AB, X=A2 n/2 +B Y=CD, Y=C2 n/2 +D We can now write: XY=AC2 n + (AD+BC)2 n/2 + BD Calculating this way, we have to perform: 4 multiplications (of n/2 bit integers) 3 additions of integers (at most 2n bits) 2 shifts In total T(1) = 1, T(n)=4T(n/2)+cn. Verify that this is O(n 2 ) Question: Can we do this smarter??
36 We had: XY =AC2 n + (AD+BC)2 n/2 + BD =AC2 n +((A-B)(D-C)+AC+BD)2 n/2 +BD Calculating this way, we have to perform: 3 multiplications (of n/2 bit integers) 6 additions of integers (at most 2n bits) 2 shifts In total T(1) = 1, T(n)=3T(n/2)+cn. Verify that this is 3T(n/2) + cn So, that was smart!
37 More examples: Greedy Algorithms Giving back change Greedy Algorithm Travelling Salesman Dynamic Programming World Series Odds
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 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 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 mereAlgorithms 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 mereAlgorithms 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 & 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 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 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 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 mereAnalyse af algoritmer. Analyse af algoritmer. Analyse af algoritmer. Køretid
Philip Bille Mål. At bestemme og forudsige resourceforbrug og korrekthed af algoritmer Eks. Virker min algoritme til at beregne korteste veje i grafer? Hvor hurtigt kører min algoritme til at søge efter
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 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 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 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 mereSortering. Eksempel: De n tal i sorteret orden
Sortering 1 / 34 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, 9 2 / 34 Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden
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 mereSortering. Eksempel: De n tal i sorteret orden
Sortering 1 / 32 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, 9 2 / 32 Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden
Læs mereSortering af information er en fundamental og central opgave.
Sortering 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, 9 Mange opgaver er hurtigere i sorteret information (tænk på ordbøger, telefonbøger,
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 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 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 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 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 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 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 mereAlgoritmer og Datastrukturer 1. Gerth Stølting Brodal
Algoritmer og Datastrukturer 1 Gerth Stølting Brodal Design af Algoritmer Korrekt algoritme 1) algoritmen standser på alle input 2) Output er det rigtige på alle input Effektivitet 1) Optimer algoritmerne
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 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 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 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 mereOpskriv følgende funktioner efter stigende orden med hensyn til O-notationen: 5n 4. logn. n 4n 5 n/logn. n n/logn 5n
Algoritmer og Datastrukturer (-ordning) Side af sider Opgave (%) n er O(n 7 )? (logn) er O( n)? n(logn) er O(n)? n er O( n )? n er Ω(n )? Opgave (%) Opskriv følgende funktioner efter stigende orden med
Læs mereSortering. De n tal i sorteret orden. Eksempel: Kommentarer:
Sortering Sortering Input: Output: n tal De n tal i sorteret orden Eksempel: Kommentarer: 6, 2, 9, 4, 5, 1, 4, 3 1, 2, 3, 4, 4, 5, 9 Sorteret orden kan være stigende eller faldende. Vi vil i dette kursus
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 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 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 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 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 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 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 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 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 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 mereSkriftlig Eksamen Algoritmer og Datastrukturer 1. Datalogisk Institut Aarhus Universitet. Mandag den 22. marts 2004, kl
Skriftlig Eksamen Algoritmer og Datastrukturer 1 Datalogisk Institut Aarhus Universitet Mandag den. marts 00, kl..00 11.00 Navn Gerth Stølting Brodal Årskort 1 Dette eksamenssæt består af en kombination
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 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 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 mereDanmarks 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 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 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 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 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 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 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 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 mereBeat the Clock Sorteringsnetværk
Aktivitet 8 Beat the Clock Sorteringsnetværk Resumé Selvom computer er hurtige, er der en grænse for, hvor hurtigt de kan løse et problem. En måde at speed e det op på er at bruge flere computere til at
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 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 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 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: Torsdag den 26. marts 2009, kl.
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 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 mereSkriftlig 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 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 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 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 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 mereAsymptotisk analyse af algoritmers køretider
Asymptotisk analyse af algoritmers køretider Analyse af køretid Recall: Vi ønsker at vurdere (analysere) algoritmer på forhånd inden vi bruger lang tid på at implementere dem. De to primære spørgsmål:
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 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 mereKorteste 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 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 mereKorteste 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 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 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 mereGrafer 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 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 mereSkriftlig Eksamen Kombinatorik, Sandsynlighed og Randomiserede Algoritmer (DM528)
Skriftlig Eksamen Kombinatorik, Sandsynlighed og Randomiserede Algoritmer (DM58) Institut for Matematik og Datalogi Syddansk Universitet, Odense Torsdag den 1. januar 01 kl. 9 13 Alle sædvanlige hjælpemidler
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 mereGrafer 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 mereGrafer 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 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 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 mereDanmarks 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 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 mereSkriftlig 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 mere1. Redegør for Lister, stakke og køer mht struktur og komplexitet af de relevante operationer
1. Redegør for Lister, stakke og køer mht struktur og komplexitet af de relevante operationer på disse. Typer af lister: Array Enkelt linket liste Dobbelt linket Cirkulære lister Typer af køer: FILO FIFO
Læs mereSkriftlig Eksamen Algoritmer og Datastrukturer 1. Datalogisk Institut Aarhus Universitet
Side af 1 sider Skriftlig Eksamen Algoritmer og Datastrukturer 1 Datalogisk Institut Aarhus Universitet Dette eksamenssæt består af en kombination af små skriftlige opgaver og multiplechoice-opgaver. Opgaverne
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 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 mereBasic statistics for experimental medical researchers
Basic statistics for experimental medical researchers Sample size calculations September 15th 2016 Christian Pipper Department of public health (IFSV) Faculty of Health and Medicinal Science (SUND) E-mail:
Læs merePerspektiverende 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 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: Torsdag den 11. august 2011,
Læs mereGrafer 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. Figur: Terminologi: n = V, m = E (eller V og E (mis)bruges som V og E ).
Læs mereINSTITUT FOR DATALOGI, AARHUS UNIVERSITET EKSAMEN. Grundkurser i Datalogi. Algoritmer og Datastrukturer 1 (2003-ordning)
INSTITUT FOR DATALOGI, AARHUS UNIVERSITET EKSAMEN Grundkurser i Datalogi Antal sider i opgavesættet (incl. forsiden): 12 (tolv) Eksamensdag: Fredag den 10. august 2012, kl. 9.00-11.00 Eksamenslokale: Finlandsgade
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 mereUniversity of Copenhagen Faculty of Science Written Exam - 3. April Algebra 3
University of Copenhagen Faculty of Science Written Exam - 3. April 2009 Algebra 3 This exam contains 5 exercises which are to be solved in 3 hours. The exercises are posed in an English and in a Danish
Læs mereGrafer 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 mereInvarianter. Invariant: Et forhold, som vedligeholdes af algoritmen gennem (dele af) dens udførelse. Udgør ofte kernen af ideen bag algoritmen.
Invariant: Et forhold, som vedligeholdes af algoritmen gennem (dele af) dens udførelse. Udgør ofte kernen af ideen bag algoritmen. Invariant: Et forhold, som vedligeholdes af algoritmen gennem (dele af)
Læs mere