Dynamic Programming LANDASAN TEORI

3.3. Dynamic Programming

3.3.1. Deskripsi Dynamic Programming

13 Dynamic programming merupakan prosedur matematis yang dirancang untuk memperbaiki efisiensi perhitungan masalah pemrograman matematis tertentu dengan menguraikannya menjadi bagian-bagian masalah yang lebih kecil dan lebih sederhana. Pemrograman dinamis pada umumnya menjawab masalah dalam tahap-tahap, dengan setiap tahap meliputi tepat satu variabel optimasi. Perhitungan di tahap yang berbeda-beda dihubungkan melalui perhitungan rekursif dengan cara menghasilkan pemecahan optimal bagi seluruh masalah. Nama pemrograman dinamis mungkin berkembang karena penggunaan metode ini yang melibatkan pengambilan keputusan yang berkaitan dengan waktu. Tetapi, situasi lain dimana waktu bukan merupakan faktor juga dipecahkan oleh program dinamis. Maka dari itu program dinamis lebih tepat disebut pemrograman multitahap karena pemecahaannya dilakukan secara bertahap. Teori utama dalam pemrograman dinamis adalah prinsip optimalisasi. Prinsip tersebut pada dasarnya menentukan bagaimana suatu masalah yang diuraikan dengan benar dapat dijawab dalam tahap-tahap melalui pemakaian perhitungan rekursif. Konsep yang tidak jelas yang digunakan dalam program dinamis bersamaan dengan notasi matematis yang tidak dikenal seringkali 13 Taha, A. Hamdy. 1996. Riset Operasi. Binarupa Aksara : Jakarta Universitas Sumatera Utara merupakan sumber kebingungan. Tetapi, seringnya seseorang menggunakan perumusan dan pemecahan program dinamis maka orang tersebut akan menganggap program dinamis menjadi lebih mudah dan jelas Taha, 1996. 14 1. Terdapat sejumlah berhingga pilihan yang mungkin. Pada penyelesaian dengan metode dynamic programming ada beberapa hal yang harus diperhatikan, yaitu: 2. Solusi pada setiap tahap dibangun dari hasil solusi tahap sebelumnya. 3. Persyaratan optimisasi dan kendala digunakan untuk membatasi sejumlah pilihan yang harus dipertimbangkan pada suatu tahap. Pada dynamic programming, rangkaian keputusan yang optimal dibuat dengan menggunakan prinsip optimalitas. Prinsip ini berbunyi : ”Jika solusi total optimal, maka bagian solusi sampai ke tahap ke-k juga optimal.” Prinsip optimalitas berarti bahwa jika bekerja dari tahap k ke tahap ke k+1, dapat menggunakan hasil optimal dari tahap ke k tanpa harus kembali ke tahap awal. Jika pada setiap tahap dihitung ongkos cost maka dapat dirumuskan secara umum: Ongkos tahap k+1 = ongkos yang dihasilkan pada tahap k + ongkos dari tahap k ke k+1 Dengan prinsip optimalitas, dijamin bahwa pengambilan keputusan pada suatu tahap, adalah keputusan yang benar untuk tahap-tahap selanjutnya.

3.3.2. Karakteristik Permasalahan Dynamic Programming

15 14 Ginting, Rosnani, Penjadwalan Mesin Yogyakarta: Graha Ilmu, 2009. h. 217 – 218. Universitas Sumatera Utara Setiap metode pengambilan keputusan memiliki karakteristik persoalan yang berbeda, hal tersebut sesuai dengan kondisi ataupun kasus yang terjadi. Berikut ini adalah karakteristik persoalan yang dapat diselesaikan dengan metode dynamic programming: 1. Persoalan dapat dibagi menjadi beberapa tahap stage yang pada setiap tahap hanya diambil satu keputusan. 2. 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. 3. Hasil dari keputusan yang diambil pada setiap tahap ditransformasikan dari status yang bersangkutan ke status berikutnya pada tahap berikutnya. 4. Ongkos cost pada suatu tahap meningkat secara teratur steadily dengan bertambahnya jumlah tahapan. 5. Ongkos pada suatu tahap bergantung pada ongkos tahap-tahap yang sudah berjalan dan ongkos pada tahap tersebut. 6. Keputusan terbaik pada suatu tahap bersifat independen terhadap keputusan yang dilakukan pada tahap sebelumnya. 7. Adanya hubungan rekursif yang mengidentifikasikan keputusan terbaik untuk setiap status pada tahap k memberikan keputusan terbaik untuk setiap status pada tahap k + 1. 8. Prinsip optimalitas berlaku pada persoalan tersebut Rinaldi Munir, 2004. 15 Munir, Rinaldi. 2004. Dynamic Programming. ITB : Bandung. Universitas Sumatera Utara

3.3.3. Konsep Dasar dalam Dynamic Programming

16 Konsep-konsep dasar dalam dynamic programming, yaitu: 1. Dekomposisi Persoalan dynamic programming dapat dipecah-pecah menjadi sub-persoalan atau tahapan yang lebih kecil dan berurutan. Setiap tahap disebut juga sebagai titik keputusan. Setiap keputusan yang dibuat pada suatu tahap akan mepengaruhi keputusan-keputusan pada tahap berikutnya. 2. Status Status adalah kondisi awal Sn dan kondisi akhir Sn-1 pada setiap tahap, di mana pada tahap tersebut keputusan dibuat Dn. Status akhir pada sebuah tahap tergantung keadaan status awal dan keputusan yang dibuat pada tahap tersebut. Status akhir pada suatu tahap merupakan input bagi tahap berikutnya. 3. Variabel Keputusan dan Hasil Keputusan yang dibuat pada setiap tahap Dn merupakan keputusan yang berorientasi kepada return yang diakibatkannya Rn|Dn. 4. Fungsi Rekursif Fungsi rekursif biasanya digunakan pada berbagai program komputer, di mana nilai sebuah variabel pada fungsi itu merupakan nilai kumulatif dari nilai variabel tersebut pada tahap sebelumnya. Pada dynamic programming, fungsi umum dituliskan sebagai: 16 Ginting Rosnani, Penjadwalan Mesin, op. cit, h. 218 – 220. Universitas Sumatera Utara fnSn, Dn = Rn + fn-1Sn-1,Dn-1

3.4. Perencanaan Produksi