Analisa Algoritma Pemrograman Dinamik Dua Pendekatan Algoritma Pemrograman Dinamik Algoritma Pemrograman Dinamik

f. Solusi optimal yang dihasilkan pada setiap tahap berprinsip kepada hubungan dalam bentuk fungsi rekursif recursion relationship. Secara umum bentuk fungsi rekursif adalah: FnSn = maxmin {fnSn, Xn} Untuk setiap fnSn = hasil optimal dari keputusan pada tahap-n.

2.8.2 Analisa Algoritma Pemrograman Dinamik

Pemrograman Dinamik adalah metode pemecahan masalah dengan cara menguraikan solusi menjadi sekumpulan langkah step atau tahapan stage sedemikian sehingga solusi dari persoalan dapat dipandang dari serangkaian keputusan yang saling berkaitan. Pada penyelesaian persoalan dengan Pemrograman Dinamik terdapat sejumlah berhingga pilihan yang mungkin. Solusi pada setiap tahap dibangun dari hasil solusi tahap sebelumnya, penulis menggunakan persyaratan optimasi dan kendala untuk membatasi sejumlah pilihan yang harus dipertimbangkan pada suatu tahap. Pada Pemrograman Dinamik, rangkaian keputusan yang optimal dibuat dengan menggunakan Prinsip Optimalitas. Prinsip Optimalitas: jika solusi total optimal, maka bagian solusi sampai tahap ke-k juga optimal. Prinsip optimalitas berarti bahwa jika penulis bekerja dari tahap k ke tahap k + 1, penulis dapat menggunakan hasil optimal dari tahap k tanpa harus kembali ke tahap awal, ongkos pada tahap k+1 = ongkos yang dihasilakan pada tahap k + ongkos dari tahap k ke tahap k +1. Dengan prinsip optimalitas ini dijamin bahwa pengembalian keputusan pada suatu tahap adalah keputusan yang benar untuk tahap-tahap selanjutnya. Universitas Sumatera Utara

2.8.3 Dua Pendekatan Algoritma Pemrograman Dinamik

Dua pendekatan yang digunakan dalam Pemrograman Dinamik yaitu: maju forward atau up-down dan mundur backward atau bottom up. Misalkan x 1 , x 2 , x 3, …, x n menyatakan variabel keputusan yang harus dibuat masing-masing untuk tahap 1, 2, …, n, yaitu: 1. Pemrograman Dinamik maju. Pemrograman Dinamik bergerak mulai dari tahap 1, terus maju ke tahap 2, 3, dan seterusnya sampai tahap n, urutan variabel keputusan adalah x 1 , x 2 , x 3, …, x n. Penulis disini menggunakan Program Dinamik Maju. 2. Pemrograman Dinamik mundur. Pemrograman Dinamik bergerak mulai dari tahap n, terus mundur ke tahap n-1, n-2, dan seterusnya sampai tahap 1, urutan variabel keputusan adalah x n , x n-1 , x n-2, …, x 1. Langkah-langkah Pengembangan Algoritma Pemrograman Dinamik: 1. Karakteristik struktur solusi optimal. 2. Definisikan secara rekursif nilai solusi optimal. 3. Hitung nilai solusi optimal secara maju atau mundur. 4. Konstruksi solusi optimal.

2.8.4 Algoritma Pemrograman Dinamik

Algoritma Pemrograman Dinamik adalah sebagai berikut: Langkah 0 inisialisasi: Inisialisasi  i s dan ai i m d  untuk n i ,....., 2 , 1  Langkah 1: a. Isi a s dengan 1 karena titik a adalah titik asal lintasan terpendek, jadi sudah pasti terpilih. b. Isi a d dengan  tidak ada loop dari titik a ke a Universitas Sumatera Utara Langkah 2, 3, … , n-1: a. Cari j sedemikian sehingga  j s dan   n j d d d d ,....., , min 2 1  b. Isi j s dengan 1 c. Perbarui i d , untuk n i ,...., 3 , 2 , 1  dengan:   ji j i i m d lama d baru d   , min

2.9 Visual Basic 6.0