Dynamisk programmering
|
|
- Edith Fischer
- 5 år siden
- Visninger:
Transkript
1 Dynamisk programmering
2 Dynamisk programmering Optimeringsproblem: man ønsker at finde bedste den kombinatoriske struktur (struktur opbygget af et endeligt antal enkeltdele) blandt mange mulige. Eksempler: korteste rute, bedste opskæring af stof, bedste pakning af en lastbil. Dynamisk programmering [Bellman, ]: et algoritme-konstruktionsprincip ( paradigme ). Normalt mest brugt til optimeringsproblemer. Er et specialtilfælde af algoritme-konstruktionsprincippet Divide-and-Conquer. Dvs. er en rekursiv metode, som opbygger løsninger til større problemer ud fra løsninger til mindre problemer. Normalt i rekursive algoritmer: delproblemer typisk halvt så store, ingen gentagelser af delproblemer under rekursionen. Nogle rekursive metoder: kald af delproblemer hvis størrelse kun er reduceret med én. Der kan der opstå gentagelser blandt delproblemers delproblemer. Køretiden bliver derved eksponentiel.
3 Dynamisk programmering Kernen i dynamisk programmering er følgende trick: Lav en tabel over løsninger på delproblemer, så disse kun skal løses en gang hver. Dette ændrer normalt køretiden fra eksponentiel til polynomiel. Mere generelt bruges begrebet dynamisk programmering om Udvikling af rekursive løsninger for optimeringsproblemer, hvor nogle delproblemer i rekursionen kun er reduceret O(1) i størrelse. Man bruger så tricket til at implementere den rekursive løsning effektivt. Den kreative del er at finde den rekursive beskrivelse af løsningen. At derefter bruge tricket er ret ens fra problem til problem.
4 Dynamisk programmering Den kreative del er at finde den rekursive beskrivelse af løsningen. Følgende er ofte en god angrebsvinkel: 1. Hvad der kunne være en god beskrivelse af størrelsen af et (del)problem, udtrykt ved et, to eller evt. flere heltalsindekser. 2. Analyser hvordan en optimal løsning for en given størrelse problem må bestå af et sidste valg og resten, hvor man om resten kan argumentere, at dette må være en optimal løsning for en mindre størrelse problem. Derved kan fås en rekursiv beskrivelse af værdien af løsninger. Den sidste egenskab kaldes, at der er optimale delproblemer. Eksempler følger.
5 Eksempel Du har en guldkæde med n led. Den kan deles i mindre længder (med n led tilsammen, dvs. ingen led går tabt). Guldsmeden køber guldkæder af forskellige længder til forskellige priser: længde i pris p i $1 $5 $8 $9 $10 $17 $17 $20 $24 Hvordan skal du opdele din guldkæde for at optimere din salgspris?
6 Optimale delproblemer Observation: enhver opdeling af en kæde af længde n må bestå af: Et sidste stykke af længde k n. En opdeling af resten, dvs. en opdeling af en kæde af længde n k. Den essentielle egenskab (optimale delproblemer): For en optimal opdelingen af kæden af længde n, må opdelingen af resten selv være optimal for en kæde af længde n k. For hvis der fandtes en ægte bedre opdeling af resten, kunne man bruge den i stedet og derved forbedre den optimale opdeling af kæden af længde n. Kald værdien af en optimal opdeling af en kæde af længde n for r(n). Det er klart at r(0) = 0. Vi vil gerne finde r(n) for n > 0.
7 Rekursiv formel for r(n) Opsummering: en optimal opdeling T for længde n består af: Et sidste stykke med længde k n. En optimal opdeling af resten, dvs. en optimal opdeling af en kæde af længde n k. Værdien r(n) af T er derfor lig p k + r(n k), så det lugter af rekursion. Men: vi kender desværre ikke k. Derfor gør vi sådan: Lad T i (for i = 1... n) være en opdelingen bestående af et sidste stykke af længde i, samt en optimal opdeling af resten. T k har værdi p k + r(n k) lige som T, og er derfor optimal for længde n. Så mindst én af T 1, T 2, T 3,...,T n er optimal for længde n. Naturligvis kan ingen T i have en værdi bedre end optimal. Værdien af T i er p i + r(n i). Heraf: r(n) = max 1 i n (p i + r(n i)), r(0) = 0
8 Beregne de optimale værdier r(n) = max 1 i n (p i + r(n i)), r(0) = 0 Dvs. r(n) er (matematisk set) rekursivt defineret ud fra mindre instanser. Er rekursion også en god løsning, algoritmisk set? Man kan vise via induktion at der er 2 n knuder i rekursionstræet. Så køretiden vil blive Θ(2 n ) Problemet er gentagelser blandt delproblemers delproblemer.
9 Brug en tabel Fokusér i stedet på en tabel over værdien af de optimale løsninger. Start: r(0) = 0 n r(n) Et felt kan fyldes ud via r(n) = max 1 i n (p i + r(n i)) hvis de foregående felter er fyldt ud. Denne afhængighed kan vi illustrere: n r(n) Deraf følger, at vi kan beregne r(n) bottom-up, dvs. for stigende n
10 Køretid r(n) = max 1 i n (p i + r(n i)), r(0) = 0 n r(n) Denne beregning kan laves med to simple for-loops (det inderste finder max, det ydre går gennem tabellen): r[0] = 0 for k = 1 to n: max = for i = 1 to k: x = p[i] + r[k i]: if x > max: max = x r[k] = max Tid: O( n) = O(n 2 )
11 Eksempel Brug og tabellen over p i : r(n) = max 1 i n (p i + r(n i)), r(0) = 0 længde i pris p i til at udfylde tabellen over r(n) fra højre mod venstre: længde n optimal værdi r(n)
12 Find selve løsningen Tallet r(n) er kun værdien af den optimale løsning. Hvad hvis vi gerne vil have selve løsningen (de enkelte længder, guldkæden skal brydes op i)? Gem længden s(n) af det sidste stykke for en optimal løsning for længde n. r(n) = max 1 i n (p i + r(n i)), r(0) = 0 længde i pris p i længde n optimal værdi r(n) sidste længde s(n) while n > 0 print s[n] n = n s[n]
13 Memoization Rekursion: O(2 n ). Struktureret tabeludfyldning: O(n 2 ) Kan de to kombineres? Ja. GuldKæde(n) if n = 0 return 0 else if r[n] allerede udfyldt i tabel return r[n] else x = max 1 i n (p i + GuldKæde(n i)) r[n] = x return x En kant (pil) i grafen, der viser delproblemers afhængighed af hinanden, vil blive en kant i rekursionstræet præcis én gang. Så samme køretid O(n 2 ) og pladsforbrug O(n) som for bottom-up udfyldning af tabellen. Men nok dårligere konstanter i praksis.
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 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 mereDynamisk programmering. Flere eksempler
Dynamisk programmering Flere eksempler Eksempel 1: Længste fælles delstreng Alfabet = mængde af tegn: {a,b,c,...,z}, {A,C,G,T}, {,1} Eksempel 1: Længste fælles delstreng Alfabet = mængde af tegn: {a,b,c,...,z},
Læs mereDynamisk programmering. Flere eksempler
Dynamisk programmering Flere eksempler Eksempel 1: Længste fælles delstreng Alfabet = mængde af tegn: {a,b,c,...,z}, {A,C,G,T}, {,1} Streng = sekvens x 1 x 2 x 3... x n af tegn fra et alfabet: helloworld
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 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 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 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 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 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 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 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 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 mereGrådige algoritmer. Et algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.
Grådige algoritmer Grådige algoritmer Et algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Grådige algoritmer Et algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.
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 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 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 mereTirsdag 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 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 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 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 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 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 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 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 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 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 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 mereSkriftlig 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 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. 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 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 mereKorteste 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 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 merePrioritetskø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 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 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 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 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 mereKorteste 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 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 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 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 mereEt generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Ideen er simpel:
Grådige algoritmer Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Ideen er simpel: Opbyg løsningen skridt for skridt ved hele tiden af vælge lige
Læs mereSkriftlig 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 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 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 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
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 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 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 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 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 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 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 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 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 mereDanmarks 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 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 mereKorteste 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 mereSammenhængskomponenter i grafer
Sammenhængskomponenter i grafer Ækvivalensrelationer Repetition: En relation R på en mængde S er en delmængde af S S. Når (x, y) R siges x at stå i relation til y. Ofte skrives x y, og relationen selv
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 mereVideregående Algoritmik. Version med vejledende løsninger indsat!
Videregående Algoritmik DIKU, timers skriftlig eksamen, 1. april 009 Nils Andersen og Pawel Winter Alle hjælpemidler må benyttes, dog ikke lommeregner, computer eller mobiltelefon. Opgavesættet består
Læs mereSommeren 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 mereIntroduktion Til Konkurrenceprogrammering
Introduktion Til Konkurrenceprogrammering Søren Dahlgaard og Mathias Bæk Tejs Knudsen {soerend,knudsen}@di.ku.dk Version 0.1 Indhold Indhold i Introduktion 1 1 Palindromer 3 1.1 Introduktion til Python...............
Læs mereOrienterede grafer. Orienterede grafer. Orienterede grafer. Vejnetværk
Philip Bille Orienteret graf (directed graph). Mængde af knuder forbundet parvis med orienterede kanter. Vejnetværk Knude = vejkryds, kant = ensrettet vej. deg + (6) =, deg - (6) = sti fra til 6 8 7 9
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 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 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 mereSkriftlig Eksamen Algoritmer og Datastrukturer (DM507)
Skriftlig Eksamen Algoritmer og Datastrukturer (DM507) Institut for Matematik og Datalogi Syddansk Universitet, Odense Mandag den 7. juni 00, kl. 9 Alle sædvanlige hjælpemidler (lærebøger, notater, osv.)
Læs mereKlasserne af problemer, der kan løses i deterministisk og i ikke-deterministisk polynomiel tid; polynomiel reduktion; N P-fuldstændighed
Klasserne af problemer, der kan løses i deterministisk og i ikke-deterministisk polynomiel tid; polynomiel reduktion; N P-fuldstændighed Videregående algoritmik Cormen et al. 34.1 34.3 Fredag den 12. december
Læs mereDanmarks Tekniske Universitet
ksamen 036, side af sider anmarks Tekniske Universitet Skriftlig prøve, den 3. maj 0. Kursusnavn: lgoritmer og datastrukturer Kursus nr. 036. Varighed: timer Tilladte hjælpemidler: lle skriftlige hjælpemidler.
Læs mereOrienterede grafer. Introduktion Repræsentation Søgning Topologisk sortering og DAGs Stærke sammenhængskomponenter Implicitte grafer.
Orienterede grafer Introduktion Repræsentation Søgning Topologisk sortering og DAGs Stærke sammenhængskomponenter Implicitte grafer Philip Bille Orienterede grafer Introduktion Repræsentation Søgning Topologisk
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 mereDATALOGISK 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 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 mereIntroduktion til datastrukturer. Philip Bille
Introduktion til datastrukturer Philip Bille Plan Datastrukturer Stakke og køer Hægtede lister Dynamiske tabeller Datastrukturer Datastrukturer Datastruktur: Metode til at organise data så det kan søges
Læs mereOrienterede grafer. Orienterede grafer. Orienterede grafer. Orienterede grafer
Philip Bille Orienteret graf. Mængde af knuder forbundet parvis med orienterede kanter. deg + (7) =, deg - (7) = Lemma. v V deg - (v) = v V deg + (v) = m. Bevis. Hver kant har netop en startknude og slutknude.
Læs mereLøs til optimalitet i eksponentiel tid Find tilnærmet løsning i polynomielt tid Optimeringsproblemer kan ikke altid verificeres i polynomiel
I dag Løsning af NP -hårde optimeringsproblemer Repetition: branch-and-bound Flere begreber Konkret eksempel: TSP Lagrange relaxering Parallel branch-and-bound 1 Opsummering Løsning af NP -hårde optimeringsproblemer
Læs mereMindste 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 mereForslag til løsning af Opgaver til afsnittet om de naturlige tal (side 80)
Forslag til løsning af Opgaver til afsnittet om de naturlige tal (side 80) Opgave 1 Vi skal tegne alle de linjestykker, der forbinder vilkårligt valgte punkter blandt de 4 punkter. Gennem forsøg finder
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)}
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 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 mereRekursion C#-version
Note til Programmeringsteknologi Akademiuddannn i Informationsteknologi Rekursion C#-version Finn Nordbjerg 1 Rekursion Rekursionsbegrebet bygger på, at man beskriver noget ved "sig selv". Fx. kan tallet
Læs mereGrundlæggende Algoritmer og Datastrukturer
Grundlæggende Algoritmer og Datastrukturer Om kurset Grundlæggende Algoritmer og Datastrukturer Undervisningsformer Forelæsninger: 4 timer/uge (2+2). Øvelser: 3 timer/uge. Café. Obligatorisk program 13
Læs mereIntroduktion til datastrukturer. Introduktion til datastrukturer. Introduktion til datastrukturer. Datastrukturer
Introduktion til datastrukturer Introduktion til datastrukturer Philip Bille Datastrukturer Datastruktur. Metode til at organise data så det kan søges i/tilgås/manipuleres effektivt. Mål. Hurtig Kompakt
Læs mereEt udtrykstrç med de ære regnearter, heltalskonstanter og variabler beskrives. Type Expr = Sumèplus, minus, times, div: Args, const: Int, name: Textè
Opgave 1 è20èè Et udtrykstrç med de ære regnearter, heltalskonstanter og variabler beskrives af fçlgende rekursive Trine-type: Type Expr = Sumèplus, minus, times, div: rgs, const: Int, name: Textè Type
Læs mereMindste 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 mereMindste 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 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 mereMindste 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 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 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 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 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 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 mereIntroduktion til datastrukturer
Introduktion til datastrukturer Datastrukturer Stakke og køer Hægtede lister Dynamiske tabeller Philip Bille Introduktion til datastrukturer Datastrukturer Stakke og køer Hægtede lister Dynamiske tabeller
Læs mereSkriftlig eksamen i Datalogi
Roskilde Universitetscenter side 1 af 9 sider Skriftlig eksamen i Datalogi Modul 1 Vinter 1999/2000 Opgavesættet består af 6 opgaver, der ved bedømmelsen tillægges følgende vægte: Opgave 1 5% Opgave 2
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 mere