29.08.2013 Views

Dynamisk programmering II - Matematik og optimering

Dynamisk programmering II - Matematik og optimering

Dynamisk programmering II - Matematik og optimering

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Det Biovidenskabelige Fakultet<br />

<strong>Dynamisk</strong> <strong>pr<strong>og</strong>rammering</strong> <strong>II</strong><br />

<strong>Matematik</strong> <strong>og</strong> <strong>optimering</strong><br />

Henrik Holm<br />

Institut for Grundvidenskab <strong>og</strong> Miljø<br />

E-mail: hholm@life.ku.dk<br />

URL: http://www.matfys.kvl.dk/Mat-Plan/<br />

31. marts 2011<br />

Dias 1/36<br />

Heltals<strong>pr<strong>og</strong>rammering</strong><br />

Ved løsning af et <strong>optimering</strong>sproblem kan man være interesseret i, at de<br />

variable x1,...,xn kun m˚a antage heltalsværdier.<br />

Advarsel. Bemærk, at den reelle løsning <strong>og</strong> heltalsløsningen for<br />

nedenst˚aende problem (Eksempel 10.2 i [HS]) er meget forskellige:<br />

• Den relle løsning er Q(4,3.2) = 7.2 = Max!<br />

• Heltalsløsningen er Q(0,0) = 0 = Max!<br />

⎧<br />

⎪⎨<br />

Q(x,y) = x + y = Max!<br />

17x − 20y 4<br />

⎪⎩<br />

−15x + 20y 4<br />

x,y 0<br />

Dias 3/36 — Henrik Holm (IGM) — <strong>Dynamisk</strong> <strong>pr<strong>og</strong>rammering</strong> <strong>II</strong> — 31. marts 2011<br />

4<br />

3<br />

2<br />

1<br />

y<br />

*<br />

*<br />

*<br />

−15x+20y=4<br />

*<br />

*<br />

*<br />

*<br />

17x−20y=4<br />

*<br />

*<br />

*<br />

*<br />

*<br />

(4,3.2)<br />

1 2 3 4 5<br />

*<br />

*<br />

*<br />

*<br />

*<br />

Q=7.2 *<br />

*<br />

*<br />

x<br />

Indhold<br />

1 Heltals<strong>pr<strong>og</strong>rammering</strong><br />

2 Kompleksitetsbetragtninger<br />

3 Markov-beslutningsprocesser<br />

Dias 2/36 — Henrik Holm (IGM) — <strong>Dynamisk</strong> <strong>pr<strong>og</strong>rammering</strong> <strong>II</strong> — 31. marts 2011<br />

Gomory’s metode.<br />

For løsning af heltals LP-problemer findes en variant af simpleksmetoden<br />

kaldet Gomory’s metode [HS, kapitel 10].<br />

<strong>Dynamisk</strong> <strong>pr<strong>og</strong>rammering</strong>.<br />

<strong>Dynamisk</strong> <strong>pr<strong>og</strong>rammering</strong> kan <strong>og</strong>s˚a bruges til at løse <strong>optimering</strong>sproblemer<br />

med heltallige variable. Følgende resultater er heltalsvarianter af resulater fra<br />

sidste forelæsning.<br />

Dias 4/36 — Henrik Holm (IGM) — <strong>Dynamisk</strong> <strong>pr<strong>og</strong>rammering</strong> <strong>II</strong> — 31. marts 2011


<strong>Dynamisk</strong> heltals<strong>pr<strong>og</strong>rammering</strong> A<br />

Betragt et <strong>optimering</strong>sproblem af typen:<br />

⎧<br />

⎨ Q(x) = ϕ1(x1)···ϕn(xn) = Max!<br />

h1(x1) + ··· + hn(xn) b<br />

⎩<br />

x1,...,xn 0 heltal<br />

hvor ϕs er positiv, hs voksende <strong>og</strong> b ∈ N0. Dette problem kan løses ved at indføre:<br />

g1(λ) = max<br />

0x1[ξ1] {ϕ1(x1)}<br />

gs(λ) = max<br />

0xs[ξs] {gs−1(λ − hs(xs))ϕs(xs)} (s = 2,...,n)<br />

hvor λ ∈ {0,...,b} <strong>og</strong> ξs er løsningen til ligningen hs(ξs) = λ.<br />

Lad x ◦ s (λ) betegne værdien/værdierne af xs der realiserer maksimum gs(λ).<br />

Max-værdien for (∗) er da gn(b) <strong>og</strong> max-punktet/punkterne x ◦ er:<br />

x ◦ n = x ◦ n (b)<br />

x ◦ n−1 = x◦ n−1 (b − hn(x ◦ n ))<br />

.<br />

x ◦ 1 = x ◦ 1 (b − hn(x ◦ n ) − ··· − h2(x ◦ 2 ))<br />

Her betegner [·] heltalsdelen. Fx er [5.23] = 5 <strong>og</strong> [3] = 3.<br />

Dias 5/36 — Henrik Holm (IGM) — <strong>Dynamisk</strong> <strong>pr<strong>og</strong>rammering</strong> <strong>II</strong> — 31. marts 2011<br />

Eksempel: Lineær bibetingelse 1/8<br />

⎧<br />

⎨ Q(x1,x2,x3) = x<br />

⎩<br />

3 1 + x2 + 2x 2 3 = Max!<br />

4x1 + x2 + 2x3 33<br />

x1,x2,x3 0 heltal<br />

