Pertemuan 13 Dynamic Programming Matakuliah : T0034/Perancangan & Analisis Algoritma Tahun : 2005 Versi : R1/0 Pertemuan 13 Dynamic Programming
<< TIK-99 >> << TIK-99>> Learning Outcomes Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu : << TIK-99 >> << TIK-99>>
Outline Materi Materi 1 Materi 2 Materi 3 Materi 4 Materi 5
Dynamic Programming 7.1. Pendahuluan Pemrograman dinamis (Dynamic Programming) digunakan jika solusi dari suatu problema dapat dipandang sebagai deretan dari beberapa keputusan. Ada set dari keputusan-keputusan (solusi) dari set solusi ini akan di cari solusi optimal dengan prinsip optimalitas.
Dynamic Programming Perbedaan dengan metode Greedy, ialah keputusan yang diambil dengan metoda Greedy adalah keputusan optimal saat itu atau local optimality, dan selalu tunduk pada suatu aturan awal yang ditetapkan sebelumnya, yaitu jika aturan awalnya, memilih secara tidak naik, harus terus menerus secara tidak naik, dan jika secara tidak turun, maka harus memilih terus menerus secara tidak turun. Dengan demikian hasil akhir metoda Greedy kadang-kadang tidak mencapai nilai optimal.
Contoh aplikasi antara lain pada : Dynamic Programming Contoh aplikasi antara lain pada : Knapsack problem Problema lintasan terpendek The traveling sales person problem Flow shop scheduling
Dynamic Programming 7.2.Problema Multistage Graph Multistate Graph Problem adalah mencari lintasan dari Vi ke Vi+1 (dari S ke t) yang mempunyai nilai optimal. Ada beberapa prosedur yang dipakai antara lain: Prosedure forword; mencari dari awal ke akhir Prosedure backword; mencari secara mundur Berikan contoh, untuk mencari lintasan terpendek dengan kedua prosedur diatas.
Dynamic Programming Perbedaan dengan metode Greedy, ialah keputusan yang diambil dengan metoda Greedy adalah keputusan optimal saat itu atau local optimality, dan selalu tunduk pada suatu aturan awal yang ditetapkan sebelumnya, yaitu jika aturan awalnya, memilih secara tidak naik, harus terus menerus secara tidak naik, dan jika secara tidak turun, maka harus memilih terus menerus secara tidak turun. Dengan demikian hasil akhir metoda Greedy kadang-kadang tidak mencapai nilai optimal.
Dynamic Programming 7.3 contoh Multistage Graph Suatu multistage graph G= {V,E} adalah suatu diagraph yang dibagi atas k 2 stage, yang saling disjoint, yaitu stage Vi, 1 i k. Misalkan S V1 sebagai start stage dan t Vn sebagai terminal stage. Problemnya multi stage graph adalah mencari lintasan terpendek (cost minimum) dari s ke t.
Dynamic Programming Contoh : lihat gambar 5.1, hal 203 pada buku : Fundamentals of Computer Algorithma by Ellis Horrowitz dan Sartaj Sahni Ada dua cara (metoda) yang dapat di-gunakan untuk mencari cost minimum dari s ke t Metoda langkah maju (Forward approach) Metoda ini memulai pada stage (k-2) menuju stage t, dengan formula
Dynamic Programming i Vi+1 <i , j> E dengan i = stage j = node pada stage Vi Dengan mulai pada stage (k-2), maka contoh pada gambar 5-1, tersebut diatas dapat diselesaikan sebagai berikut :
Dynamic Programming Dstnya. Dengan demikian, cost minimum dari stage s ke stage t adalah 16. Untuk mencari lintasan (simpul-simpul) yang dilalui : Misalkan D (i,j) menyatakan simpul yang dituju memberi nilai :
Dynamic Programming Sehingga didapat : Jadi simpul-simpul yang dilalui : Maka :
Dynamic Programming 2. Metoda Langkah Mundur (Backward) Metoda ini memulai dari stage 3, dengan rumus : Sehingga problema seperti pada gambar 5-1 tersebut di atas dapat diselesaikan sebagai berikut : Jadi Cost minimum dari stage s ke stage t adalah 16.
<< CLOSING>>