Jumat, 27 Februari 2009

ALGORITMA PROGRAM DINAMIS

ALGORITMA PROGRAM DINAMIS

Program Dinamis merupakan sebuah algoritma pemecahan masalah dengan cara menguraikan solusi menjadi sekumpulan langkah atau tahapan sedemikian sehingga solusi dai persoalan dapat dipandang dari serangkaian keputusan yang saling berkaitan. Pada penyelesaian metode in kita menggunakan persyaratan optimasi dan kendala untuk membatasi sejumlah pilihan yang harus dipertimbangkan pada suatu tahap. Algoritma Program Dinamis memiliki karakteristik sebagai berikut:
1. Persoalan dapat dibagi mejadi beberapa tahap, yang
pada setiap tahap hanya diambil satu keputusan yang
optimal.
2. Masing-masing tahap terdiri dari sejumlah status yang berhubungan dengan tahap tersebut.
3. Hasil keputusan yang diambil pada tahap ditransformasikan dari status yang bersangkutan ke status berikutnya pada tahap berikutnya.
4. Ongkos pada suatu tahap bergantung pada ongkos tahap-tahap sebelumnya dan meningkat secara teratur dengan bertambahnya jumlah tahapan
5. Keputusan terbaik pada suatu tahap bersifat independen terhadap keputusan yang dilakukan tahap sebelumnya.
6. Adanya hubungan rekursif yang mengidentifikasikan keputusan terbaik untuk setiap status pada tahap k memberikan keputusan terbaik untuk tahap sebelumnya.
7. Prinsip optimalitas berlaku pada persoalan tersebut. Ciri utama dari Program Dinamis adalah prinsip optimalitas yang berbunyi : jika solusi total optimal, maka bagian solusi sampai tahap ke-k juga optimal .

Dari karakteristik poin ke-4 di atas, kita dapat menyimpulkan bahwa algoritma Program Dinamis dapat diaplikasikan apabila peningkatkan ongkos secara linear dan diskrit sehingga optimasi parsial dapat dilakukan. Dalam menyelesaikan persoalan dengan Program Dinamis, kita dapat menggunakan 2 pendekatan berbeda yaitu :
a. Maju (forward atau up-down) : bergerak mulai dari tahap 1, terus maju ke tahap 2,3,..,n. Urutan variabel keputusan adalah x1,x2,...,xn
b. Mundur(backward atau bottom-up) : bergerak mulai dari tahap n, terus mundur ke tahap n-1, n-2,..,2,1. Urutan variabel keputusan adalah xn xn-1,x2,x1. Adapun kompleksitas waktu pada algoritma ini adalah O(| s1|*|s2|), jika panjang kedua string adalah 'n'. Kompleksitas ruangnya juga sama jika seluruh matriks disimpan untuk merunut balik untuk mencari optimal
alignment. Jika nilai edit distance dibutuhkan, hanya dua baris dari matriks yang dialokasi; matriks tersebut dapat mengalami 'daur ulang', dan kompleksitas ruangnya jadi O(n)
.
5. METODE

Nilai edit distance D adalah ongkos yang harus dicari solusi optimum parsial maupun globalnya. Misalnya, diketahui 2 buah yaitu string W dan string V, di mana W=W1…Wi merupakan string yang akan diperbaiki, dan V=V1…Vj merupakan string yang akan dihitung nilai edit distance-nya terhadap string W, maka persamaan umum rekursif dari edit distance dengan menggunakan algoritma Program Dinamis prinsip pendekatan maju (forward atau up-down) dapat kita bentuk sebagai berikut. Untuk persoalan ini, kita tentukan nilai mismatch penalty P(i,j)=0, jika Wi=Vj dan P(i,j)=1, jika Vj ≠ Wi, serta nilai gap penalty δ(i,j)=1, ,jika ada karakter ‘-‘, dan δ(i,j)=0 ,jika tidak ada. Pada bagian rekurens, persamaan (1) menunjukkan bahwa perlu dilakukan penggantian (substitution) jika Vj ≠ Wi agar karakter Vj = Wi. Sedangkan, persamaan (2) menunjukkan bahwa perlu dilakukan pemasukkan karakter (insertion) serta persamaan (3) MAKALAH IF2251 STRATEGI ALGORITMIK TAHUN 2007 menunjukkan bahwa perlu dilakukan penghapusan karakter. Untuk menyimpan nilai-nilai edit distance dari setiap langkahnya, maka kita bentuk suatu matriks M berdimensi m x n dimana m=[panjang(V) +1] dan n=[panjang(W) + 1] dimana M[0,0] merupakan tempat untuk menyimpan nilai basis yaitu 0. Apabila teknik ini diimplementasikan pada aplikasi, maka program akan memberikan umpan balik berupa string W dengan nilai D(‘ASAK’, W) yang paling kecil, dimana W merupakan kumpulan string yang ada pada database. Jadi, jika kita merujuk ke contoh di atas, program akan mengoreksi string ‘ASAK’ dengan ‘ASAL’, bukan dengan ‘PASAK’.

Tidak ada komentar:

Posting Komentar