1 / 62

Design and Analysis of Algorithm Dynamic Programming

Design and Analysis of Algorithm Dynamic Programming. Aryo Pinandito, ST, M.MT – PTIIK Universitas Brawijaya. Pemrograman Dinamis ( Dynamic Programming ). M etode pemecahan masalah dengan cara menguraikan solusi menjadi sekumpulan tahapan ( stage )

brenna
Download Presentation

Design and Analysis of Algorithm Dynamic Programming

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Design and Analysis of AlgorithmDynamic Programming Aryo Pinandito, ST, M.MT – PTIIK UniversitasBrawijaya

  2. PemrogramanDinamis (Dynamic Programming) • Metodepemecahanmasalahdengancaramenguraikansolusimenjadisekumpulantahapan (stage) • Sedemikiansehinggasolusidaripersoalandapatdipandangdariserangkaiankeputusan yang salingberkaitan. • Istilah"pemrogramandinamis" munculkarenaperhitungansolusimenggunakantabel-tabel.

  3. KarakteristikPemrogramanDinamis • Terdapatsejumlahberhinggapilihan yang mungkin, • Solusipadasetiaptahapdibangundarihasilsolusitahapsebelumnya, • Kita menggunakanpersyaratanoptimasidankendalauntukmembatasisejumlahpilihan yang harusdipertimbangkanpadasuatutahap.

  4. Greedy vs Dynamic Programming Greedy Dynamic Programming • Hanyasaturangkaiankeputusan yang dihasilkan • Lebihdarisaturangkaiankeputusan yang dipertimbangkan.

  5. Greedy: Graf LintasanTerpendek 1 ke 10. Greedy: 1 – 2 – 6 – 9 – 10 dengancost = 2 + 4 + 3 + 4 = 13 Dynamic Programming: akandijelaskankemudian

  6. Prinsip Optimalitas • Pada program dinamis, rangkaian keputusan yang optimal dibuat dengan menggunakan Prinsip Optimalitas. • Prinsip Optimalitas: jika solusi total optimal, maka bagian solusi sampai tahap ke-k juga optimal.

  7. PrinsipOptimalitas (2) • Prinsipoptimalitasberartibahwajikakitabekerjadaritahap k ketahap k + 1, kitadapatmenggunakanhasil optimal daritahap k tanpaharuskembaliketahapawal. • Ongkospadatahap k +1 = (ongkos yang dihasilkanpadatahap k ) + (ongkosdaritahap k ketahap k + 1) …… …… 1 2 k k +1 n

  8. KarakteristikPersoalanPemrogramanDinamis • Persoalan dapat dibagi menjadi beberapa tahap (stage), yang pada setiap tahap hanya diambil satu keputusan. • Masing-masing tahap terdiri dari sejumlah status (state) yang berhubungan dengan tahap tersebut. Secara umum, status merupakan bermacam kemungkinan masukan yang ada pada tahap tersebut.

  9. Graf Multitahap (Multistage Graph) Tiapsimpul di dalamgraftersebutmenyatakan status, sedangkan V1, V2, … menyatakantahap.

  10. KeputusandanOngkos • Hasildarikeputusan yang diambilpadasetiaptahapditransformasikandari status yang bersangkutanke status berikutnyapadatahapberikutnya. • Ongkos (cost) padasuatutahapmeningkatsecarateratur (steadily) denganbertambahnyajumlahtahapan. • Ongkospadasuatutahapbergantungpadaongkostahap-tahap yang sudahberjalandanongkospadatahaptersebut.

  11. KeputusandanOngkos (2) • Keputusan terbaik pada suatu tahap bersifat independen terhadap keputusan yang dilakukan pada tahap sebelumnya. • Adanya hubungan rekursif yang mengidentifikasikan keputusan terbaik untuk setiap status pada tahap k memberikan keputusan terbaik untuk setiap status pada tahap k + 1. • Prinsip optimalitas berlaku pada persoalan tersebut.

  12. Dua pendekatan PD • Duapendekatan yang digunakandalam PD: • 1. PD maju (forward atauup-down) • 2. PD mundur (backwardataubottom-up).

  13. ContohPendekatan • Misalkan x1, x2, …, xnmenyatakanpeubah (variable) keputusan yang harusdibuatmasing-masinguntuktahap 1, 2, …, n. Maka: • Pemrogramandinamismaju. Program dinamisbergerakmulaidaritahap 1, terusmajuketahap 2, 3, danseterusnyasampaitahapke-n. Runtunanpeubahkeputusanadalah x1, x2, …, xn. • Pemrogramandinamismundur. Program dinamisbergerakmulaidaritahap n, terusmundurketahap n – 1, n – 2, danseterusnyasampaitahap ke-1. Runtunanpeubahkeputusanadalahxn, xn-1, …, x1.

  14. PrinsipOptimalitas PD Maju (Forward) • Prinsipoptimalitaspada PD maju: • Ongkospadatahap k +1 = (ongkos yang dihasilkanpadatahap k ) + (ongkosdaritahap k ketahap k + 1) • k = 1, 2, …, n – 1 • Prinsipoptimalitaspada PD mundur: • Ongkospadatahap k = (ongkos yang dihasilkanpadatahap k + 1) + (ongkosdaritahap k + 1 ketahap k ) • k = n, n – 1, …, 1

  15. Langkah-langkah Pengembangan Algoritma Program Dinamis • Karakteristikkanstruktursolusi optimal. • Definisikansecararekursifnilaisolusi optimal. • Hitungnilaisolusi optimal secaramajuataumundur. • Konstruksisolusi optimal.

  16. Shortest Path Dynamic Programming

  17. LintasanTerpendek (Shortest Path) • Tentukanlintasanterpendekdarisimpul 1 kesimpul 10:

  18. Penyelesaiandengan Program DinamisMaju • Misalkan x1, x2, …, x4adalahsimpul-simpul yang dikunjungipadatahap k (k = 1, 2, 3, 4). • Makarute yang dilaluiadalah • x1  x2  x3  x4 10 , • dalamhalini x1 = 1.

  19. LintasanTerpendek (Shortest Path) • Padapersoalanlintasanterpendek (shortest path) ini: • Tahap (k) adalah proses memilihsimpultujuanberikutnya (ada 4 tahap). • Status (s) yang berhubungandenganmasing-masingtahapadalahsimpul-simpul di dalamgraf.

  20. Tahap I

  21. Tahap 2

  22. Tahap 3

  23. Tahap 4

  24. RekonstruksiSolusi

  25. Capital Budgeting Dynamic Programming

  26. Penganggaran Modal (Capital Budgeting) • Sebuahperusahaanberencanaakanmengembangkanusaha (proyek) melaluiketigabuahpabrik (plant) yang dimilikinya. • Setiappabrikdimintamengirimkan proposal (bolehlebihdarisatu) keperusahaanuntukproyek yang akandikembangkan. • Setiap proposal memuat total biaya yang dibutuhkan (c) dan total keuntungan (revenue) yang akandiperoleh (R) daripengembanganusahaitu. • Perusahaan menganggarkanRp 5 milyaruntukalokasidanabagiketigapabriknyaitu.

  27. Tabelberikutmeringkaskannilai c dan R untukmasing-masing proposal proyek. • Proposal proyekbernilai-nolsengajadicantumkan yang berartitidakadaalokasidana yang diberikanuntuksetiappabrik. • Tujuan Perusahaan adalahmemperolehkeuntungan yang maksimumdaripengalokasiandanasebesarRp 5 milyartersebut. • Selesaikanpersoalaninidengan program dinamis.

  28. Penyelesaian dengan Program Dinamis Maju. • Misalkan: • Rk(pk) = keuntungandarialternatifpkpadatahap k • fk(xk) = keuntungan optimal daritahap 1, 2, …, dan k yang diberikanoleh status xk

  29. Penyelesaian dengan Program Dinamis • Tahap (k) adalah proses mengalokasikandanauntuksetiappabrik (ada 3 tahap, tiappabrikmendefinisikansebuahtahap). • Status (xk) menyatakanjumlah modal yang dialokasikanpadapadasetiaptahap (namunterikatbersamasemuatahaplainnya). • Alternatif (p) menyatakan proposal proyek yang diusulkansetiappabrik. Pabrik 1, 2, dan 3 masing-masingmemiliki 3, 4 dan 2 alternatif proposal.

  30. Tahap 1

  31. Tahap 2

  32. Tahap 3

  33. RekonstruksiSolusi

  34. 0/1 Knapsack Dynamic Programming

  35. Integer (1/0) Knapsack • Padapersoalan 1/0 Knapsack ini: • Tahap (k) adalah proses memasukkanbarangkedalamkarung (knapsack) (ada 3 tahap). • Status (y) menyatakankapasitasmuatkarung yang tersisasetelahmemasukkanbarangpadatahapsebelumnya. • Dari tahap ke-1, kitamasukkanobjek ke-1 kedalamkarunguntuksetiapsatuankapasitaskarungsampaibataskapasitasmaksimumnya. Karenakapasitaskarungadalahbilanganbulat, makapendekataninipraktis.

  36. Misalkanketikamemasukkanobjekpadatahap k, kapasitasmuatkarungsekarangadalah y – wk. • Untukmengisikapasitassisanya, kitamenerapkanprinsipoptimalitasdenganmengacupadanilai optimum daritahapsebelumnyauntukkapasitassisa • y – wk ( yaitu fk-1(y – wk)).

  37. Selanjutnya, kitabandingkannilaikeuntungandariobjekpadatahap k (yaitupk) plus nilai fk-1(y – wk) dengankeuntunganpengisianhanya k – 1 macamobjek, fk-1(y). • Jikapk + fk-1(y – wk) lebihkecildari fk-1(y), makaobjek yang ke-k tidakdimasukkankedalamkarung, tetapijikalebihbesar, makaobjek yang ke-k dimasukkan.

  38. fk(y) adalahkeuntungan optimum daripersoalan 0/1 Knapsack padatahap k untukkapasitaskarungsebesar y. • f0(y) = 0 adalahnilaidaripersoalan knapsack kosong (tidakadapersoalan knapsack) dengankapasitas y, • fk(y) = -adalahnilaidaripersoalan knapsack untukkapasitasnegatif. • Solusi optimum daripersoalan 0/1 Knapsack adalahfn(M).

  39. ContohPermasalahan 1/0 Knapsack • Jumlahbarang yang dapatdiambil • n = 3 • Kapasitasmaksimumkarung • M = 5

  40. Tahap 1

  41. Tahap 2

  42. Tahap 3

  43. Travelling Salesperson Problem Dynamic Programming

  44. Travelling Salesperson Problem (TSP) • Diberikansejumlahkotadandiketahuijarakantarkota. Tentukanturterpendek yang harusdilaluiolehseorangpedagangbilapedagangituberangkatdarisebuahkotaasaldanmenyinggahisetiapkotatepatsatu kali dankembalilagikekotaasalkeberangkatan.

More Related