Da 4ξ1 = λ f˚as ξ1 = λ . Vi har derfor:<br />

4<br />

Eksempelvis er:<br />

<strong>og</strong> vi noterer at x ◦ 1 (13) = 3.<br />

Dias 7/36 — Henrik Holm (IGM) — <strong>Dynamisk</strong> <strong>pr<strong>og</strong>rammering</strong> <strong>II</strong> — 31. marts 2011<br />

g1(λ) = max<br />

0x1[ λ 4 ] {x 3 1 }.<br />

⎧<br />

⎪⎨<br />

g1(13) = max<br />

⎪⎩<br />

0 3 = 0<br />

1 3 = 1<br />

2 3 = 8<br />

3 3 = 27<br />

⎫<br />

⎪⎬<br />

= 27,<br />

⎪⎭<br />

(∗)<br />

<strong>Dynamisk</strong> heltals<strong>pr<strong>og</strong>rammering</strong> B<br />

Betragt et <strong>optimering</strong>sproblem af typen:<br />

⎧<br />

⎨ Q(x) = ϕ1(x1) + ··· + ϕn(xn) = Max!<br />

h1(x1) + ··· + hn(xn) b<br />

⎩<br />

x1,...,xn 0 heltal<br />

hvor hs voksende <strong>og</strong> b ∈ N0. Dette problem kan løses ved at indføre følgende<br />

g1(λ) = max<br />

0x1[ξ1] {ϕ1(x1)}<br />

gs(λ) = max<br />

0xs[ξs] {gs−1(λ − hs(xs)) + ϕs(xs)} (s = 2,...,n)<br />

hvor λ ∈ {0,...,b} <strong>og</strong> ξs er løsningen til ligningen hs(ξs) = λ.<br />

Lad x ◦ s (λ) betegne værdien/værdierne af xs der realiserer maksimum gs(λ).<br />

Max-værdien for (∗) er da gn(b) <strong>og</strong> max-punktet/punkterne x ◦ er:<br />

Dias 6/36 — Henrik Holm (IGM) — <strong>Dynamisk</strong> <strong>pr<strong>og</strong>rammering</strong> <strong>II</strong> — 31. marts 2011<br />

x ◦ n = x ◦ n (b)<br />

x ◦ n−1 = x◦ n−1 (b − hn(x ◦ n ))<br />

.<br />

x ◦ 1 = x ◦ 1 (b − hn(x ◦ n ) − ··· − h2(x ◦ 2 ))<br />

Eksempel: Lineær bibetingelse 2/8<br />

S˚aledes fremkommer følgende tabel for (g1,x ◦ 1 ):<br />

Dias 8/36 — Henrik Holm (IGM) — <strong>Dynamisk</strong> <strong>pr<strong>og</strong>rammering</strong> <strong>II</strong> — 31. marts 2011<br />

λ g1(λ) x ◦ 1 (λ)<br />

[0,3] 0 0<br />

[4,7] 1 1<br />

[8,11] 8 2<br />

[12,15] 27 3<br />

[16,19] 64 4<br />

[20,23] 125 5<br />

[24,27] 216 6<br />

[28,31] 343 7<br />

[32,33] 512 8<br />

(∗)


Eksempel: Lineær bibetingelse 3/8<br />

Dernæst har vi ξ2 = λ <strong>og</strong> dermed:<br />

g2(λ) = max {g1(λ − x2) + x2}.<br />

0x2[λ]<br />

Eksempelvis er:<br />

⎧<br />

⎫<br />

g1(8) + 0 = 8 + 0 = 8<br />

g1(7) + 1 = 1 + 1 = 2<br />

g1(6) + 2 = 1 + 2 = 3<br />

⎪⎨ g1(5) + 3 = 1 + 3 = 4⎪⎬<br />

g2(8) = max g1(4) + 4 = 1 + 4 = 5 = 8,<br />

g1(3) + 5 = 0 + 5 = 5<br />

g1(2) + 6 = 0 + 6 = 6<br />

⎪⎩<br />

g1(1) + 7 = 0 + 7 = 7⎪⎭<br />

g1(0) + 8 = 0 + 8 = 8<br />

<strong>og</strong> vi noterer at x ◦ 2 (8) = 0 eller x◦ 2 (8) = 8.<br />

Dias 9/36 — Henrik Holm (IGM) — <strong>Dynamisk</strong> <strong>pr<strong>og</strong>rammering</strong> <strong>II</strong> — 31. marts 2011<br />

Eksempel: Lineær bibetingelse 5/8<br />

Endelig haves 2ξ3 = λ dvs. ξ3 = λ 2<br />

<strong>og</strong> dermed:<br />

g3(λ) = max<br />

0x3[ λ 2 ] {g2(λ − 2x3) + 2x 2 3 }.<br />

Eksempelvis er:<br />

⎧<br />

g2(11) + 2·0<br />

⎪⎨<br />

g3(11) = max<br />

⎪⎩<br />

2 = 11 + 0 = 11<br />

g2(9) + 2·1 2 = 9 + 2 = 11<br />

g2(7) + 2·2 2 = 7 + 8 = 15<br />

g2(5) + 2·3 2 = 5 + 18 = 23<br />

g2(3) + 2·4 2 = 3 + 32 = 35<br />

g2(1) + 2·5 2 ⎫<br />

⎪⎬<br />

= 51,<br />

⎪⎭<br />

= 1 + 50 = 51<br />

<strong>og</strong> vi noterer at x ◦ 3 (11) = 5.<br />

