Dynamisk programmering II - Matematik og optimering
Dynamisk programmering II - Matematik og optimering
Dynamisk programmering II - Matematik og optimering
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
<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 />
(∗)