konstantin tretjakov ([email protected])kodu.ut.ee/~ahto/eio/2011.03.19/dp.pdf · linear program (~linear...
TRANSCRIPT
![Page 2: Konstantin Tretjakov (kt@ut.ee)kodu.ut.ee/~ahto/eio/2011.03.19/dp.pdf · Linear program (~linear plan) X ülesannet * 10 punkti + Y ülesannet * 5 punkti tingimustel X * 1tund + Y](https://reader031.vdocuments.site/reader031/viewer/2022022616/5ba31b8409d3f26f6e8d2fc8/html5/thumbnails/2.jpg)
Linear program (~linear plan)
X ülesannet * 10 punkti + Y ülesannet * 5 punkti
tingimustel
X * 1tund + Y * 0.5 tundi < 5 tundi
Nimetuse saladus
Vanasti kandis sõna „programmeerimine“ natuke
teistsugust tähendust:
19.03.2011 Dünaamiline Planeerimine 2
Linear programming
Etteantud lineaarse programmi optimaalse
lahenduse leidmine
![Page 3: Konstantin Tretjakov (kt@ut.ee)kodu.ut.ee/~ahto/eio/2011.03.19/dp.pdf · Linear program (~linear plan) X ülesannet * 10 punkti + Y ülesannet * 5 punkti tingimustel X * 1tund + Y](https://reader031.vdocuments.site/reader031/viewer/2022022616/5ba31b8409d3f26f6e8d2fc8/html5/thumbnails/3.jpg)
Quadratic program
X ülesannet * 10 punkti + Y ülesannet * 5 punkti
+ XY * 2 punkti
tingimustel
X * 1tund + Y * 0.5 tundi < 5 tundi
Nimetuse saladus
19.03.2011 Dünaamiline Planeerimine 3
Quadratic programming
Etteantud ruut-programmi optimaalse lahenduse
leidmine
![Page 4: Konstantin Tretjakov (kt@ut.ee)kodu.ut.ee/~ahto/eio/2011.03.19/dp.pdf · Linear program (~linear plan) X ülesannet * 10 punkti + Y ülesannet * 5 punkti tingimustel X * 1tund + Y](https://reader031.vdocuments.site/reader031/viewer/2022022616/5ba31b8409d3f26f6e8d2fc8/html5/thumbnails/4.jpg)
Nimetuse saladus
19.03.2011 Dünaamiline Planeerimine 4
„Dynamic program“ (R. Bellman, 1950)
Otsus X1 päeval 1 * tulemused
+ Otsus X2 päeval 2 * tulemused
+ Otsus X3 päeval 3 * tulemused
…
tingimustel
…
Dynamic programming
Etteantud „dünaamilise programmile“ optimaalse
lahenduse leidmine
![Page 5: Konstantin Tretjakov (kt@ut.ee)kodu.ut.ee/~ahto/eio/2011.03.19/dp.pdf · Linear program (~linear plan) X ülesannet * 10 punkti + Y ülesannet * 5 punkti tingimustel X * 1tund + Y](https://reader031.vdocuments.site/reader031/viewer/2022022616/5ba31b8409d3f26f6e8d2fc8/html5/thumbnails/5.jpg)
Nimetuse saladus
Bellman pakus enda sõnastatud probleemi
lahendamiseks teatud arvutusliku meetodi.
See meetod osutus hiljem väga laialt kasutatud,
mitte ainult Bellmanni „dünaamilise
programmeerimise“ ülesande lahendamiseks.
… kuid nimi jäi samaks.
19.03.2011 Dünaamiline Planeerimine 5
![Page 6: Konstantin Tretjakov (kt@ut.ee)kodu.ut.ee/~ahto/eio/2011.03.19/dp.pdf · Linear program (~linear plan) X ülesannet * 10 punkti + Y ülesannet * 5 punkti tingimustel X * 1tund + Y](https://reader031.vdocuments.site/reader031/viewer/2022022616/5ba31b8409d3f26f6e8d2fc8/html5/thumbnails/6.jpg)
Arvutusprobleemide lahendamine
Täisläbivaatus
19.03.2011 Dünaamiline Planeerimine 6
![Page 7: Konstantin Tretjakov (kt@ut.ee)kodu.ut.ee/~ahto/eio/2011.03.19/dp.pdf · Linear program (~linear plan) X ülesannet * 10 punkti + Y ülesannet * 5 punkti tingimustel X * 1tund + Y](https://reader031.vdocuments.site/reader031/viewer/2022022616/5ba31b8409d3f26f6e8d2fc8/html5/thumbnails/7.jpg)
Arvutusprobleemide lahendamine
Täisläbivaatus
19.03.2011 Dünaamiline Planeerimine 7
ABCD ACBD ABDC
ACDB
BACD BCDA BADC
BCAD
ADBC CABD
ADCB
CADB
BDAC
CBAD
BDCA
CBDA
CDAB
DCBA
CDBA
DCAB
DABC
DBAC
DACB DBCA
![Page 8: Konstantin Tretjakov (kt@ut.ee)kodu.ut.ee/~ahto/eio/2011.03.19/dp.pdf · Linear program (~linear plan) X ülesannet * 10 punkti + Y ülesannet * 5 punkti tingimustel X * 1tund + Y](https://reader031.vdocuments.site/reader031/viewer/2022022616/5ba31b8409d3f26f6e8d2fc8/html5/thumbnails/8.jpg)
Arvutusprobleemide lahendamine
Täisläbivaatus
19.03.2011 Dünaamiline Planeerimine 8
ABCD ACBD ABDC
ACDB
BACD BCDA BADC
BCAD
ADBC CABD
ADCB
CADB
BDAC
CBAD
BDCA
CBDA
CDAB
DCBA
CDBA
DCAB
DABC
DBAC
DACB DBCA
![Page 9: Konstantin Tretjakov (kt@ut.ee)kodu.ut.ee/~ahto/eio/2011.03.19/dp.pdf · Linear program (~linear plan) X ülesannet * 10 punkti + Y ülesannet * 5 punkti tingimustel X * 1tund + Y](https://reader031.vdocuments.site/reader031/viewer/2022022616/5ba31b8409d3f26f6e8d2fc8/html5/thumbnails/9.jpg)
Arvutusprobleemide lahendamine
Iteratiivne parandamine
Alustame suvalisest seisundist,
Kui ta pole optimaalne
(näiteks, leidub kaks kõrvutiasetsevat tähte vales
järjekorras)
Parandame natuke (vahetame tähed omavahel)
Kordame senikuni lahendus on optimaalne
19.03.2011 Dünaamiline Planeerimine 9
BDCA
BDCA
BCDA
Bubble sort
![Page 10: Konstantin Tretjakov (kt@ut.ee)kodu.ut.ee/~ahto/eio/2011.03.19/dp.pdf · Linear program (~linear plan) X ülesannet * 10 punkti + Y ülesannet * 5 punkti tingimustel X * 1tund + Y](https://reader031.vdocuments.site/reader031/viewer/2022022616/5ba31b8409d3f26f6e8d2fc8/html5/thumbnails/10.jpg)
Arvutusprobleemide lahendamine
Ahne algoritm
Leiame minimaalse väärtusega tähe ja paigutame
algusesse.
Jätkame rekursiivselt ülejäänutega
19.03.2011 Dünaamiline Planeerimine 10
Selection sort
![Page 11: Konstantin Tretjakov (kt@ut.ee)kodu.ut.ee/~ahto/eio/2011.03.19/dp.pdf · Linear program (~linear plan) X ülesannet * 10 punkti + Y ülesannet * 5 punkti tingimustel X * 1tund + Y](https://reader031.vdocuments.site/reader031/viewer/2022022616/5ba31b8409d3f26f6e8d2fc8/html5/thumbnails/11.jpg)
Arvutusprobleemide lahendamine
Lihtsamateks ülesanneteks taandamine
„Jaga ja valitse“
„Ühe sammu võrra lihtsama ülesande lahendamine“
„Mitme natuke lihtsama ülesande lahendamine“
19.03.2011 Dünaamiline Planeerimine 11
![Page 12: Konstantin Tretjakov (kt@ut.ee)kodu.ut.ee/~ahto/eio/2011.03.19/dp.pdf · Linear program (~linear plan) X ülesannet * 10 punkti + Y ülesannet * 5 punkti tingimustel X * 1tund + Y](https://reader031.vdocuments.site/reader031/viewer/2022022616/5ba31b8409d3f26f6e8d2fc8/html5/thumbnails/12.jpg)
Arvutusprobleemide lahendamine
Lihtsamateks ülesanneteks taandamine
„Jaga ja valitse“
19.03.2011 Dünaamiline Planeerimine 12
BDCA BD
CA
BD
AC ABCD
Merge sort
![Page 13: Konstantin Tretjakov (kt@ut.ee)kodu.ut.ee/~ahto/eio/2011.03.19/dp.pdf · Linear program (~linear plan) X ülesannet * 10 punkti + Y ülesannet * 5 punkti tingimustel X * 1tund + Y](https://reader031.vdocuments.site/reader031/viewer/2022022616/5ba31b8409d3f26f6e8d2fc8/html5/thumbnails/13.jpg)
Arvutusprobleemide lahendamine
Lihtsamateks ülesanneteks taandamine
„Jaga ja valitse“
19.03.2011 Dünaamiline Planeerimine 13
BDCA BD
CA
BD
AC ABCD
BDCA BA
DC
AB
CD ABCD
Quicksort
![Page 14: Konstantin Tretjakov (kt@ut.ee)kodu.ut.ee/~ahto/eio/2011.03.19/dp.pdf · Linear program (~linear plan) X ülesannet * 10 punkti + Y ülesannet * 5 punkti tingimustel X * 1tund + Y](https://reader031.vdocuments.site/reader031/viewer/2022022616/5ba31b8409d3f26f6e8d2fc8/html5/thumbnails/14.jpg)
Arvutusprobleemide lahendamine
Lihtsamateks ülesanneteks taandamine
„Jaga ja valitse“
„Ühe sammu võrra lihtsama ülesande lahendamine“
19.03.2011 Dünaamiline Planeerimine 14
BDCA B DCA B ACD ABCD
Insertion sort
![Page 15: Konstantin Tretjakov (kt@ut.ee)kodu.ut.ee/~ahto/eio/2011.03.19/dp.pdf · Linear program (~linear plan) X ülesannet * 10 punkti + Y ülesannet * 5 punkti tingimustel X * 1tund + Y](https://reader031.vdocuments.site/reader031/viewer/2022022616/5ba31b8409d3f26f6e8d2fc8/html5/thumbnails/15.jpg)
Arvutusprobleemide lahendamine
Lihtsamateks ülesanneteks taandamine
„Jaga ja valitse“
„Ühe sammu võrra lihtsama ülesande lahendamine“
„Mitme natuke lihtsama ülesande lahendamine“
19.03.2011 Dünaamiline Planeerimine 15
BDCA BDC
DCA
BCD
ACD ABCD
(hüpoteetiline) sort
![Page 16: Konstantin Tretjakov (kt@ut.ee)kodu.ut.ee/~ahto/eio/2011.03.19/dp.pdf · Linear program (~linear plan) X ülesannet * 10 punkti + Y ülesannet * 5 punkti tingimustel X * 1tund + Y](https://reader031.vdocuments.site/reader031/viewer/2022022616/5ba31b8409d3f26f6e8d2fc8/html5/thumbnails/16.jpg)
Arvutusprobleemide lahendamine
Täisläbivaatus
Iteratiivne parandamine
Ahne algoritm
Lihtsamateks ülesanneteks taandamine
Jaga ja valitse
Ühe sammu võrra lihtsustamine
Mitme natuke lihtsama ülesande lahendamine
19.03.2011 Dünaamiline Planeerimine 16
O(n!)
O(n2)
O(n)
O(n log n)
O(n2)
?
![Page 17: Konstantin Tretjakov (kt@ut.ee)kodu.ut.ee/~ahto/eio/2011.03.19/dp.pdf · Linear program (~linear plan) X ülesannet * 10 punkti + Y ülesannet * 5 punkti tingimustel X * 1tund + Y](https://reader031.vdocuments.site/reader031/viewer/2022022616/5ba31b8409d3f26f6e8d2fc8/html5/thumbnails/17.jpg)
Arvutusprobleemide lahendamine
Täisläbivaatus
Iteratiivne parandamine
Ahne algoritm
Lihtsamateks ülesanneteks taandamine
Jaga ja valitse
Ühe sammu võrra lihtsustamine
Mitme natuke lihtsama ülesande lahendamine
19.03.2011 Dünaamiline Planeerimine 17
O(n!)
O(n2)
O(n)
O(n log n)
O(n2)
O(n2)
Dünaamiline planeerimine
![Page 18: Konstantin Tretjakov (kt@ut.ee)kodu.ut.ee/~ahto/eio/2011.03.19/dp.pdf · Linear program (~linear plan) X ülesannet * 10 punkti + Y ülesannet * 5 punkti tingimustel X * 1tund + Y](https://reader031.vdocuments.site/reader031/viewer/2022022616/5ba31b8409d3f26f6e8d2fc8/html5/thumbnails/18.jpg)
Longest Increasing Subsequence
Ülesanne: leida etteantud numbrite jadas
võimalikult pikk kasvav alamjada
19.03.2011 Dünaamiline Planeerimine 18
1 5 3 2 7 9 7 8 3
![Page 19: Konstantin Tretjakov (kt@ut.ee)kodu.ut.ee/~ahto/eio/2011.03.19/dp.pdf · Linear program (~linear plan) X ülesannet * 10 punkti + Y ülesannet * 5 punkti tingimustel X * 1tund + Y](https://reader031.vdocuments.site/reader031/viewer/2022022616/5ba31b8409d3f26f6e8d2fc8/html5/thumbnails/19.jpg)
Longest Increasing Subsequence
19.03.2011 Dünaamiline Planeerimine 19
LIS*(1 5 3 2 7 9 7 8)
![Page 20: Konstantin Tretjakov (kt@ut.ee)kodu.ut.ee/~ahto/eio/2011.03.19/dp.pdf · Linear program (~linear plan) X ülesannet * 10 punkti + Y ülesannet * 5 punkti tingimustel X * 1tund + Y](https://reader031.vdocuments.site/reader031/viewer/2022022616/5ba31b8409d3f26f6e8d2fc8/html5/thumbnails/20.jpg)
Longest Increasing Subsequence
19.03.2011 Dünaamiline Planeerimine 20
LIS*(1 5 3 2 7 9 7 8)
LIS*(1 5 3 2 7 9 7) + 1
LIS*(1 5 3 2 7) + 1
LIS*(1 5 3 2) + 1
LIS*(1 5 3) + 1
LIS*(1 5) + 1
LIS*(1) + 1
ma
x
![Page 21: Konstantin Tretjakov (kt@ut.ee)kodu.ut.ee/~ahto/eio/2011.03.19/dp.pdf · Linear program (~linear plan) X ülesannet * 10 punkti + Y ülesannet * 5 punkti tingimustel X * 1tund + Y](https://reader031.vdocuments.site/reader031/viewer/2022022616/5ba31b8409d3f26f6e8d2fc8/html5/thumbnails/21.jpg)
Longest Increasing Subsequence
19.03.2011 Dünaamiline Planeerimine 21
LIS*(1 5 3 2 7 9 7 8)
LIS*(1 5 3 2 7 9 7) + 1 LIS*(1 5 3 2) + 2
LIS*(1 5 3 2) + 1
LIS*(1 5 3) + 1
LIS*(1 5 3) + 2 LIS*(1 5) + 2 LIS*(1) + 2
…
![Page 22: Konstantin Tretjakov (kt@ut.ee)kodu.ut.ee/~ahto/eio/2011.03.19/dp.pdf · Linear program (~linear plan) X ülesannet * 10 punkti + Y ülesannet * 5 punkti tingimustel X * 1tund + Y](https://reader031.vdocuments.site/reader031/viewer/2022022616/5ba31b8409d3f26f6e8d2fc8/html5/thumbnails/22.jpg)
Longest Increasing Subsequence
19.03.2011 Dünaamiline Planeerimine 22
LIS*(1 5 3 2 7 9 7 8)
LIS*(1 5 3 2 7 9 7) + 1 LIS*(1 5 3 2) + 2
LIS*(1 5 3 2) + 1
LIS*(1 5 3) + 1
LIS*(1 5 3) + 2 LIS*(1 5) + 2 LIS*(1) + 2
…
LIS*(1) + 3
![Page 23: Konstantin Tretjakov (kt@ut.ee)kodu.ut.ee/~ahto/eio/2011.03.19/dp.pdf · Linear program (~linear plan) X ülesannet * 10 punkti + Y ülesannet * 5 punkti tingimustel X * 1tund + Y](https://reader031.vdocuments.site/reader031/viewer/2022022616/5ba31b8409d3f26f6e8d2fc8/html5/thumbnails/23.jpg)
Longest Increasing Subsequence
19.03.2011 Dünaamiline Planeerimine 23
![Page 24: Konstantin Tretjakov (kt@ut.ee)kodu.ut.ee/~ahto/eio/2011.03.19/dp.pdf · Linear program (~linear plan) X ülesannet * 10 punkti + Y ülesannet * 5 punkti tingimustel X * 1tund + Y](https://reader031.vdocuments.site/reader031/viewer/2022022616/5ba31b8409d3f26f6e8d2fc8/html5/thumbnails/24.jpg)
Longest Increasing Subsequence
19.03.2011 Dünaamiline Planeerimine 24
![Page 25: Konstantin Tretjakov (kt@ut.ee)kodu.ut.ee/~ahto/eio/2011.03.19/dp.pdf · Linear program (~linear plan) X ülesannet * 10 punkti + Y ülesannet * 5 punkti tingimustel X * 1tund + Y](https://reader031.vdocuments.site/reader031/viewer/2022022616/5ba31b8409d3f26f6e8d2fc8/html5/thumbnails/25.jpg)
Longest Increasing Subsequence
19.03.2011 Dünaamiline Planeerimine 25
![Page 26: Konstantin Tretjakov (kt@ut.ee)kodu.ut.ee/~ahto/eio/2011.03.19/dp.pdf · Linear program (~linear plan) X ülesannet * 10 punkti + Y ülesannet * 5 punkti tingimustel X * 1tund + Y](https://reader031.vdocuments.site/reader031/viewer/2022022616/5ba31b8409d3f26f6e8d2fc8/html5/thumbnails/26.jpg)
Longest Increasing Subsequence
19.03.2011 Dünaamiline Planeerimine 26
![Page 27: Konstantin Tretjakov (kt@ut.ee)kodu.ut.ee/~ahto/eio/2011.03.19/dp.pdf · Linear program (~linear plan) X ülesannet * 10 punkti + Y ülesannet * 5 punkti tingimustel X * 1tund + Y](https://reader031.vdocuments.site/reader031/viewer/2022022616/5ba31b8409d3f26f6e8d2fc8/html5/thumbnails/27.jpg)
Longest Increasing Subsequence
19.03.2011 Dünaamiline Planeerimine 27
![Page 28: Konstantin Tretjakov (kt@ut.ee)kodu.ut.ee/~ahto/eio/2011.03.19/dp.pdf · Linear program (~linear plan) X ülesannet * 10 punkti + Y ülesannet * 5 punkti tingimustel X * 1tund + Y](https://reader031.vdocuments.site/reader031/viewer/2022022616/5ba31b8409d3f26f6e8d2fc8/html5/thumbnails/28.jpg)
DP elemendid
Rekurrentne valem
„Cachimine“ või „Tabeli täitmine“ selle valemi
järgi.
Olümpiaadi puhul teine variant tavaliselt parem.
Väljundi väljastamine tüüpiliselt rekursiivselt.
19.03.2011 Dünaamiline Planeerimine 28
![Page 29: Konstantin Tretjakov (kt@ut.ee)kodu.ut.ee/~ahto/eio/2011.03.19/dp.pdf · Linear program (~linear plan) X ülesannet * 10 punkti + Y ülesannet * 5 punkti tingimustel X * 1tund + Y](https://reader031.vdocuments.site/reader031/viewer/2022022616/5ba31b8409d3f26f6e8d2fc8/html5/thumbnails/29.jpg)
Harjutus: Is Bigger Better
Google:
19.03.2011 Dünaamiline Planeerimine 29
10131 site:onlinejudge.org
![Page 30: Konstantin Tretjakov (kt@ut.ee)kodu.ut.ee/~ahto/eio/2011.03.19/dp.pdf · Linear program (~linear plan) X ülesannet * 10 punkti + Y ülesannet * 5 punkti tingimustel X * 1tund + Y](https://reader031.vdocuments.site/reader031/viewer/2022022616/5ba31b8409d3f26f6e8d2fc8/html5/thumbnails/30.jpg)
Edit Distance
sõ-na
| |/
-õunu
19.03.2011 Dünaamiline Planeerimine 30
![Page 31: Konstantin Tretjakov (kt@ut.ee)kodu.ut.ee/~ahto/eio/2011.03.19/dp.pdf · Linear program (~linear plan) X ülesannet * 10 punkti + Y ülesannet * 5 punkti tingimustel X * 1tund + Y](https://reader031.vdocuments.site/reader031/viewer/2022022616/5ba31b8409d3f26f6e8d2fc8/html5/thumbnails/31.jpg)
D(sõna, õunu) =
D(sõn,õun) + 1 (a→u)
D(sõna,õun) + 1 (-→u)
D(sõn,õunu) +1 (a→-)
19.03.2011 Dünaamiline Planeerimine 31
sõn a
/
õun u
sõna -
|
õun u
sõn a
|
õunu -
min
![Page 32: Konstantin Tretjakov (kt@ut.ee)kodu.ut.ee/~ahto/eio/2011.03.19/dp.pdf · Linear program (~linear plan) X ülesannet * 10 punkti + Y ülesannet * 5 punkti tingimustel X * 1tund + Y](https://reader031.vdocuments.site/reader031/viewer/2022022616/5ba31b8409d3f26f6e8d2fc8/html5/thumbnails/32.jpg)
19.03.2011 Dünaamiline Planeerimine 32
. S Õ N A
. 0 1 2 3 4
Õ 1
U 2
N 3
U 4
![Page 33: Konstantin Tretjakov (kt@ut.ee)kodu.ut.ee/~ahto/eio/2011.03.19/dp.pdf · Linear program (~linear plan) X ülesannet * 10 punkti + Y ülesannet * 5 punkti tingimustel X * 1tund + Y](https://reader031.vdocuments.site/reader031/viewer/2022022616/5ba31b8409d3f26f6e8d2fc8/html5/thumbnails/33.jpg)
19.03.2011 Dünaamiline Planeerimine 33
. S Õ N A
. 0 1 2 3 4
Õ 1 1
U 2
N 3
U 4
![Page 34: Konstantin Tretjakov (kt@ut.ee)kodu.ut.ee/~ahto/eio/2011.03.19/dp.pdf · Linear program (~linear plan) X ülesannet * 10 punkti + Y ülesannet * 5 punkti tingimustel X * 1tund + Y](https://reader031.vdocuments.site/reader031/viewer/2022022616/5ba31b8409d3f26f6e8d2fc8/html5/thumbnails/34.jpg)
19.03.2011 Dünaamiline Planeerimine 34
. S Õ N A
. 0 1 2 3 4
Õ 1 1 1
U 2
N 3
U 4
![Page 35: Konstantin Tretjakov (kt@ut.ee)kodu.ut.ee/~ahto/eio/2011.03.19/dp.pdf · Linear program (~linear plan) X ülesannet * 10 punkti + Y ülesannet * 5 punkti tingimustel X * 1tund + Y](https://reader031.vdocuments.site/reader031/viewer/2022022616/5ba31b8409d3f26f6e8d2fc8/html5/thumbnails/35.jpg)
19.03.2011 Dünaamiline Planeerimine 35
. S Õ N A
. 0 1 2 3 4
Õ 1 1 1 2
U 2
N 3
U 4
![Page 36: Konstantin Tretjakov (kt@ut.ee)kodu.ut.ee/~ahto/eio/2011.03.19/dp.pdf · Linear program (~linear plan) X ülesannet * 10 punkti + Y ülesannet * 5 punkti tingimustel X * 1tund + Y](https://reader031.vdocuments.site/reader031/viewer/2022022616/5ba31b8409d3f26f6e8d2fc8/html5/thumbnails/36.jpg)
19.03.2011 Dünaamiline Planeerimine 36
. S Õ N A
. 0 1 2 3 4
Õ 1 1 1 2 3
U 2
N 3
U 4
![Page 37: Konstantin Tretjakov (kt@ut.ee)kodu.ut.ee/~ahto/eio/2011.03.19/dp.pdf · Linear program (~linear plan) X ülesannet * 10 punkti + Y ülesannet * 5 punkti tingimustel X * 1tund + Y](https://reader031.vdocuments.site/reader031/viewer/2022022616/5ba31b8409d3f26f6e8d2fc8/html5/thumbnails/37.jpg)
19.03.2011 Dünaamiline Planeerimine 37
. S Õ N A
. 0 1 2 3 4
Õ 1 1 1 2 3
U 2 2 2 2 3
N 3 3 3 2 3
U 4 4 4 3 3
![Page 38: Konstantin Tretjakov (kt@ut.ee)kodu.ut.ee/~ahto/eio/2011.03.19/dp.pdf · Linear program (~linear plan) X ülesannet * 10 punkti + Y ülesannet * 5 punkti tingimustel X * 1tund + Y](https://reader031.vdocuments.site/reader031/viewer/2022022616/5ba31b8409d3f26f6e8d2fc8/html5/thumbnails/38.jpg)
DP tunnused
F(n) lahendus põhineb F(k) lahendusel (k<n).
Võib olla ka F(n,m) või F(n,m,p)
Sarnaneb matemaatilise induktsiooniga.
Uuritavate objektide hulk peab omama mingit
loomuliku järjestust.
Sekventside töötlus & kombinatoorika.
Tüüpiliselt O(n2) algoritm.
19.03.2011 Dünaamiline Planeerimine 38
![Page 39: Konstantin Tretjakov (kt@ut.ee)kodu.ut.ee/~ahto/eio/2011.03.19/dp.pdf · Linear program (~linear plan) X ülesannet * 10 punkti + Y ülesannet * 5 punkti tingimustel X * 1tund + Y](https://reader031.vdocuments.site/reader031/viewer/2022022616/5ba31b8409d3f26f6e8d2fc8/html5/thumbnails/39.jpg)
DP kasutamine
Mõtle hoolikalt kogu arvutusskeem paberil
enne läbi.
Muidu riskid ühe väikese eksituse tõttu tundide kaupa
debugida.
Pigem tee tabelitäitmisega kui cache’ga.
Muidu on debugimine keerukam (juhul kui selleks läheb)
Harjuta.
Kui põhitrikid kätte saad muutuvad DP ülesanded su
jaoks kõige lihtsamateks. Ilma selleta on nad kõige
vastikumad.
19.03.2011 Dünaamiline Planeerimine 39
![Page 40: Konstantin Tretjakov (kt@ut.ee)kodu.ut.ee/~ahto/eio/2011.03.19/dp.pdf · Linear program (~linear plan) X ülesannet * 10 punkti + Y ülesannet * 5 punkti tingimustel X * 1tund + Y](https://reader031.vdocuments.site/reader031/viewer/2022022616/5ba31b8409d3f26f6e8d2fc8/html5/thumbnails/40.jpg)
Veel harjutus
19.03.2011 Dünaamiline Planeerimine 40
10154 site:onlinejudge.org
![Page 41: Konstantin Tretjakov (kt@ut.ee)kodu.ut.ee/~ahto/eio/2011.03.19/dp.pdf · Linear program (~linear plan) X ülesannet * 10 punkti + Y ülesannet * 5 punkti tingimustel X * 1tund + Y](https://reader031.vdocuments.site/reader031/viewer/2022022616/5ba31b8409d3f26f6e8d2fc8/html5/thumbnails/41.jpg)
Kodus
Skiena & Revilla, Ch. 11
http://uva.onlinejudge.org/index.php?option=com_onlin
ejudge&Itemid=8&category=39
19.03.2011 Dünaamiline Planeerimine 41