Dias 11/36 — Henrik Holm (IGM) — <strong>Dynamisk</strong> <strong>pr<strong>og</strong>rammering</strong> <strong>II</strong> — 31. marts 2011<br />

Eksempel: Lineær bibetingelse 4/8<br />

S˚aledes fremkommer følgende tabel for (g2,x ◦ 2 ):<br />

λ g2(λ) x ◦ 2 (λ) λ g2(λ) x ◦ 2 (λ) λ g2(λ) x ◦ 2 (λ)<br />

0 0 0 12 27 0 24 216 0<br />

1 1 1 13 28 1 25 217 1<br />

2 2 2 14 29 2 26 218 2<br />

3 3 3 15 30 3 27 219 3<br />

4 4 4 16 64 0 28 343 0<br />

5 5 5 17 65 1 29 344 1<br />

6 6 6 18 66 2 30 345 2<br />

7 7 7 19 67 3 31 346 3<br />

8 8 0,8 20 125 0 32 512 0<br />

9 9 1,9 21 126 1 33 513 1<br />

10 10 2,10 22 127 2<br />

11 11 3,11 23 128 3<br />

Dias 10/36 — Henrik Holm (IGM) — <strong>Dynamisk</strong> <strong>pr<strong>og</strong>rammering</strong> <strong>II</strong> — 31. marts 2011<br />

Eksempel: Lineær bibetingelse 6/8<br />

S˚aledes fremkommer følgende tabel for (g3,x ◦ 3 ):<br />

λ g3(λ) x ◦ 3 (λ) λ g3(λ) x ◦ 3 (λ) λ g3(λ) x ◦ 3 (λ)<br />

0 0 0 12 72 6 24 288 12<br />

1 1 0 13 73 6 25 289 12<br />

2 2 0,1 14 98 7 26 338 13<br />

3 3 0,1 15 99 7 27 339 13<br />

4 8 2 16 128 8 28 392 14<br />

5 9 2 17 129 8 29 393 14<br />

6 18 3 18 162 9 30 450 15<br />

7 19 3 19 163 9 31 451 15<br />

8 32 4 20 200 10 32 512 0,16<br />

9 33 4 21 201 10 33 513 0,16<br />

10 50 5 22 242 11<br />

11 51 5 23 243 11<br />

Dias 12/36 — Henrik Holm (IGM) — <strong>Dynamisk</strong> <strong>pr<strong>og</strong>rammering</strong> <strong>II</strong> — 31. marts 2011


Eksempel: Lineær bibetingelse 7/8<br />

Fra forrige tabel er vi egentlig kun interesseret i tallet:<br />

g3(33) = 513,<br />

(33) = 0<br />

(33) = 16 findes de to maksimumspunkter for problemet nu s˚aledes:<br />

da dette jo er maksimumsværdien for det givne problem. Ud fra x ◦ 3<br />

eller x ◦ 3<br />

Vi gør prøve:<br />

Dias 13/36 — Henrik Holm (IGM) — <strong>Dynamisk</strong> <strong>pr<strong>og</strong>rammering</strong> <strong>II</strong> — 31. marts 2011<br />

x ◦ 3 (33) = 0 x◦ 3<br />

x ◦ 2 (33−2·0) = 1 x◦ 2<br />

x ◦ 1 (33−2·0−1) = 8 x◦ 1<br />

(33) = 16<br />

(33−2·16) = 1<br />

(33−2·16−1) = 0<br />

Q(8,1,0) = 8 3 +1+2·0 2 = 513,<br />

Q(0,1,16) = 0 3 +1+2·16 2 = 513.<br />

N˚ar heltalsproblemer løses ved dynamisk <strong>pr<strong>og</strong>rammering</strong> er udarbejdelsen<br />

af tabellerne for (g1,x ◦ 1 ),(g2,x ◦ 2 ),... ingen faglig udfordring – kun besværligt.<br />

R-funktionen DynTable (fra kursushjemmesiden) kan lette arbejdet:<br />

⎧<br />

⎨ Q(x1,x2,x3) = x<br />

⎩<br />

3 1 + x2 + 2x 2 3 = Max!<br />

4x1 + x2 + 2x3 33<br />

x1,x2,x3 0 heltal<br />

Først indtastes problemets data:<br />

> phi1 phi2 phi3 phi h1 h2 h3 h b DynTable(phi,h,b,"+",1)<br />

[,1] [,2] [,3]<br />

[1,] 0 0 0<br />

[2,] 1 0 0<br />

[3,] 2 0 0<br />

[4,] 3 0 0<br />

[5,] 4 1 1<br />

[6,] 5 1 1<br />

[7,] 6 1 1<br />

[8,] 7 1 1<br />

[9,] 8 8 2<br />

...<br />

[28,] 27 216 6<br />

[29,] 28 343 7<br />

[30,] 29 343 7<br />

[31,] 30 343 7<br />

[32,] 31 343 7<br />

[33,] 32 512 8<br />

[34,] 33 512 8<br />

Dias 16/36 — Henrik Holm (IGM) — <strong>Dynamisk</strong> <strong>pr<strong>og</strong>rammering</strong> <strong>II</strong> — 31. marts 2011


Tabellen for (g2,x ◦ 2 ) frembringes af DynTable s˚aledes:<br />

> DynTable(phi,h,b,"+",2)<br />

[,1] [,2] [,3] [,4]<br />

[1,] 0 0 0 -1<br />

