Transformasi
Model Keputusan dengan Tahap Tunggal
Xn Keputusan
(decision)
Sn n 𝑆𝑛
Status input Status output
(input state) (output state)
gn = r n(sn, xn)
Fungsi kontribusi
(contribution function)
Model Keputusan dengan Tahap Majemuk
X1 Xn-1 Xn Xn+1 XN
g1 gn-1 gn g1 gN
Dua pendekatan Pemrograman Dinamis
2. Pemrograman dinamis Mundur (backward atau bottom-up)
Pemrograman dinamis bergerak mulai dari tahap n, terus mundur ke tahap
n-1, n-2, dan seterusnya sampai tahap 1. Runtutan peubah keputusan adalah
Xn, Xn-1, …, X1.
X1 Xn-1 Xn Xn+1 XN
g1 gn-1 gn g1 gN
Tahap (n)
Variabel Status
(Sn)
Variabel
Keputusan (Xn)
Komponen .
Fungsi
Pemrograman dinamis
Kontribusi
Maju
deterministik
Prosedur
Fungsi Transisi
Pemecahan
Mundur
Hubungan
Minimasi rekursif
Ongkos
Maksimasi
Tipe Persoalan
Income
Penugasan
1. Tentukan prosedur pemecahan (maju atau mundur)
8. Lakukan perhitungan
Keterangan:
fn(sn, xn) = harga max (atau min) dari fungsi tujuan bila berada di tahap n dan
memilih xn sebagai variabel keputusan.
gn = fungsi kontribusi (hubungan antara tahap-tahap keputusan)
fn-1(sn-1)* =harga max (atau min) dari fn-1(sn-1, xn-1) di antara berbagai xn
Seorang pembisnis akan pergi dari kota A ke kota J dengan menggunakan
kendaraan umum. Banyak kemungkinan jalan yang dapat digunakan dari A menuju J.
Pebisnis tersebut menginginkan perjalanan dari A menuju J dengan biaya paling
murah. Besar biaya dan rute dari A menuju J disajikan dengan gambar berikut:
Definisi Masalah
1. Pemecahan mundur
2. Tahap n = daerah simpul
3. Status/kondisi tahap n sn = kota asal pada tahap n
4. Keputusan pada tahap n xn = kota yang harus ditempuh (yang dipilih)
5. Fungsi transisi sn+1 = xn (status pada tahap 4 adalah pilihan pada tahap 3)
6. Fungsi kontribusi pada tahap n gn = cs(xn) (cost pada setiap pilihan)
7. Hubungan rekursif fn*(sn) = min fn(sn, xn) (minimasi fungsi ongkos)
Dengan:
fn(sn, xn) = cs(xn) ; n = 4 (ongkos ketika di tahap 4)
fn(sn, xn) = cs(xn) + fn+1*(sn) ; n = 1, 2, 3
n=1 n=2 n=3 n=4
Pilih variabel keputusan xn (n= 1,2,3,4) sebagai kota
yang harus ditempuh pada tahap n. Sehingga, rute
keseluruhannya adalah x1 x2 x3 x4 (dengan x1 =
A dan x4 = J).
Pilih fn(sn, xn) sebagai biaya total sampai pada kondisi s,
siap berangkat ke tahap n, dengan memilih xn sebagai
kota tujuan berikutnya.
Pada kondisi s dan tahap n, gunakan xn* sebagai
sembarang nilai yang meminimumkan fn(sn, xn),
gunakan fn*(sn) sebagai nilai minimum dari fn(sn, xn).
fn*(sn) = min fn(sn, xn) = fn(sn, xn*) dengan fn(sn, xn)
adalah biaya sekarang (tahap n) + minimum biaya
(tahap n+1 dan selanjutnya) atau fn(sn, xn) = cs(xn) +
fn+1*(xn)
Tahap 4
Pada tahap akhir n=4, maka perjalanannya hanya ditentukan oleh kondisi sekarang s
(H atau I) dan tujuan akhir J sehingga f4*(s) = f4(s, J) = cs(J)
s f 4 = c4 f4*(s) x4*
J
H 3 3 J
I 4 4 J
s f4*(s) x4*
H 3 J
I 4 J
E, H 4 = 1+3
E, I 8 = 4+4
F, H 9 = 6+3
s f4*(s) x4* F, I 7 = 3+4
G, H 6 = 3+3
H 3 J G, I 7 = 3+4
I 4 J
Tahap 2
n=2
s f2 = c2 + f3* f2*(s) x2*
E F G
B 7+4 = 11 4+7 = 11 6+6 = 12 11 E,F
C 3+4 = 7 2+7 = 9 4+6 = 10 7 E
D 4+4 = 8 1+7 = 8 5+6 = 11 8 E,F
B, E 11 = 7+4
B, F 11 = 4+7
B, G 12 = 6+6
s f3 = c3 + f4* f3*(s) x3* C, E 7 = 3+4
C, F 9 = 2+7
H I
C, G 10 = 4+6
E 4 8 4 H D, E 8 = 4+4
F 9 7 7 I D, F 8 = 1+7
G 6 7 6 H D, G 11 = 5+6
Tahap 1
n=1
s f1 = c1 + f2* f1*(s) x1*
B C D
A 2+11 = 13 4+7 = 11 3+8 = 11 11 C, D
A, B 13 = 2+11
A, C 11 = 4+7
A, D 11 = 3+8
Lintasan 1 : A C E H J
Lintasan 2 : A D E H J
Lintasan 3 : A D F I J
Sebuah perusahaan memiliki kapasitas produksi sebesar 700 ton per bulan. Distribusi
produk dilakukan melalui transportasi darat untuk menghemat biaya pengiriman. Pasar
yang dituju adalah pasar A, B, dan C. Dari pengalaman yang ada, return dari setiap
pasar dapat dilihat pada tabel berikut:
Jumlah produk Return dari kota Return dari kota Return dari kota
(ratus ton) A (Rp) B (Rp) C (Rp)
0 0 0 0
1 8 6 6
2 10 12 17
3 23 15 18
4 30 27 25
i wi vi
1 1 30
2 3 80
3 2 65
Kembangkan persamaan rekursif untuk kasus di atas dan temukan beban muatan
dengan nilai maksimal tanpa melebihi berat maksimal muatan dengan
menggunakan pemograman dinamis!