Apa itu Dynamic Programming ? Dynamic Programming (biasa disingkat DP) adalah suatu teknik algoritma untuk memecahkan masalah dimana solusi optimal dari masalah tersebut dapat dipandang sebagai suatu deret keputusan.
Halaman ini akan berisi kumpulan soal-soal Dynamic Programming(beserta clue) dan akan terus diupdate setiap saya menemukan soal-soal Dynamic Programming yang menarik
.
Mohon tambahkan di bagian komentar apabila kalian menemukan soal-soal Dynamic Programming yang juga menarik untuk dikerjakan ^_^.
Misalkan f(a,b) adalah cost terbaik dari sub-string yang dimulai dari posisi a dan diakhiri dengan posisi b. Yang kita ingin cari adalah f(0,N-1) dimana N adalah panjang string.
f(a,b) = 0, jika a>=b
f(a,b) = maximum( option1, option2) jika a < b
option1 = maximum( f(a,i) + f(i+1,b) ) untuk i=a sampai i=b-1.
option2 = 2 + f(a+1,b-1), jika karakter pada posisi a adalah pasangan karakter pada posisi b (Contoh: ‘[' dengan ']‘ dan ‘(‘ dengan ‘)’ ).
option2 = 0, jika karakter pada posisi a bukan pasangan karakter pada posisi b.
Kompleksitas total adalah O(N^3).
Misalkan f(a,b) adalah cost terbaik bila kita mulai dari bunch ke-a dan vase ke-b.
Yang kita ingin cari adalah f(0,0).
f(a,b) = 0, jika a==F
f(a,b) = max( f(a+1,c+1) + cost[a][c] ), dimana c dimulai dari b sampai V-(F-a).
F -> banyak bunch
V -> banyak vase
cost[i][j] -> cost bila kita menaruh bunch ke-i pada vase ke-j
Kompleksitas total adalah sekitar O(F^2 * V).
halo mas timo,…saya akhmad…kebetulan saya pengen banget belajar n menguasai dynamic programming coz kayaknya sering keluar di ACM, so saya minta tolong donk bikin write upnya (source code (C or Java) n langkah-langkahnya dari soal 2262-Bracket) biar paham…thx b4
Halo Akhmad, saya sudah tambahkan file bracket.jpg, kamu bisa download dan rename jadi bracket.cpp. Didalam file tersebut sudah saya berikan dokumentasi. Kalau ada yang kurang jelas bisa kamu tanyakan lagi ke email saya: timotius86@yahoo.com
- Timo
thx untuk mengenai dynamic programming nya… akan sangat berguna sekali.. ^^
bang saya juga mw bljr DP. itu apa filenya yg dkirim ke mas Akhmad sy mw juga donkz.
ini soal DP :
http://acm.tju.edu.cn/toj/showp1057.html
tapi saya belom paham DP nya dimana?? n implementasinya ke C++
tolong pencerahannya
wah makasih mas timo, mudah2an berguna
Tahun ini saya ikut acm icpc pertama kalinya , mudah2an bisa “survive”
^_^
mo tanya ni mau belajar DP ada web nya ga ya?
Ada banyak koq di internet
.
Om Google akan membantu ^^
http://www.google.co.id/search?hl=id&q=dynamic+programming+tutorial&btnG=Telusuri+dengan+Google&meta=
Wah, DP problems nya koq ga update lagi ko? hehehe..
Rasanya bagus kalo belajar dengan problem “Undirectional TSP”
Q dpt tgs presentasi ttng dynamic programming, Tp msh bingung moW nyaRi masalah tentang apa nieh?? HeLp Donk..!!!
@cute
Sudah pernah selesaikan masalah Coin?
Ko timo, ak ada 2 soal menarik dari TC yang bagus untuk belajar DP…
saya ingin membuat optimasi lahan parkir dengan dynamic programming, kira2 garis besar programnya bagaimana ya? trims
mas, mo tny neh penerapan DP di soal productions and inventory scheduling, tlg jlsn donk. trims
Termikasih dp nya bagus artikelnya
cocok untuk pengembangan algoritmanya
soalnya mungkin bisa lebih kumplit lagi?
apa saja penerapan dp ?
ruang lingkupnya samapai sejauh mana untuk dp dan pengembangannya bagaimana?