[2,] 1 1 1 -1<br />

[3,] 2 2 2 -1<br />

[4,] 3 3 3 -1<br />

[5,] 4 4 4 -1<br />

[6,] 5 5 5 -1<br />

[7,] 6 6 6 -1<br />

[8,] 7 7 7 -1<br />

[9,] 8 8 0 8<br />

[10,] 9 9 1 9<br />

[11,] 10 10 2 10<br />

[12,] 11 11 3 11<br />

[13,] 12 27 0 -1<br />

...<br />

[32,] 31 346 3 -1<br />

[33,] 32 512 0 -1<br />

[34,] 33 513 1 -1<br />

Dias 17/36 — Henrik Holm (IGM) — <strong>Dynamisk</strong> <strong>pr<strong>og</strong>rammering</strong> <strong>II</strong> — 31. marts 2011<br />

Eksempel: Ikke-lineær bibetingelse 1/2<br />

⎧<br />

⎨ Q(x1,x2) = 8x1 + 3x2 = Max!<br />

4x<br />

⎩<br />

2 1 + x 2 2 25<br />

x1,x2 0 heltal<br />

Først bestemmes ξ1 ved:<br />

Vi betragter s˚a funktionen:<br />

Man finder:<br />

Dias 19/36 — Henrik Holm (IGM) — <strong>Dynamisk</strong> <strong>pr<strong>og</strong>rammering</strong> <strong>II</strong> — 31. marts 2011<br />

4ξ 2 1 = λ ⇐⇒ ξ1 =<br />

g1(λ) = max<br />

0x1<br />

√<br />

λ<br />

2<br />

√ λ<br />

2<br />

{8x1}.<br />

λ g1(λ) x ◦ 1 (λ)<br />

[0,3] 0 0<br />

[4,15] 8 1<br />

[16,25] 16 2<br />

Tabellen for (g3,x ◦ 3 ) frembringes af DynTable s˚aledes:<br />

> DynTable(phi,h,b,"+",3)<br />

[,1] [,2] [,3] [,4]<br />

[1,] 0 0 0 -1<br />

[2,] 1 1 0 -1<br />

[3,] 2 2 0 1<br />

[4,] 3 3 0 1<br />

[5,] 4 8 2 -1<br />

[6,] 5 9 2 -1<br />

[7,] 6 18 3 -1<br />

[8,] 7 19 3 -1<br />

[9,] 8 32 4 -1<br />

[10,] 9 33 4 -1<br />

[11,] 10 50 5 -1<br />

[12,] 11 51 5 -1<br />

...<br />

[31,] 30 450 15 -1<br />

[32,] 31 451 15 -1<br />

[33,] 32 512 0 16<br />

[34,] 33 513 0 16<br />

Dias 18/36 — Henrik Holm (IGM) — <strong>Dynamisk</strong> <strong>pr<strong>og</strong>rammering</strong> <strong>II</strong> — 31. marts 2011<br />

Eksempel: Ikke-lineær bibetingelse 2/2<br />

Herefter bestemmes ξ2 ved:<br />

Vi betragter s˚a funktionen:<br />

ξ 2 2 = λ ⇐⇒ ξ2 = √ λ<br />

g2(λ) = max<br />

0x2[ √ {g1(λ − x<br />

λ]<br />

2 2 ) + 3x2}.<br />

Maksimumsværdien for problemet er:<br />

⎧<br />

⎫<br />

g1(25) + 3·0 = 16 + 0 = 16<br />

⎪⎨<br />

g1(24) + 3·1 = 16 + 3 = 19⎪⎬<br />

g1(21) + 3·2 = 16 + 6 = 22<br />

g2(25) = max<br />

= 25,<br />

g1(16) + 3·3 = 16 + 9 = 25<br />

⎪⎩<br />

g1(9) + 3·4 = 8 + 12 = 20⎪⎭<br />

g1(0) + 3·5 = 0 + 15 = 15<br />

<strong>og</strong> vi noterer at x ◦ 2 (25) = 3. Maksimumspunktet er derfor:<br />

Alts˚a:<br />

Dias 20/36 — Henrik Holm (IGM) — <strong>Dynamisk</strong> <strong>pr<strong>og</strong>rammering</strong> <strong>II</strong> — 31. marts 2011<br />

x ◦ 2 (25) = 3<br />

x ◦ 1 (25 − 32 ) = 2<br />

Q(2,3) = 8·2+3·3 = 25 = Max!


Kompleksitetsbetragtninger<br />

Lad os fx betragte problemet:<br />

⎧<br />

⎨ Q(x1,...,xn) = ϕ1(x1) + ··· + ϕn(xn) = Max!<br />

x1 + ··· + xn b<br />

⎩<br />

x1,...,xn 0 heltal<br />

Der er (binomialkefficient) n+b<br />

b<br />

Dias 21/36 — Henrik Holm (IGM) — <strong>Dynamisk</strong> <strong>pr<strong>og</strong>rammering</strong> <strong>II</strong> — 31. marts 2011<br />

6<br />

5<br />

4<br />

3<br />

2<br />

1<br />

0<br />

*<br />

*<br />

*<br />

*<br />

*<br />

*<br />

*<br />

x 2<br />

*<br />

*<br />

x 1 + x2 = 5<br />

*<br />

*<br />

*<br />

*<br />

*<br />

2+5<br />

tilladte punkter. Eksempelvis er = 21.<br />

*<br />

*<br />

*<br />

