Algoritmer og Datastrukturer 2 Dynamisk Programmering [CLRS, kapitel 15] Gerth Stølting Brodal Aarhus Universitet.

Slides:



Advertisements
Lignende præsentationer
Algoritmer og Datastrukturer 1 Amortiseret Analyse [CLRS, kapitel 17] Gerth Stølting Brodal.
Advertisements

Oplæg og øvelser, herunder frugt og vand
Algoritmer og Datastrukturer 2 Dynamisk Programmering [CLRS 15] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 2 Del-og-kombiner [CLRS, kapitel , , 28
Algoritmer og Datastrukturer 1 Merge-Sort [CLRS, kapitel 2.3] Heaps [CLRS, kapitel 6] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 2 Grådige Algoritmer [CLRS ] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 2 Gerth Stølting Brodal.
Perspektiverende Datalogi Klassiske Algoritmer
Algoritmer og Datastrukturer 1 Binære Søgetræer [CLRS, kapitel 12] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 2 Dynamisk Programmering [CLRS 15] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 2 Gerth Stølting Brodal Mønstergenkendelse [CLRS, kapitel , 32.4]
Algoritmer og Datastrukturer 1...mere Sortering [CLRS, kapitel 8] Gerth Stølting Brodal Aarhus Universitet.
Algoritmer og Datastrukturer 2 Del-og-kombiner [CLRS, kapitel 2.3, , problem 30.1.c] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 2 Gerth Stølting Brodal Maksimale Strømninger [CLRS, kapitel ]
Algoritmer og Datastrukturer 2 Maksimale Strømninger [CLRS, kapitel ] Gerth Stølting Brodal Aarhus Universitet Ford-Fulkerson.
Algoritmer og Datastrukturer 1 Binære Søgetræer [CLRS, kapitel 12] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 1 Amortiseret Analyse [CLRS, kapitel 17] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 1 Dynamisk Rang & Interval Træer [CLRS, kapitel 14] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 2 Korteste Veje [CLRS, kapitel 24, ] Gerth Stølting Brodal Aarhus Universitet.
Algoritmer og Datastrukturer 2 Gerth Stølting Brodal Minimum Udspændende Træer (MST) [CLRS, kapitel 23]
Algoritmer og Datastrukturer 2 Gerth Stølting Brodal Minimum Udspændende Træer (MST) [CLRS, kapitel 23]
Algoritmer og Datastrukturer 1 Binære Søgetræer [CLRS, kapitel 12] Gerth Stølting Brodal Aarhus Universitet.
Algoritmer og Datastrukturer 2
Algoritmer og Datastrukturer 2 Topologisk Sortering, Stærke Sammenhængskomponenter [CLRS, kapitel ] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 1 Union-Find [CLRS, kapitel ] Gerth Stølting Brodal Aarhus Universitet.
Algoritmer og Datastrukturer 2 Grådige Algoritmer [CLRS ] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 2 Graf repræsentationer, BFS og DFS [CLRS, kapitel ] Gerth Stølting Brodal Aarhus Universitet.
Algoritmer og Datastrukturer 2 Grådige Algoritmer [CLRS ] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 2 Gerth Stølting Brodal Korteste Veje [CLRS, kapitel 24]
Algoritmer og Datastrukturer 1 Quicksort [CLRS, kapitel 7] Gerth Stølting Brodal Aarhus Universitet.
Algoritmer og Datastrukturer 2 Del-og-kombiner [CLRS, kapitel , , 28
Algoritmer og Datastrukturer 2 Gerth Stølting Brodal Minimum Udspændende Træer (MST) [CLRS, kapitel 23]
Algoritmer og Datastrukturer 1 Union-Find [CLRS, kapitel ] Gerth Stølting Brodal Aarhus Universitet.
Algoritmer og Datastrukturer 1 ”Rush Hour” Gerth Stølting Brodal.
Algoritmer og Datastrukturer 1 Gerth Stølting Brodal.
Algoritmer og Datastrukturer 2 Gerth Stølting Brodal Korteste Veje [CLRS, kapitel ]
DADS: Algoritmer og Datastrukturer Forelæser: Gerth S. Brodal (vikar: EMS) Forelæsninger: timer, Aud E Kvarter: 3. (dADS 1) + 4. (dADS 2) Øvelser:
Algoritmer og Datastrukturer 1 Dynamisk Rang & Interval Træer [CLRS, kapitel 14] Gerth Stølting Brodal Aarhus Universitet.
Algoritmer og Datastrukturer 2 Suffix træer og Suffix arrays [GT, kapitel 9.2],[Smyth, kapitel 5.3.2] Gerth Stølting Brodal Aarhus Universitet.
Algoritmer og Datastrukturer 2 Suffix træer og Suffix arrays [Smyth, kapitel 5.3.2], [GT, kapitel 9.2] Gerth Stølting Brodal Aarhus Universitet.
Algoritmer og Datastrukturer 2 Gerth Stølting Brodal.
Algoritmer og Datastrukturer 2 Topologisk Sortering, Stærke Sammenhængskomponenter [CLRS, kapitel ] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 1 Dynamisk Rang & Interval Træer [CLRS, kapitel 14] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 2 Grådige Algoritmer [CLRS, kapitel ] Gerth Stølting Brodal Aarhus Universitet.
Algoritmer og Datastrukturer 2 Graf repræsentationer, BFS og DFS [CLRS, kapitel ] Gerth Stølting Brodal Aarhus Universitet.
Algoritmer og Datastrukturer 2 Topologisk Sortering, Stærke Sammenhængskomponenter [CLRS, kapitel ] Gerth Stølting Brodal Aarhus Universitet.
Algoritmer og Datastrukturer 1 Heaps [CLRS, kapitel 6] Gerth Stølting Brodal Aarhus Universitet.
Algoritmer og Datastrukturer 2 Korteste Veje [CLRS, kapitel 24, ] Gerth Stølting Brodal Aarhus Universitet.
Algoritmer og Datastrukturer 1 Elementære Datastrukturer [CLRS, kapitel 10] Gerth Stølting Brodal Aarhus Universitet.
Algoritmer og Datastrukturer 1 Gerth Stølting Brodal Aarhus Universitet.
Algoritmer og Datastrukturer 1 Gerth Stølting Brodal Aarhus Universitet.
Algoritmer og Datastrukturer 2 Gerth Stølting Brodal Korteste Veje [CLRS, kapitel 24, ]
Algoritmer og Datastrukturer 2 Gerth Stølting Brodal Korteste Veje [CLRS, kapitel ]
Algoritmer og Datastrukturer 2 Gerth Stølting Brodal Minimum Udspændende Træer (MST) [CLRS, kapitel 23]
Algoritmer og Datastrukturer 2 Korteste Veje [CLRS, kapitel 24]
Algoritmer og Datastrukturer 2 Dynamisk Programmering [CLRS 15]
Dynamisk Rang & Interval Træer [CLRS, kapitel 14]
Algoritmer og Datastrukturer 1
Algoritmer og Datastrukturer 2
Algoritmer og Datastrukturer 2 Grådige Algoritmer [CLRS ]
Algoritmer og Datastrukturer 2
Algoritmer og Datastrukturer 2 Dynamisk Programmering [CLRS 15]
Algoritmer og Datastrukturer 2 Korteste Veje [CLRS, kapitel ]
Dynamisk Rang & Interval Træer [CLRS, kapitel 14]
Algoritmer og Datastrukturer 2
Algoritmer og Datastrukturer 2
Algoritmer og Datastrukturer Grådige Algoritmer [CLRS ]
Grundlæggende Algoritmer og Datastrukturer
Algoritmer og Datastrukturer 1
Algoritmer og Datastrukturer Dynamisk Programmering [CLRS 15]
Præsentationens transcript:

Algoritmer og Datastrukturer 2 Dynamisk Programmering [CLRS, kapitel 15] Gerth Stølting Brodal Aarhus Universitet

Dynamisk Programmering Generel algoritmisk teknik – virker for mange (men langt fra alle) problemer Krav: ”Optimal delstruktur” – en løsning til problemet kan konstrueres ud fra optimale løsninger til ”delproblemer” Rekursive løsning: –Typisk eksponentiel tid Dynamisk Programmering: –Beregn delløsninger systematisk: –Typisk polynomiel tid

”Colonel Motors Corporation” Mål Find en hurtigste vej fra ”Chassis enters” til ”completed auto” – knuderne angiver hvor lang tid de forskellige ting tager Naive algoritme Prøv alle 2 n forskellige veje – tid Ω(2 n )

”Colonel Motors Corporation” Korteste tid til og med stationerne Forrige station for hurtigste løsning

”Colonel Motors Corporation” Længden af den hurtigste vej findes i tid O(n)

”Colonel Motors Corporation” Gå ”baglæns” igennem de beregnede værdier, og find løsningen

Matrix-kæde Multiplikation Multiplikation af to matricer A og B af størrelse p 1 x p 2 og p 2 x p 3 tager tid O(p 1 ·p 2 ·p 3 )

(A·B)·C elller A·(B·C) ? Matrix-kæde Multiplikation Matrix multiplikation er associativ (kan sætte paranteser som man vel) men ikke kommutative (kan ikke bytte rundt ¨på rækkefølgen af matricerne)

Problem: Find den bedste rækkefølge (paranteser) for at gange n matricer sammen A 1 · A 2 ·.... · A n hvor A i er en p i-1 x p i matrice NB: Der er Ω(4 n /n 3/2 ) mulige måder for paranteserne Matrix-kæde Multiplikation

m[i,j] = minimale antal (primitive) multiplikationer for at beregne A i ·…· A j Matrix-kæde Multiplikation Tid Ω(4 n /n 3/2 )

Matrix-kæde Multiplikation Tid O(n 3 )

Matrix-kæde Multiplikation

Tid O(n)

”Memoized” Matrix-kæde Multiplikation Tid O(n 3 )

B D C A B A A B C B D A B Længste Fælles Delsekvens

Tid O(nm)

Længste Fælles Delsekvens Tid O(n)

Optimale Binære Søgetræer Forventet søgetid 2.80 Forventet søgetid 2.75

Optimale Binære Søgetræer

Tid O(n 3 )

Dynamisk Programmering Generel algoritmisk teknik Krav: ”Optimal delstruktur” – en løsning til problemet kan konstrueres ud fra optimale løsninger til ”delproblemer” Eksempler –”Colonel Motors Corporation” –Matrix-kæde multiplikation –Længste fælles delsekvens –Optimale søgetræer