Upload
valentino-febrian-wijanarko
View
98
Download
6
Embed Size (px)
DESCRIPTION
pemrograman dinamis dalam strategi algoritma
Citation preview
5/22/2018 Pemrograman Dinamis
1/34
Program Dinamik :
Pendahuluan (1)
Program dinamik merupakan suatupendekatan solusi bukan suatu teknik Tidak terbatas pada golongan masalah tertentu
Pendekatan solusi adalah merinci suatumasalah menjadi masalah-masalah yanglebih keciltahapan (stages) Penyelesaian tahapan secara berurutan
Hasil dari suatu keputusan (solusi) padasuatu tahap akan mempengaruhi keputusantahap berikutnya
5/22/2018 Pemrograman Dinamis
2/34
Program Dinamik :
Pendahuluan (2)
Pemrograman dinamik merupakan teknikmatematis yang dapat berguna untukmembuat suatu urutan keputusan yang saling
berkaitan Pemrograman dinamis tidak mempunyai
rumusan yang baku
Tiap permasalahan memerlukan perumusan
tertentu Teknik pemrograman dinamis dikenal juga
dengan multistage programming
5/22/2018 Pemrograman Dinamis
3/34
Klasifikasi Program Dinamis
Status Diskret Status Kontinyu
Tunggal Majemuk Tunggal Majemuk
Deterministik
Probabilistik
5/22/2018 Pemrograman Dinamis
4/34
Prosedur Pemecahan Masalah
Prosedur pemecahan
Rekursi maju (forward recursion)
Rekursi mundur (backward recursion)
Perbedaan prosedur
Cara mendefinisikan status dalam sistem.
Prosedur rekursi mundur secara umum lebih
efisien
5/22/2018 Pemrograman Dinamis
5/34
Langkah-langkah Pemecahan
Tentukan prosedur pemecahan (maju atau mundur).
Tentukan tahap (stage).
Definisikan variabel status (state) pada tiap tahap.
Definisikan variabel keputusan pada tiap tahap.
Definisikan fungsi pengembalian pada tiap tahap.
Definisikan fungsi transisi.
Definisikan fungsi rekursif. Perhitungan.
Tentukan solusi optimal dengan backtracking.
5/22/2018 Pemrograman Dinamis
6/34
Permasalahan
Sebuah perusahaan membagi wilayah
pemasarannya menjadi tiga: utara, timur,
selatan. Perusahaan tersebut memilliki 3
tenaga penjual yang akan dialokasikan ketiga wilayah tersebut tanpa membatasi
jumlah tenaga penjual di setiap wilayah sdrs
hasil penjualan maksimum.
5/22/2018 Pemrograman Dinamis
7/34
Contoh Program Dinamik (1)
Permasalahan
Alternatif Keputusan
Salesman/Daerah
Tingkat Pengembalian/Daerah
Utara Timur Selatan
0 0 0 2
1 7 9 6
2 12 15 103 20 18 16
5/22/2018 Pemrograman Dinamis
8/34
Contoh Program Dinamik (2)
Model Matatematika Masalah
Maksimum R1+R2+R3
Ditujukan
D1+D2+D3 3
Dimana
R1, R2, R3 = pengembalian dari tiap 3 daerahD1, D2, D3 = keputusan penempatan
salesman ke tiap 3 daerah
5/22/2018 Pemrograman Dinamis
9/34
Contoh Program Dinamik (3)
Tahap 1 : Alokasi ke Daerah SelatanKeadaan 1 (S1):
Salesman Tersedia
Keputusan 1 (D1):
Alokasi Salesman
Pengembalian 1(R1):
Jumlah Penjualan
0 0 2
1 0 2
1 6
2 0 2
1 6
2 10
3 0 2
1 6
2 10
3 16
5/22/2018 Pemrograman Dinamis
10/34
Contoh Program Dinamik (4)
Tahap 1 : Alokasi ke Daerah Selatan (Opt)Keadaan 1 (S1):
Salesman Tersedia
Keputusan 1 (D1):
Alokasi Salesman
Pengembalian 1(R1):
Jumlah Penjualan
0 0 2
1 0 2
1 6
2 0 2
1 6
2 10
3 0 2
1 6
2 10
3 16
5/22/2018 Pemrograman Dinamis
11/34
Contoh Program Dinamik (5)
Tahap 2 : Alokasi ke Daerah TimurKeadaan 2
(S2):
Salesman
Tersedia
Keputusa 2
(D2):
Alokasi
Salesman
Pengembali
an 2 (R2):
Jumlah
Penjualan
Keadaan 1
(S1):
Salesman
Tersedia
Pengembali
an 1(R1):
Jumlah
Penjualan
Total
Pengembali
an (R1+R2)
0 0 0 0 2 2
1 0 0 1 6 6
1 9 0 2 11
2 0 0 2 10 10
1 9 1 6 15
2 15 0 2 17
3 0 0 3 16 16
1 9 2 10 19
2 15 1 6 21
3 18 0 2 20
5/22/2018 Pemrograman Dinamis
12/34
Contoh Program Dinamik (6)
Tahap 2 : Alokasi ke Daerah Timur (Opt)Keadaan 2
(S2):
Salesman
Tersedia
Keputusa 2
(D2):
Alokasi
Salesman
Pengembali
an 2 (R2):
Jumlah
Penjualan
Keadaan 1
(S1):
Salesman
Tersedia
Pengembali
an 1(R1):
Jumlah
Penjualan
Total
Pengembali
an (R1+R2)
0 0 0 0 2 2
1 0 0 1 6 6
1 9 0 2 11
2 0 0 2 10 10
1 9 1 6 15
2 15 0 2 17
3 0 0 3 16 16
1 9 2 10 19
2 15 1 6 21
3 18 0 2 20
5/22/2018 Pemrograman Dinamis
13/34
Contoh Program Dinamik (7)
Tahap 3 : Alokasi ke Daerah Utara
Keadaan 3
(S3):
Salesman
Tersedia
Keputusa
3 (D3):
Alokasi
Salesman
Pengemba
lian 3
(R3):
Jumlah
Penjualan
Keadaan 2
(S2):
Salesman
Tersedia
Pengemba
lian 2(R2):
Jumlah
Penjualan
Total
Pengemba
lian
(R1+R2+R
3)
3 0 0 3 21 21
1 7 2 17 24
2 12 1 11 23
3 20 0 2 22
5/22/2018 Pemrograman Dinamis
14/34
Contoh Program Dinamik (8)
Tahap 3 : Alokasi ke Daerah Utara (Opt)
Keadaan 3
(S3):
Salesman
Tersedia
Keputusa
3 (D3):
Alokasi
Salesman
Pengemba
lian 3
(R3):
Jumlah
Penjualan
Keadaan 2
(S2):
Salesman
Tersedia
Pengemba
lian 2(R2):
Jumlah
Penjualan
Total
Pengemba
lian
(R1+R2+R
3)
3 0 0 3 21 21
1 7 2 17 24
2 12 1 11 23
3 20 0 2 22
5/22/2018 Pemrograman Dinamis
15/34
Contoh Program Dinamik (8)
Urutan Keputusan Optimal
Keadaan
(daerah)
Alokasi
SalesmanPengembalian
1. Selatan 0 2
2. Timur 2 15
3. Utara 1 7
Total 3 24
5/22/2018 Pemrograman Dinamis
16/34
Problem Knapsack
Permasalahan mengenai berapa jumlah tiap
jenis barang yang berbeda dapat dimasukkan
ke dalam sebuah ransel guna
memaksimumkan pengembalian dari barang-barang tersebut. Ransel punya kapasitas
tertentu (5 ruang)
5/22/2018 Pemrograman Dinamis
17/34
Contoh Problem Knapsack (1)
Permasalahan
Alternatif Barang
yang Dibawa
Berat LabaX 2 90
Y 3 150Z 1 30
5/22/2018 Pemrograman Dinamis
18/34
Contoh Problem Knapsack (2)
Model Matatematika Masalah
Maksimum R1D1+R2D2+R3D3
Ditujukan
W1D1+W2D2+W3D3 5
Dimana
R1, R2, R3 = pengembalian dari tiap barang
D1, D2, D3 = keputusan jumlah barang yangdibawa
W1, W2, W3 = berat barang yang dibawa
5/22/2018 Pemrograman Dinamis
19/34
Contoh Problem Knapsack (3)
Tahap 1 : Keputusan X
Keadaan 1 (S1):
Ruang Tersedia
Keputusan 1
(D1): Jumlah
Barang
Kebutuhan
Ruang
Pengembalian
1(R1)
5 2 4 180
4 2 4 1803 1 2 90
2 1 2 90
1 0 0 0
0 0 0 0
5/22/2018 Pemrograman Dinamis
20/34
Contoh Problem Knapsack (4)
Tahap 1 : Keputusan X (Opt)
Keadaan 1 (S1):
Ruang Tersedia
Keputusan 1
(D1): Jumlah
Barang
Kebutuhan
Ruang
Pengembalian
1(R1)
5 2 4 180
4 2 4 1803 1 2 90
2 1 2 90
1 0 0 0
0 0 0 0
5/22/2018 Pemrograman Dinamis
21/34
Contoh Problem Knapsack (5)
Tahap 2 : Keputusan Y
Keadaa
n 2 (S2)
Keput
usan
2
(D2)
Kebutu
han
Ruang
Penge
mbalia
n 2(R2)
Keada
an 1
(S1)
Keputu
san 1
(D1)
Penge
mbalia
n 1
(R1)
Penge
mbalia
n Total
(R)
5 1 3 150 2 1 90 2400 0 0 5 2 180 180
4 1 3 150 1 0 0 150
0 0 0 4 2 180 180
3 1 3 150 0 0 0 1500 0 0 3 1 90 90
2 0 0 0 2 1 90 90
1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
5/22/2018 Pemrograman Dinamis
22/34
Contoh Problem Knapsack (6)
Tahap 2 : Keputusan Y (Opt)
Keadaa
n 2 (S2)
Keput
usan
2
(D2)
Kebutu
han
Ruang
Penge
mbalia
n 2(R2)
Keada
an 1
(S1)
Keputu
san 1
(D1)
Penge
mbalia
n 1
(R1)
Penge
mbalia
n Total
(R)
5 1 3 150 2 1 90 2400 0 0 5 2 180 180
4 1 3 150 1 0 0 150
0 0 0 4 2 180 180
3 1 3 150 0 0 0 1500 0 0 3 1 90 90
2 0 0 0 2 1 90 90
1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
5/22/2018 Pemrograman Dinamis
23/34
Contoh Problem Knapsack (7)
Tahap 3 : Keputusan Z
Keadaa
n 3 (S3)
Keput
usan
3
(D3)
Kebutu
han
Ruang
Penge
mbalia
n 3(R3)
Keada
an 2
(S2)
Keputu
san 2
(D2)
Penge
mbalia
n 2
(R2)
Penge
mbalia
n Total
(R)
5 5 5 150 0 0 0 1504 4 120 1 0 0 120
3 3 90 2 0 90 180
2 2 60 3 1 150 210
1 1 30 4 0 180 2100 0 0 5 1 240 240
5/22/2018 Pemrograman Dinamis
24/34
Contoh Problem Knapsack (8)
Tahap 3 : Keputusan Z
Keadaa
n 3 (S3)
Keput
usan
3
(D3)
Kebutu
han
Ruang
Penge
mbalia
n 3(R3)
Keada
an 2
(S2)
Keputu
san 2
(D2)
Penge
mbalia
n 2
(R2)
Penge
mbalia
n Total
(R)
5 5 5 150 0 0 0 1504 4 120 1 0 0 120
3 3 90 2 0 90 180
2 2 60 3 1 150 210
1 1 30 4 0 180 2100 0 0 5 1 240 240
5/22/2018 Pemrograman Dinamis
25/34
Contoh Problem Knapsack (9)
Keputusan Optimal
Keadaan
(Barang)
Jumlah
Barang
Kebutuhan
Ruang
Pengem
balian
X 1 2 90
Y 1 3 150
Z 0 0 0
Total 5 240
5/22/2018 Pemrograman Dinamis
26/34
Problema Stagecoach
Suatu jaringan pengarahan perjalanan
dimana seorang pengarah jalan (abad 19)
ingin menentukan rute terpendek antara dua
kota (1 dan 7) berdasarakan rute alternatifyang tersedia.
5/22/2018 Pemrograman Dinamis
27/34
Problema Stagecoach (1)
Tahap 1
Keadaan 1 (S1):
Lokasi Truk
Keputusan 1
(D1): Rute
Pengembalian 1
(R1): Waktu
Tempuh
5 57 8
6 67 14
5/22/2018 Pemrograman Dinamis
28/34
Problema Stagecoach (1)
Tahap 1 (Opt)
Keadaan 1 (S1):
Lokasi Truk
Keputusan 1
(D1): Rute
Pengembalian 1
(R1): Waktu
Tempuh
5 57 8
6 67 14
5/22/2018 Pemrograman Dinamis
29/34
Problema Stagecoach (1)
Tahap 2
Keadaa
n 2 (S2)
Keputus
an 2
(D2)
Penge
mbalian
2 (R2)
Keadaa
n 1 (S1)
Pengem
balian 1
(R1)
Pengem
balian
Total (R)
2 25 25 5 8 33
26 17 6 14 31
3 35 14 5 8 22
36 17 6 14 31
4 45 26 5 8 34
46 22 6 14 36
5/22/2018 Pemrograman Dinamis
30/34
Problema Stagecoach (1)
Tahap 2 (Opt)
Keadaa
n 2 (S2)
Keputus
an 2
(D2)
Penge
mbalian
2 (R2)
Keadaa
n 1 (S1)
Pengem
balian 1
(R1)
Pengem
balian
Total (R)
2 25 25 5 8 33
26 17 6 14 31
3 35 14 5 8 22
36 17 6 14 31
4 45 26 5 8 34
46 22 6 14 36
5/22/2018 Pemrograman Dinamis
31/34
Problema Stagecoach (1)
Tahap 3
Keadaa
n 3 (S3)
Keputus
an 3
(D3)
Penge
mbalian
3 (R3)
Keadaa
n 2 (S2)
Pengem
balian 2
(R2)
Pengem
balian
Total (R)
1 12 16 2 31 47
13 35 3 22 57
14 9 5 34 43
5/22/2018 Pemrograman Dinamis
32/34
Problema Stagecoach (1)
Tahap 3 (Opt)
Keadaa
n 3 (S3)
Keputus
an 3
(D3)
Penge
mbalian
3 (R3)
Keadaa
n 2 (S2)
Pengem
balian 2
(R2)
Pengem
balian
Total (R)
1 12 16 2 31 47
13 35 3 22 57
14 9 5 34 43
5/22/2018 Pemrograman Dinamis
33/34
Problema Stagecoach (1)
Keputusan Optimal
Rute yang diambil 1 457 dengan
jarak tempuh 43.
5/22/2018 Pemrograman Dinamis
34/34
Terima kasih