*<br />

*<br />

*<br />

*<br />

*<br />

*<br />

*<br />

*<br />

*<br />

*<br />

*<br />

0 1 2 3 4 5 6<br />

Kompleksitet ved dynamisk <strong>pr<strong>og</strong>rammering</strong>.<br />

• Der kræves λ binære operationer for udregning af<br />

g1(λ) = max<br />

0x1λ {ϕ1(x1)}.<br />

Udregning af første tabel g1(0),...,g1(b) har alts˚a kompleksitet:<br />

0 + 1 + ··· + b = 1<br />

b(b + 1).<br />

2<br />

• Der kræves (λ+1)+λ = 2λ+1 binære operationer for udregning af<br />

gs(λ) = max<br />

0xsλ {gs−1(λ − xs) + ϕs(xs)}.<br />

Udregning af den s’te tabel gs(0),...,gs(b) har alts˚a kompleksitet:<br />

(2·0 +1) + (2·1+1) + ··· + (2b +1) = (b +1) 2 .<br />

• Udregning af de n −1 tabeller for g2,...,gn kræver s˚a (n − 1)(b + 1) 2 .<br />

Den samlede kompleksitet ved dynamisk <strong>pr<strong>og</strong>rammering</strong> er derfor:<br />

Dias 23/36 — Henrik Holm (IGM) — <strong>Dynamisk</strong> <strong>pr<strong>og</strong>rammering</strong> <strong>II</strong> — 31. marts 2011<br />

cdynamisk(b,n) = 1<br />

2 b(b + 1) + (n − 1)(b + 1)2 .<br />

*<br />

*<br />

*<br />

*<br />

*<br />

*<br />

*<br />

*<br />

*<br />

*<br />

*<br />

*<br />

*<br />

*<br />

*<br />

*<br />

*<br />

*<br />

*<br />

*<br />

x 1<br />

*<br />

5<br />

Kompleksitet ved naiv løsning.<br />

⎧<br />

⎨ Q(x1,...,xn) = ϕ1(x1) + ··· + ϕn(xn) = Max!<br />

x1 + ··· + xn b<br />

⎩<br />

x1,...,xn 0 heltal<br />

• Udregn Q(x) = ϕ1(x1) + ··· + ϕn(xn) i samtlige n+b<br />

tilladte punkter.<br />

b<br />

Kompleksitet: (n − 1) n+b<br />

. b<br />

• Udtag blandt de n+b<br />

beregnede funktionsværdier den største.<br />

b n+b<br />

Kompleksitet: − 1.<br />

b<br />

Den samlede kompleksitet ved naiv løsning er derfor:<br />

<br />

n + b n + b<br />

n + b<br />

cnaiv(b,n) = (n − 1) + − 1 = n − 1.<br />

b b<br />

b<br />

Dias 22/36 — Henrik Holm (IGM) — <strong>Dynamisk</strong> <strong>pr<strong>og</strong>rammering</strong> <strong>II</strong> — 31. marts 2011<br />

(b,n) cnaiv(b,n) cdynamisk(b,n)<br />

(50,5) 17393804 11679<br />

(100,5) 482803229 45854<br />

(50,20) 10 18<br />

50694<br />

(100,20) 10 23<br />

198869<br />

(50,40) 10 27<br />

102714<br />

(100,40) 10 36<br />

402889<br />

Hvis 1000000 IBM Roadrunners (hver 10 15 FLOPS) samarbejdede om den<br />

naive løsning for b = 100 <strong>og</strong> n = 40, ville tidsforbruget være:<br />

10 36<br />

1000000 · 10 15 sek −1 = 1015 sek ≈ 32 millioner ˚ar.<br />

Hvis en lommeregner (10 FLOPS) løste samme problem med dynamisk<br />

<strong>pr<strong>og</strong>rammering</strong> ville tidsforbruget være:<br />

Dias 24/36 — Henrik Holm (IGM) — <strong>Dynamisk</strong> <strong>pr<strong>og</strong>rammering</strong> <strong>II</strong> — 31. marts 2011<br />

402889<br />

= 40289sek ≈ 11 timer.<br />

−1<br />

10sek<br />

(∗)


Markov-beslutningsprocesser<br />

En Markov-beslutningsproces best˚ar af følgende data:<br />

1 Et system der kan være i N tilstande S1,...,SN.<br />

Systemet ændrer tilstand over tid.<br />

En fabrikants markedsandel kan hvert ˚ar være:<br />

S1: Høj ( 10%)<br />

S2: Lav (< 10%)<br />

2 I hver tilstand Si kan der foretages valgene ki = 1,...,Ki.<br />

Hvis markedsandelen er høj (S1) kan fabrikanten vælge:<br />

Valg k1 = 1: En dyr reklamekampagne ( 50000 kr)<br />

Valg k1 = 2: En billig reklamekampagne (< 50000 kr)<br />

Hvis markedsandelen er lav (S2) kan fabrikanten vælge:<br />

Valg k2 = 1: En dyr markedsanalyse ( 10000 kr)<br />

Valg k2 = 2: En billig markedsanalyse (< 10000 kr)<br />

Ved en strategi forst˚as et fast valg af værdierne (k1,...,kN).<br />

Dias 25/36 — Henrik Holm (IGM) — <strong>Dynamisk</strong> <strong>pr<strong>og</strong>rammering</strong> <strong>II</strong> — 31. marts 2011<br />

