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

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 />

(∗)

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

Saved successfully!

Ooh no, something went wrong!