Præsentation er lastning. Vent venligst

Præsentation er lastning. Vent venligst

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

Lignende præsentationer


Præsentationer af emnet: "Algoritmer og Datastrukturer 2 Dynamisk Programmering [CLRS 15] Gerth Stølting Brodal."— Præsentationens transcript:

1 Algoritmer og Datastrukturer 2 Dynamisk Programmering [CLRS 15] Gerth Stølting Brodal

2 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

3 Dynamisk Programmering: Optimal opdeling af en stang En stang af længde 4 kan opdeles på 8 forskellige måder – dog kun 5 forskellige resultater Problem: Opdel en stang i dele, hvor hver del har en pris, således at den resulterende sum er maksimereret ens løsninger

4 Bedste pris Opdeling Optimal opdeling af stænger af længde 1..10

5 Optimal opdeling af en stang: Rekursiv løsning

6 C UT -R OD (p,2) allerede beregnet Tid O(2 n )

7 Optimal opdeling af en stang: Rekursiv løsning undgå genberegning ?

8 Optimal opdeling af en stang: Rekursiv løsning + Memoization Tid O(n 2 ) husk resultatet !

9 Optimal opdeling af en stang: Systematisk udfyldning rækkefølgen vigtig ! Tid O(n 2 )

10 Optimal opdeling af en stang: Udskrivning af løsningen Tid O(n 2 +n)

11 ”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 ) [CLRS, 2. udgave]

12 ”Colonel Motors Corporation” Korteste tid til og med stationerne Forrige station for hurtigste løsning [CLRS, 2. udgave]

13 ”Colonel Motors Corporation” Længden af den hurtigste vej findes i tid O(n) [CLRS, 2. udgave]

14 ”Colonel Motors Corporation” Gå ”baglæns” igennem de beregnede værdier, og find løsningen [CLRS, 2. udgave]

15 Matrix 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 )

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

17 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 matrix NB: Der er Ω(4 n /n 3/2 ) mulige måder for paranteserne Matrix-kæde Multiplikation

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

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

20 Matrix-kæde Multiplikation

21 Tid O(n)

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

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

24 Længste Fælles Delsekvens B D C A B A A B C B D A B j Y = X = i længden af en længste fælles delsekvens af x 1 x 2 ∙∙∙x i og y 1 y 2 ∙∙∙y j

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

26 Længste Fælles Delsekvens Tid O(nm)

27 Tid O(n+m) Længste Fælles Delsekvens

28 Optimale Binære Søgetræer Forventet søgetid 2.80 Forventet søgetid 2.75 ( + 1 ) x = k1k1 k2k2 k3k3 k4k4 k5k5 p1p1 p2p2 p3p3 p4p4 p5p5 q1q1 q2q2 q3q3 q4q4 q5q5 q0q0 d1d1 d2d2 d3d3 d4d4 d5d5 d0d0

29 Optimale Binære Søgetræer k1k1 k2k2 k3k3 k4k4 k5k5 p1p1 p2p2 p3p3 p4p4 p5p5 q1q1 q2q2 w(3,4) q4q4 q0q0 q5q5 q3q3 forventet optimal tid for et søgetræ indeholdende k i...,k j d1d1 d2d2 d3d3 d4d4 d5d5 d0d0

30 Optimale Binære Søgetræer Tid O(n 3 ) k1k1 k2k2 k3k3 k4k4 k5k5 p1p1 p2p2 p3p3 p4p4 p5p5 q1q1 q2q2 w(3,4) q4q4 q0q0 q5q5 q3q3 d1d1 d2d2 d3d3 d4d4 d5d5 d0d0

31 Konstruktion af Optimalt Binært Søgetræ r = root[ i, j ] root[ i, r-1 ] root[ r+1, j ] k1k1 k2k2 k3k3 k4k4 k5k5 p1p1 p2p2 p3p3 p4p4 p5p5 q1q1 q2q2 w(3,4) q4q4 q0q0 q5q5 q3q3 d1d1 d2d2 d3d3 d4d4 d5d5 d0d0

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


Download ppt "Algoritmer og Datastrukturer 2 Dynamisk Programmering [CLRS 15] Gerth Stølting Brodal."

Lignende præsentationer


Annoncer fra Google