Download præsentationen
Præsentation er lastning. Vent venligst
Offentliggjort afMathias Frank Redigeret for ca. et år siden
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
Lignende præsentationer
© 2024 SlidePlayer.dk Inc.
All rights reserved.