4 Ved overgang af systemet fra tilstand Si til Sj er der, under valget ki, en<br />

vis fortjeneste r ki<br />

ij .<br />

N˚ar markedsandelen er høj (S1) haves indtægterne:<br />

(r 1 11,r 1 12) = (80,40) <strong>og</strong> (r 2 11,r 2 12) = (100,60)<br />

Hvis markedsandelen faktisk <strong>og</strong>s˚a bliver høj ˚aret efter, <strong>og</strong> man havde satset<br />

p˚a en dyr/billig reklamekampagne, da tjenes 80/100.<br />

N˚ar markedsandelen er lav (S2) haves indtægterne:<br />

(r 1 21,r 1 22) = (40,10) <strong>og</strong> (r 2 21,r 2 22) = (60,21)<br />

Hvis markedsandelen faktisk g˚ar hen <strong>og</strong> bliver høj ˚aret efter, <strong>og</strong> man havde<br />

satset p˚a en dyr/billig markedsanalyse, da tjenes 40/60.<br />

Markov-beslutningsprocessen i eksemplet indeholder alts˚a følgende data:<br />

Dias 27/36 — Henrik Holm (IGM) — <strong>Dynamisk</strong> <strong>pr<strong>og</strong>rammering</strong> <strong>II</strong> — 31. marts 2011<br />

Tilstand Valg p k ij r k<br />

ij<br />

i k j = 1 j = 2 j = 1 j = 2<br />

1<br />

2<br />

1 0.7 0.3 80 40<br />

2 0.5 0.5 100 60<br />

1 0.6 0.4 40 10<br />

2 0.33 0.67 60 21<br />

3 Hvis der i tilstand Si foretages valget ki ∈ {1,...,Ki}, s˚a skifter<br />

systemet til tilstand Sj med sandynlighed p ki<br />

ij .<br />

N˚ar markedsandelen er høj (S1) haves sandsynlighederne:<br />

(p 1 11,p 1 12) = (0.7,0.3) <strong>og</strong> (p 2 11,p 2 12) = (0.5,0.5)<br />

Hvis der fx laves en dyr/billig reklamekampagne da er der 70/50%<br />

sandsynlighed for, at markedsandelen <strong>og</strong>s˚a vil være høj næste ˚ar.<br />

N˚ar markedsandelen er lav (S2) haves sandsynlighederne:<br />

(p 1 21,p 1 22) = (0.6,0.4) <strong>og</strong> (p 2 21,p 2 22) = (0.33,0.67)<br />

Hvis der fx laves en dyr/billig markedsanalyse, da er der 60/33%<br />

sandsynlighed for, at markedsandelen vil blive høj næste ˚ar.<br />

Dias 26/36 — Henrik Holm (IGM) — <strong>Dynamisk</strong> <strong>pr<strong>og</strong>rammering</strong> <strong>II</strong> — 31. marts 2011<br />

Givet en strategi (k1,...,kN) er man interesseret i at kende:<br />

v (k1,...,kN<br />

⎧<br />

⎨ Den forventede indtægt over en n-˚ars periode<br />

)<br />

i (n) = hvis systemet som udgangspunkt er i tilstand Si<br />

⎩<br />

<strong>og</strong> man konsekvent følger strategien (k1,...,kN).<br />

Systemet skifter efter første ˚ar tilstand til Sj med sandsynlighed p ki<br />

ij , <strong>og</strong> hvis<br />

dette sker da m˚a den forventede indtægt være:<br />

r ki<br />

ij + v (k1,...,kN )<br />

j<br />

(n − 1).<br />

Størrelsen v (k1,...,kN )<br />

i (n) beregnes derfor som følgende vægtede gennemsnit:<br />

v (k1,...,kN )<br />

i<br />

Her er v (k1,...,kN )<br />

i (0) = 0.<br />

Dias 28/36 — Henrik Holm (IGM) — <strong>Dynamisk</strong> <strong>pr<strong>og</strong>rammering</strong> <strong>II</strong> — 31. marts 2011<br />

(n) =<br />

N<br />

∑<br />

j=1<br />

p ki ki<br />

ij (r<br />

ij + v (k1,...,kN )<br />

j<br />

(n − 1))


Hvis vi indfører:<br />

v (k1,...,kN<br />

⎛<br />

v<br />

⎜<br />

)<br />

(n) = ⎜<br />

⎝<br />

(k1,...,kN )<br />

1 (n)<br />

v (k1,...,kN )<br />

2 (n)<br />

.<br />

v (k1,...,kN<br />

⎞<br />

⎟<br />

⎠<br />

)<br />

N (n)<br />

⎛ ⎞ ⎛<br />

q k1<br />

1<br />

q k2<br />

2<br />

q (k1,...,kN<br />

⎜ ⎟<br />

) ⎜ ⎟<br />

= ⎜ . ⎟<br />

⎝ . ⎠ =<br />

⎜<br />

⎝<br />

⎛<br />

q kN<br />

N<br />

p k1<br />

11<br />

p k2<br />

21<br />

P (k1,...,kN<br />

⎜<br />

) ⎜<br />

= ⎜ .<br />

⎝ .<br />

p kN<br />

N1<br />

da f˚as alts˚a sammenhængen:<br />

Dias 29/36 — Henrik Holm (IGM) — <strong>Dynamisk</strong> <strong>pr<strong>og</strong>rammering</strong> <strong>II</strong> — 31. marts 2011<br />

p k1<br />

11<br />

p k2<br />

21<br />

