Anda di halaman 1dari 32

Analisis & Strategi

Algoritma

Pertemuan 15
Strategi Algoritma Dynamic Programming
Pemateri : Chrismikha Hardyanto S.Kom., M.Kom.
KONTEN
PERKULIAHAN
 Definisi Strategi Algoritma
“Program Dinamis”
 Karakteristik Strategi
Algoritma Program Dinamis
 Prinsip Optimalitas Program
Dinamis
 Skema Umum Algoritma
Program Dinamis

2
Strategi algoritma terakhir yang akan
kita pelajari di semester ini adalah
strategi bernama Program Dinamis
Strategi Algoritma :
Dynamic Programming
Strategi Program Dinamis
Suatu pendekatan pemecahan masalah dengan
cara menguraikan kandidat solusi menjadi
sekumpulan tahapan (stage). sedemikian
sehingga solusi persoalan dapat dipandang
sebagai serangkaian keputusan yang saling
berkaitan.

[Sumber : Rinaldi Munir]


Program Dinamis
Program Dinamis merupakan suatu
metode/pendekatan bukan berupa suatu
program (software)

 Kata “program” tidak ada kaitannya


dengan pemrograman. Kata program
disini artinya "perencanaan"

 Kata “dinamis” muncul karena konsep


pencarian solusinya melakukan
perhitungan dengan menggunakan
tabel (yang dapat berkembang)

6
Program dinamis umum digunakan untuk
menyelesaikan persoalan – persoalan
optimasi (maksimasi atau minimasi)
Karakteristik Program Dinamis
1. Persoalan - persoalan yang dapat diselesaikan dengan program
dinamis mirip dengan jenis persoalan yang dapat diselesaikan oleh
strategi greedy (Masalah Optimasi)

 Perbedaan antara strategi greedy dengan strategi program dinamis :

Dari perbedaan tersebut, maka akan terdapat perbedaan didalam proses


pikir dalam menemukan solusi dari masalah
[sumber : Materi Stima Rinaldi Munir] 8
Ilustrasi Kasus Optimasi

9
Karakteristik Program Dinamis
Beberapa karakteristik dari proses berpikir strategi algoritma program
dinamis dalam menemukan solusi adalah sebagai berikut :

1. Persoalan harus dapat dibagi menjadi beberapa stage (Tahapan),


dimana setiap tahapannya hanya diambil satu keputusan (yang
merupakan solusi terbaik ditahap itu)

2. Setiap tahapan akan terdiri dari sejumlah state (Status) yang


berhubungan dengan tahapan tersebut. Status merupakan bermacam
kemungkinan masukan (pilihan) yang ada pada suatu tahap.

3. Hubungan antara tahap (stage) dan status (state) dapat


diilustrasikan secara visual dengan memanfaatkan graf multitahap
(multistage graph)

[sumber : Materi Stima Rinaldi Munir] 10


Karakteristik Program Dinamis

[sumber : Materi Stima Rinaldi Munir] 11


Karakteristik Program Dinamis (2)
4. Hasil dari keputusan yang diambil pada setiap tahap akan
ditransformasikan dari status (state) yang bersangkutan ke status di
tahap berikutnya.

5. Menerapkan prinsip optimalitas (dibahas di slide berikutnya) dalam


menentukan pilihan terbaik disetiap tahapan

6. Nilai Ongkos (cost) pada setiap tahap akan meningkat secara


teratur (steadliy), dengan bertambahnya jumlah tahapan yang
dilalui. Ongkos pada suatu tahap bergantung pada ongkos yang
sudah berjalan

7. Adanya hubungan rekursif yang mengidentifikasikan keputusan


terbaik untuk setiap kasus pada tahap k memberikan keputusan
terbaik untuk setiap kasus pada tahap k+1
[sumber : Materi Stima Rinaldi Munir] 12
Prinsip Optimalitas Program Dinamis
Definisi :

Artinya :
Ongkos pada tahap ke k + 1 = (Total Ongkos yang dihasilkan sampai
tahap k) + (Ongkos dari tahap k ke tahap k + 1)
14
Ilustrasi Prinsip Optimalitas

