Model Dynamic Programming Konsep Dasar Dalam Dynamic Programming

Pada penyelesaian persoalan dengan metode dynamic programming ini terdapat sejumlah berhingga pilihan yang mungkin, solusi pada setiap tahap dibangun dari hasil solusi tahap sebelumnya, kita menggunakan persyaratan optimasi kendala untuk membatasi sejumlah pilihan yang harus dipertimbangkan pada suatu tahap. Pada dynamic programming, rangkaian keputusan yang optimal dibuat dengan menggunakan Prinsip Optimalitas. Prinsip Optimalitas: jika solusi optimal, maka bagian solusi pada tahap ke-k juga optimal. Prinsip optimalitas berarti bahwa jika kita bekerja dari tahap k ke tahap k+1, kita dapat menggunakan hasil optimal dari tahap k tanpa harus kembali ke tahap awal. Ongkos pada tahap k+1 = ongkos yang dihasilkam pada tahap k + ongkos dari tahap k ke tahap k+1. Dengan prinsip optimalitas ini dijamin bahwa pengambilan keputusan yang benar untuk tahap-tahap selanjutnya.

2.6.1 Model Dynamic Programming

Secara umum, model dari dynamic programming dapat dituliskan sebagai berikut: , , 1 1 1 − − − + = n n n n n n n D S f R D S f dengan: , n n D S f = return pada tahap-n dari nilai status input dan keputusan n S n D n S = kondisi awal 1 − n S = kondisi akhir n D = keputusan yang dibuat pada setiap tahap 1 − n D = keputusan pada tahap akhir n R = return function , 1 1 1 − − − n n n D S f = return optimal pada tahap- 1 − n dari nilai status input dan keputusan 1 − n S 1 − n D Widya Maulina : Aplikasi Pendekatan Dynamic Programming Pada Traveling Salesman Problem, 2009 USU Repository © 2008 Adapun model dari Dynamic Programming untuk TSP adalah: }} , 1 { , { min } 1 { , 1 1 2 k V k f c V f k n k − + = − ≤ ≤ dengan: f1, V – {1} = panjang optimal dari tour V = himpunan berhingga tidak kosong dari vertex-vertex dari sebuah graph V – {1} = himpunan vertex dari suatu graph yang dikurang vertex 1 awal K = vertex yang terhubung ke vertex 1 awal k C 1 = bobot dari vertex 1 awal ke k

2.6.2 Konsep Dasar Dalam Dynamic Programming

Adapun konsep dasar dalam sebuah dynamic programming adalah:

a. 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 mempengaruhi keputusan-keputusan pada tahap berikutnya.

b. Status

Status adalah kondisi awal dan kondisi akhir pada setiap tahap, dimana pada tahap tersebut keputusan dibuat . Status akhir pada sebuah tahap tergantung kepada status awal dan keputusan yang dibuat pada tahap yang bersangkutan. Status akhir pada suatu tahap merupakan input bagi tahap berikutnya. n S 1 − n S n D Widya Maulina : Aplikasi Pendekatan Dynamic Programming Pada Traveling Salesman Problem, 2009 USU Repository © 2008

c. Variabel Keputusan dan Hasil

Keputusan yang dibuat pada setiap tahap merupakan keputusan yang berorientasi kepada return yang diakibatkannya , tingkat maksimal atau minimal. n D n n D R |

d. Fungsi Transisi

Fungsi transisi menjelaskan secara pasti bagaimana tahap-tahap saling berhubungan. Fungsi ini berbentuk fungsi hubungan antar status pada setiap tahap yang berurutan. Fungsi transisi secara umum berbentuk : n n n D S S − = −1 Di mana = status pada tahap n-1, atau status akhir pada tahap-n. adalah status awal pada tahap-n. 1 − n S n S

e. Optimasi Tahap

Optimasi tahap dalam dynamic programming adalah menentukan keputusan optimal pada setiap tahap dari berbagai kemungkinan nilai status inputnya. Fungsi umum dari keputusan optimal adalah : , n n n D S f n D = return pada tahap-n dari nilai status input , dan keputusan, . n S n n S f = return optimal pada tahap-n dari nilai input status . n S

f. 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 DP, fungsi umum dituliskan sebagai : , , 1 1 1 − − − + = n n n n n n n D S f R D S f Prosedur optimasi diawali dari tahap akhir menuju tahap awal backward. Widya Maulina : Aplikasi Pendekatan Dynamic Programming Pada Traveling Salesman Problem, 2009 USU Repository © 2008 Karakteristik dynamic programming adalah : 1. Persoalan dapat dipisahkan menjadi beberapa tahap stages, di mana setiap tahap membutuhkan keputusan kebijakan yang standard dan saling berhubungan. 2. Setiap tahap memiliki sejumlah status state. Secara umum, sekumpulan status ini merupakan berbagai kemungkinan kondisi yang timbul dari sistem persoalannya. Status ini memberikan informasi yang dibutuhkan setiap keputusan dan dampaknya pada tahap berikutnya. Jumlah status pada setiap tahap bisa definit atau infinit. 3. Setiap keputusan kebijakan yang dibuat pada suatu tahap, status pada tahap tersebut ditransformasi ke dalam status yang berkaitan pada tahap berikutnya. Hubungan antar status pada tahap yang berurutan bisa bersifat deterministik atau probabilistik. Pada sebuah persoalan dengan n-tahap, ada dua input, yaitu : 1 state pada tahap-n dan decision variable . Sedang outputnya adalah : 1 return atau akibat dari setiap yang dipilih, ; dan 2 status baru yang menjadi input pada tahap berikutnya . Hubungan antara dan ditentukan oleh return function. Sedang hubungan antar status pada tahap tertentu ditentukan oleh transition function. n S n n X n X , n n X S f 1 − n S n X , n X S f 4. Solusi pada dynamic programming berprinsip kepada optimalitas yang dikembangkan oleh Bellman. 5. Keputusan pada tahap berikutnya bersifat independen terhadap keputusan sebelumnya. Untuk menyelesaikan persoalan dynamic programming, dimulai dari solusi awal pada suatu tahap, dan secara berurutan menuju tahap berikutnya dengan proses yang terbalik backward induction process. 6. Solusi optimal yang dihasilkan pada setiap tahap berprinsip kepada hubungan dalam bentuk fungsi rekursif recursion relationship. Secara umum bentuk fungsi rekursif adalah : Widya Maulina : Aplikasi Pendekatan Dynamic Programming Pada Traveling Salesman Problem, 2009 USU Repository © 2008 } , min{ max n n n n n X S f S f = Di mana = adalah hasil optimal dari keputusan pada tahap-n. n n S f

2.6.3 Ciri ciri dasar dari suatu masalah dynamic programming