k1 r11 k2 r21 p kN kN<br />

N1rN1 + pk1<br />

12<br />

+ pk2<br />

22<br />

p k1<br />

12 ··· p k1<br />

1N<br />

p k2<br />

22 ··· p k2<br />

2N<br />

.<br />

. ..<br />

p kN<br />

N2 ··· p kN<br />

NN<br />

k1 r12 k2 r22 kN + pkN<br />

N2rN2 ⎞<br />

⎟<br />

. ⎟<br />

. ⎠<br />

k1 ⎞<br />

+ ··· + pk1<br />

1Nr1N k2<br />

+ ··· + pk2<br />

2Nr ⎟<br />

2N ⎟<br />

.<br />

⎟<br />

.<br />

⎠<br />

kN<br />

+ ··· + pkN<br />

NNrNN v (k1,...,kN ) (n) = q (k1,...,kN ) + P (k1,...,kN ) v (k1,...,kN ) (n − 1)<br />

Man kan fx nu succesivt udregne:<br />

v (1,1) <br />

0<br />

(0) =<br />

0<br />

v (1,1) <br />

68 0.7 0.3 0 68<br />

(1) = +<br />

=<br />

28 0.6 0.4 0 28<br />

v (1,1) <br />

68 0.7 0.3 68 124<br />

(2) = +<br />

=<br />

28 0.6 0.4 28 80<br />

v (1,1) <br />

68 0.7 0.3 124 179<br />

(3) = +<br />

=<br />

28 0.6 0.4 80 134<br />

Dias 31/36 — Henrik Holm (IGM) — <strong>Dynamisk</strong> <strong>pr<strong>og</strong>rammering</strong> <strong>II</strong> — 31. marts 2011<br />

.<br />

For strategien (k1,k2) = (1,1) (dvs. man vælger konsekvent den dyreste<br />

reklamekampagne <strong>og</strong> den dyreste markedsanalyse) f˚as:<br />

v (1,1) <br />

v<br />

(n) =<br />

(1,1)<br />

1 (n)<br />

v (1,1)<br />

<br />

2 (n)<br />

q (1,1) <br />

1<br />

q1 =<br />

q 1 <br />

1<br />

p11r =<br />

2<br />

1 11 + p1 12r 1 12<br />

p 1 21r 1 21 + p1 22r 1 <br />

=<br />

22<br />

P (1,1) <br />

1<br />

p11 p<br />

=<br />

1 <br />

12 0.7 0.3<br />

=<br />

0.6 0.4<br />

p 1 21<br />

p 1 22<br />

Dias 30/36 — Henrik Holm (IGM) — <strong>Dynamisk</strong> <strong>pr<strong>og</strong>rammering</strong> <strong>II</strong> — 31. marts 2011<br />

<br />

0.7 · 80 + 0.3 · 40<br />

=<br />

0.6 · 40 + 0.4 · 10<br />

Tilstand Valg p k ij r k<br />

ij q k i k j = 1 j = 2 j = 1 j = 2<br />

i<br />

1<br />

1<br />

2<br />

0.7<br />

0.5<br />

0.3<br />

0.5<br />

80<br />

100<br />

40<br />

60<br />

68<br />

80<br />

2<br />

1<br />

2<br />

0.6<br />

0.33<br />

0.4<br />

0.67<br />

40<br />

60<br />

10<br />

21<br />

28<br />

34<br />

Gevinsten g (k1,...,kN ) for strategien (k1,...,kN) er den asymptotiske<br />

gennemsnitlige ˚arlige indtægt – som faktisk er uafhængig af i – alts˚a:<br />

1<br />

n v (k1,...,kN )<br />

i (n) → g (k1,...,kN )<br />

for n → ∞<br />

For strategien (k1,k2) = (1,1) finder vi:<br />

1<br />

10 v (1,1) (10) = 1<br />

<br />

561 56.1<br />

=<br />

10 517 51.7<br />

1<br />

100 v (1,1) (100) = 1<br />

<br />

5481 54.8<br />

=<br />

100 5437 54.4<br />

1<br />

1000 v (1,1) (1000) = 1<br />

<br />

54681 54.7<br />

=<br />

1000 54637 54.6<br />

1<br />

10000 v (1,1) (10000) = 1<br />

<br />

546681 54.7<br />

=<br />

10000 546637 54.7<br />

Gevinsten for denne strategi er alts˚a g (1,1) = 54.7 (kr/˚ar i gennemsnit).<br />

Dias 32/36 — Henrik Holm (IGM) — <strong>Dynamisk</strong> <strong>pr<strong>og</strong>rammering</strong> <strong>II</strong> — 31. marts 2011<br />

<br />

68<br />

28


Vi kan p˚a denne m˚ade udregne gevinsten for alle fire mulige strategier:<br />

g (1,1) = 54.7<br />

g (1,2) = 51.9<br />

g (2,1) = 56.4 <br />

g (2,2) = 52.4<br />

Den optimale strategi er alts˚a (2,1), dvs.<br />

• N˚ar markedsandelen er høj skal man lave billig reklamekampagne<br />

• N˚ar markedsandelen er lav skal man lave dyr markedsanalyse<br />

Denne metode til at finde den optimale strategi kræver mange beregninger.<br />

<strong>Dynamisk</strong> <strong>pr<strong>og</strong>rammering</strong> giver det bedste alternativ...<br />