[sumber : Materi Stima Rinaldi Munir] 15


Pendekatan Program Dinamis

16
Pendekatan Program Dinamis

1. Forward (Maju), penelusuran ini bergerak mencari solusi mulai dari


tahap 1, 2, 3, dan seterusnya sampai tahap n. Runtunan peubah
keputusan adalah x1,x2,x3,...,xn.

2. Backward (Mundur), penelusuran ini bergerak mencari solusi mulai


dari tahap n, n-1, n-2, dan seterusnya hingga tahap 1. Runtunan
peubah keputusan adalah xn,xn-1,xn-2,...,x1.

17
Langkah Umum Algorima Program Dinamis
Berikut adalah langkah – langkah umum untuk mengembangkan
algoritma dengan menerapkan strategi program dinamis:

[sumber : Materi Stima Rinaldi Munir] 18


Untuk lebih memahami Proses berpikir dari
strategi program dinamis, Mari lihat contoh
kasus berikut ini …
Kasus 1:
Rute Terpendek
Misalkan Asep akan pergi ke kota 10 dari Kota 1 dengan menggunakan
mobil, Dimana untuk mencapai kota 10 Asep harus melalui beberapa kota
terlebih dahulu. Bantulah Asep untuk mencari rute perjalanan terpendek
yang harus dilalui untuk kekota 10 apabila diberikan peta seperti berikut :

21
Langkah Algoritma Program Dinamis

[sumber : Materi Stima Rinaldi Munir] 22


Langkah Algoritma Program Dinamis
Ilustrasi pembagian Tahap (Stage) dan Status (state) untuk kasus ini :
Langkah Algoritma Program Dinamis

24
Langkah Dinamis Tahap Awal - Maju

Pada Tahap Awal, Definisikan


X1 Sebagai node awal (start)
25
Langkah Dinamis Tahap 1 (f1(s)) - Maju

TAHAP 1 : f1(s) = Cx1,s


SOLUSI OPTIMUM
S f1(s) X1*
2 2 1
Catatan : 3 4 1
xk* adalah nilai yang meminimumkan
fk(s) 4 3 1
Langkah Dinamis Tahap 2 (f2(s)) - Maju
TAHAP Sebelumnya: Tahap 1
SOLUSI OPTIMUM
S f1(s) X1*
2 2 1
3 4 1
4 3 1

TAHAP 2: f2(s) = min {f1(X2) + Cx2,s}


Cost Node Asal (X2) SOLUSI OPTIMUM
S 2 3 4 f2(s) X 2*
5 9 7 7 7 3 atau 4
6 6 6 4 4 4
7 8 8 8 8 2,3, Atau 4
Langkah Dinamis Tahap 3 (f3(s)) - Maju
TAHAP Sebelumnya: Tahap 2
SOLUSI OPTIMUM
S f2(s) X2*
5 7 3 atau 4
6 4 4
7 8 2,3, Atau 4

TAHAP 3: f3(s) = min {f2(X3) + Cx3,s}


Cost Node Asal (X3) SOLUSI OPTIMUM
S 5 6 7 f3(s) X 3*
8 8 10 11 8 5
9 11 7 11 7 6
Langkah Dinamis Tahap 4 (f4(s)) - Maju
TAHAP Sebelumnya: Tahap 2
SOLUSI OPTIMUM
S f3(s) X3*
8 8 5
9 7 6

TAHAP 4: f3(s) = min {f3(X4) + Cx4,s}


Cost Node Asal (X4) SOLUSI OPTIMUM
S 8 9 f4(s) X 4*
10 11 11 11 8 Atau 9
Langkah Dinamis Tahap Akhir
TAHAP 4

TAHAP 3

TAHAP 2
Bagaimana jika Kasus yang sama ini diselesaikan dengan pendekatan
mundur untuk pencarian solusi dengan algoritma program dinamis. Apakah
Hasilnya sama ?? Coba Anda buktikan

31
Terima Kasih

32

Anda mungkin juga menyukai