Dias 33/36 — Henrik Holm (IGM) — <strong>Dynamisk</strong> <strong>pr<strong>og</strong>rammering</strong> <strong>II</strong> — 31. marts 2011<br />

Eksempel: Howards metode 1/2<br />

Af værdierne nedenfor ses, at vi starter med strategien (k1,k2) = (2,2).<br />

Tilstand Valg p k ij r k<br />

ij q k i k j = 1 j = 2 j = 1 j = 2<br />

i<br />

1<br />

1<br />

2<br />

0.7<br />

0.5<br />

0.3<br />

0.5<br />

80<br />

100<br />

40<br />

60<br />

68<br />

80<br />

2<br />

1<br />

2<br />

0.6<br />

0.33<br />

0.4<br />

0.67<br />

40<br />

60<br />

10<br />

21<br />

28<br />

34<br />

S˚a sættes u2 = 0 <strong>og</strong> vi løser ligningen:<br />

<br />

g 1 − 0.5 −0.5 u1 80<br />

+<br />

=<br />

g −0.33 1 − 0.67<br />

34<br />

Ud fra disse værdier beregnes:<br />

<br />

¯q 1<br />

1<br />

¯q 2 <br />

68 0.7 0.3<br />

= +<br />

1 80 0.5 0.5<br />

<br />

¯q 1<br />

2 28 0.6 0.4<br />

= +<br />

34 0.33 0.76<br />

¯q 2 2<br />

u2<br />

u1<br />

u2<br />

<br />

u1<br />

Det nye valg af strategi er derfor (k1,k2) = (2,1).<br />

Dias 35/36 — Henrik Holm (IGM) — <strong>Dynamisk</strong> <strong>pr<strong>og</strong>rammering</strong> <strong>II</strong> — 31. marts 2011<br />

=⇒<br />

⎧<br />

⎨<br />

⎩<br />

<br />

106.64<br />

=<br />

107.60<br />

<br />

61.12<br />

=<br />

52.40<br />

u2<br />

g = 52.4<br />

u1 = 55.2<br />

u2 = 0<br />

Howards metode til bestemmelse af optimal strategi<br />

1 Vælg for hver tilstand i værdien ki s˚a q k1<br />

i er størst blandt q1 i ,q2 i ,...<br />

2 Med disse værdier (k1,...,kN) løses nu ligningerne<br />

⎛ ⎞<br />

g<br />

⎜ . ⎟<br />

⎝ . ⎠ + (I − P<br />

g<br />

(k1,...,kN<br />

⎛<br />

) ⎜<br />

) ⎝<br />

u1<br />

.<br />

uN<br />

for g <strong>og</strong> u1,...,uN idet man sætter uN = 0.<br />

3 Vælg for hver tilstand i værdien ki s˚a ¯q ki<br />

i<br />

størst blandt<br />

⎞<br />

⎟<br />

⎠ = q (k1,...,kN )<br />

= qki<br />

i<br />

¯q 1 i = q 1 i + p 1 i1 u1 + ··· + p 1 iN uN<br />

¯q 2 i = q 2 i + p 2 i1 u1 + ··· + p 2 iN uN<br />

.<br />

G˚a nu tilbage til 2 med de nye værdier (k1,...,kN).<br />

+ pki<br />

i1 u1 + ··· + p ki<br />

iN uN er<br />

Algoritmen slutter første gang værdierne (k1,...,kN) ikke ændrer sig. Dette<br />

er den optimale strategi.<br />

Dias 34/36 — Henrik Holm (IGM) — <strong>Dynamisk</strong> <strong>pr<strong>og</strong>rammering</strong> <strong>II</strong> — 31. marts 2011<br />

Eksempel: Howards metode 2/2<br />

Vi kører algoritmen videre med strategien (k1,k2) = (2,1).<br />

Tilstand Valg p k ij r k<br />

ij q k i k j = 1 j = 2 j = 1 j = 2<br />

i<br />

1<br />

1<br />

2<br />

0.7<br />

0.5<br />

0.3<br />

0.5<br />

80<br />

100<br />

40<br />

60<br />

68<br />

80<br />

2<br />

1<br />

2<br />

0.6<br />

0.33<br />

0.4<br />

0.67<br />

40<br />

60<br />

10<br />

21<br />

28<br />

34<br />

S˚a sættes u2 = 0 <strong>og</strong> vi løser ligningen:<br />

<br />

g 1 − 0.5 −0.5 u1 80<br />

+<br />

=<br />

g −0.6 1 − 0.4<br />

28<br />

Ud fra disse værdier beregnes:<br />

<br />

¯q 1<br />

1<br />

¯q 2 <br />

68 0.7 0.3<br />

= +<br />

1 80 0.5 0.5<br />

<br />

¯q 1<br />

2 28 0.6 0.4<br />

= +<br />

34 0.33 0.76<br />

¯q 2 2<br />

u2<br />

u1<br />

u2<br />

<br />

u1<br />

=⇒<br />

⎧<br />

⎨<br />

⎩<br />

<br />

101.09<br />

=<br />

103.63<br />

<br />

56.36<br />

=<br />

49.76<br />

u2<br />

g = 56.36<br />

u1 = 47.27<br />

u2 = 0<br />

Vi ledes til samme strategi som før: (k1,k2) = (2,1). Denne er alts˚a optimal!<br />

Dias 36/36 — Henrik Holm (IGM) — <strong>Dynamisk</strong> <strong>pr<strong>og</strong>rammering</strong> <strong>II</strong> — 31. marts 2011

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!