TI 2001 Penelitian Operasional I 1
Pemrograman Bilangan Bulat
(Integer Programming)
Materi Bahasan
①
Pengantar pemrograman bilangan bulat
②
Beberapa contoh model pemrograman
bilangan bulat
③
Metode pemecahan bilangan bulat
Metode cutting-plane
Metode branch-and-bound (termasuk untuk pemrograman bilangan bulat biner)
TI 2001 Penelitian Operasional I 3
①
Pengantar Pemrograman Bilangan
Pemrograman Bilangan Bulat
• Pemrograman bilangan bulat (
integer
programming
) mensyaratkan bahwa beberapa
variabel keputusan harus mempunyai nilai
yang bulat (bukan pecahan)
• Pembahasan hanya ditujukan untuk masalah
pemrograman linier bilangan bulat (
integer
TI 2001 Penelitian Operasional I 5
Jenis Pemrograman Bilangan Bulat
• Pemrograman linier bilangan bulat
murni
,
(
pure
integer linear programming, PILP
)
• Pemrograman linier bilangan bulat
campuran
,
(
mixed
integer linear programming, MILP
)
• Pemrograman linier bilangan bulat
biner
,
Fungsi Variabel Biner
• Penangangan pembatas
either-or
• Penanganan nilai lebih dari satu yang mungkin
dari suatu pembatas
• Representasi bentuk lain dari variabel bilangan
bulat
TI 2001 Penelitian Operasional I 7
Pembatas
Either-Or
18
2
3
x
1
x
2
16
4
2 1
x
x
18 2 3x1 x2 M x x 2 18 3 1 2 16 4 2 1 x x dan dan My x x 2 18 3 1 2 ) 1 ( 16 4 2 1 x M y x atau PL format: atau M x x1 4 2 16 bila y = 0
0,1 y bila y = 1Fungsi dengan
N
Nilai yang Mungkin (1)
x x xn
d d dNf 1, 2,, 1 atau 2 atau atau
N i i i n d y x x x f 1 2 1, ,, Perumusan PLBB: 1 1
N i i y
i N yi 0,1 , 1,2,,TI 2001 Penelitian Operasional I 9
Fungsi dengan
N
Nilai yang Mungkin (2)
3 2 1 2 1 2 6 12 18 3x x y y y
maka perumusan PLBB-nya adalah :
1 3 2 1 y y y
0,1 , 1,2,3 i yiRepresentasi Biner untuk
Variabel Bilangan Bulat (1)
u
x
0
dimana
2
N
u
2
N1 Representasi biner:
N i i iy
x
02
i
N
y
i
0
,
1
,
0
,
1
,
2
,
,
TI 2001 Penelitian Operasional I 11
Representasi Biner untuk
Variabel Bilangan Bulat (2)
5
1
x
Representasi biner:5
4
2
1 2 0
y
y
y
0
,
1
,
0
,
1
,
2
i
y
i30
3
2
x
1
x
2
2
4
3
2
4
8
30
2
y
0
y
1
y
2
w
0
w
1
w
2
w
3
u untuk x1 = 5 22 5 23 u untuk x2 = 10 23 10 24
0
,
1
,
0
,
1
,
2
,
3
i
w
i x1, x2 bil. bulat②
Beberapa Contoh Model Pemrograman
TI 2001 Penelitian Operasional I 13
Beberapa Contoh Model-model Pemrograman
Bilangan Bulat
•
Fixed charge problem
•
Knapsack problem
•
Set covering problem
– Set Partitioning Problem
•
Traveling salesman problem
Fixed Charge Problem
(1)
Misalkan terdapat n jenis produk
pj = harga satuan produk j
Kj = biaya tetap untuk memproduksi produk j (independen terhadap jumlah produksi, bila produk j yang dibuat > 0)
cj = biaya variabel untuk memproduksi produk j (proporsional terhadap jumlah produksi)
bi = kapasitas sumber i (i = 1, …m)
TI 2001 Penelitian Operasional I 15
Fixed Charge Problem
(2)
Permasalahan :
Menentukan produk mana yang perlu diproduksi dan jumlah produksinya masing-masing agar diperoleh profit (selisih penjualan dengan biaya tetap dan variabel) total yang maksimum dengan memperhatikan kondisi:
- ketersediaan kapasitas
- jika suatu produk diputuskan untuk tidak diproduksi maka jumlah produksinya nol.
Variabel keputusan :
xj = jumlah produk j yang diproduksi
yj = keputusan untuk memproduksi produk j atau tidak; yj = 1 jika produk j diproduksi
Fixed Charge Problem
(3)
n j j j j j n j j jx K y c x p Z 1 1 Maksimasi dengan pembatas-pembatas: m i b x a i n j j ij , 1, , 1
n j My xj j, 1,, n j xj 0, 1,,
j n yj 0,1 , 1,...,TI 2001 Penelitian Operasional I 17
Knapsack Problem
(1)
Misalkan terdapat n item.
wj = berat item j
vj = nilai item j
W = kapasitas muatan (berat) dari kantong
Permasalahan :
Menentukan banyaknya setiap item yang perlu dimasukkan ke dalam kantong agar diperoleh nilai total yang maksimum dengan memperhatikan kondisi kapasitas muatan (berat) dari kantong Variabel keputusan :
Knapsack Problem
(2)
n j j jx
v
Z
1 Maksimasi dengan pembatas-pembatas:W
x
w
n j j j
1bulat
bilangan
dan
0
jx
TI 2001 Penelitian Operasional I 19
Set Covering Problem
(1)
Jalan C Jalan D Jalan B Jalan A Jalan E Jal an G Jal an K Jal an J Jal an I Jal an H 1 2 6 7 4 8 5 3
Contoh masalah set covering problem dalam menentukan lokasi pendirian pos siskamling
Set Covering Problem
(2)
Misalkan terdapat n lokasi pendirian pos dan m jalan.
cj = biaya mendirikan pos di lokasi j aij = konstanta biner (0-1)
aij = 1 jika jalan i dilayani oleh pos yang berlokasi di j aij = 0 jika sebaliknya
Pertanyaan:
Menentukan lokasi pendirian pos dimana tiap jalan dapat dilayani minimal oleh satu pos sehingga diperoleh biaya total pendirian yang minimum
Variabel keputusan
xj = variabel biner (0-1) yang menentukan keputusan untuk mendirikan pos di lokasi j (xj = 1 jika pos dididikan di lokasi j, xj = 0 sebaliknya)
TI 2001 Penelitian Operasional I 21
Set covering problem
(3)
n j j jx
c
Z
1 Minimasi dengan pembatas-pembatas:m
i
x
a
n j j ij1
,
1
,...,
1
j
n
x
j
0
,
1
,
1
,...,
Set Partitioning Problem
n j j jx
c
Z
1 Minimasi dengan pembatas-pembatas:m
i
x
a
n j j ij1
,
1
,...,
1
j
n
x
j
0
,
1
,
1
,...,
Tiap jalan tepat dilayani oleh satu posTI 2001 Penelitian Operasional I 23
Traveling Salesman Problem
(1)
1 2 3 4 5 5 6 3 4 3 8 2 6 1 7 (jarak)
Traveling Salesman Problem
(2)
Misalkan terdapat n titik.
cij = jarak antara titik i ke titik j (cij = untuk i = j) Permasalahan
Menentukan rute salesman yang berangkat dari suatu titik dan mengunjungi setiap titik yang lain paling banyak sekali, serta kembali ke titik asal agar diperoleh jarak total yang minimum Variabel keputusan
xij = keputusan untuk melintasi atau tidak busur (i, j) xij = 1 jika busur (i, j) dilintasi
TI 2001 Penelitian Operasional I 25
Traveling Salesman Problem
(3)
n j n j ij ijx c Z 1 1 Minimasi dengan pembatas-pembatas: n i x n j ij 1, 1, , 1
n j x n i ij 1, 1, , 1
j i n j n i n nx u ui j ij 1, 2,, ; 2,, ;
i n j n xij 0,1 , 1,, ; 1, n i ui 0, 1,..., Subtour breaking constraintTraveling Salesman Problem
(4)
1 2 3 4 5 SubtourSubtour breaking constraint bertujuan untuk mengeliminasi terjadinya solusi subtour
TI 2001 Penelitian Operasional I 27
Traveling Salesman Problem
(5)
1 2 3 4 5 Tour
Suatu solusi traveling salesman problem yang layak (terbentuknya suatu tour).
Job Scheduling Problem
(1)
Misalkan
-terdapat n job dengan operasi-tunggal -terdapat satu mesin tunggal
pj = waktu pengerjaan job j
wj = bobot kepentingan job j
Permasalahan:
Menentukan saat awal (juga secara implisit menentukan saat akhir) pengerjaan job agar diperoleh waktu penyelesaian
tertimbang total (total weighted completion time) yang minimum dengan memperhatikan bahwa pada suatu saat mesin hanya dapat mengerjakan satu operasi (job)
TI 2001 Penelitian Operasional I 29
Job Scheduling Problem
(2)
Variabel keputusan:
Bj = saat awal pengerjaan job j Cj = saat akhir pengerjaan job j
yij = keputusan apakah job i mendahului job j yij = 1 jika job i mendahului job j
yij = 0 jika sebaliknya
0
3 1 4 5 2
p3 p1 p4 p5 p2
Job Scheduling Problem
(3)
n j j jC w Z 1 Minimasi dengan pembatas-pembatas: n i p Cj j, 1,,
y
p i n j n i j M C Cj i 1 ij i, 1,, ; 1, , n i Cj 0, 1,..., j i n j n i p My C Ci j ij j, 1,, ; 1, ;
i n j n yij 0,1 , 1,..., , 1, n i p C Bj j j, 1,, Disjunctive constraint (Either-or constraint)TI 2001 Penelitian Operasional I 31
③
Metode Pemecahan Model
Metode Pemecahan Model Pemrograman
Bilangan Bulat
•
Cutting method
– Cutting Plane
•
Search method
TI 2001 Penelitian Operasional I 33
Algoritma
Cutting Plane
• Dikembangkan oleh R.E. Gomory
• Algoritma
– Fractional algorithm untuk masalah pemrograman bilangan bulat murni (PILP)
– Mixed algorithm untuk masalah pemrograman bilangan bulat campuran (MILP)
Ilustrasi Suatu Masalah PLBB
Maximasi : Z = 7x1 + 9x2
s/t : –x1 + 3x2 6 7x1 + x2 35
TI 2001 Penelitian Operasional I 35
Daerah layak
x2
TI 2001 Penelitian Operasional I 36
Solusi Optimal Kontinyu
(dengan mengabaikan kondisi integralitas)
x2 x1
21
2 1 2 1, ) 4 ,3 (x x 63 ZTI 2001 Penelitian Operasional I 37
Ide Dasar dari
Cutting Plane
• Mengubah
convex set
dari daerah daerah
feasible (
solution space
) sehingga titik ekstrem
yang diperoleh berupa bilangan bulat
• Perubahan dibuat tanpa memotong (
slicing off)
daerah layak sehingga menghilangkan
bilangan bulat yang ada.
• Perubahan dilakukan dengan penambahan
beberapa
secondary constraint
.
Penambahan Pembatas Sekunder
x2 x1 secondary constraint
4 3 2 1, ) , (x x 55 ZTI 2001 Penelitian Operasional I 39
Fractional Algorithm
(1)
• Digunakan untuk memecahkan masalah
pemrograman linier bilangan bulat murni (PILP). • Mensyaratkan bahwa semua koefisien teknologi dan
konstanta ruas kanan adalah bilangan bulat.
• Pada awalnya, masalah PILP dipecahkan sebagai PL
reguler, yaitu dengan mengabaikan persyaratan bilangan bulat (= PL relaksasi).
2 13 3 1 2 1 x x
6
x
1
2
x
2
39
Fractional Algorithm
(2)
Basis x1 xi xm w1 wj wn Solusi X1 1 0 0 11 1j 1n 1 Xi 0 1 0 i1 ij in i xm 0 0 1 m1 mj mn m 0 0 0 0 j c c1 cj cnTI 2001 Penelitian Operasional I 41
Fractional Algorithm
(3)
Variabel xi (i = 1, …, m) menunjukkan variabel basis
Variabel wj (j = 1, …, n) menunjukkan variabel non basis Misalkan persamaan ke-i dimana variabel xi diasumsikan bernilai bilangan bulat
bulat bilangan bukan , i 1
n j j j i i i w x (baris sumber)Fractional Algorithm
(4)
Misal:
i
i
f
i
ij j i j i
f
dimana :N = [a] adalah bilangan bulat terbesar sehingga N a
0 < fi < 1 0 fij < 1
TI 2001 Penelitian Operasional I 43
Fractional Algorithm
(5)
Dari baris sumber diperoleh:
n j j j i i i n j i ij i f w x w f 1 1 Agar semua xi dan wj adalah bilangan bulat,
maka ruas kanan dari persamaan harus bilangan bulat
Akibatnya, ruas kiri harus bilangan bulat
bulat bilangan bukan , i 1
n j j j i i i w x
f } {
f }w ; bukanbilangan bulat { x i n j j ij j i i i i
1Fractional Algorithm
(6)
Karena fij 0 dan wj 0 untuk semua i dan j maka
0
1
n j j ijw
f
Akibatnya i n j j ij if
w
f
f
1TI 2001 Penelitian Operasional I 45
Fractional Algorithm
(7)
1
1
n j j ij if
w
f
Karena fi < 1 makaKarena ruas kiri harus bilangan bulat, maka syarat perlu untuk memenuhi integralitas adalah:
0
1
n j j ij if
w
f
Fractional Algorithm
(8)
Pertidaksamaan terakhir dapat dijadikan sebagai pembatas dalam bentuk: i n j j ij i f w f S
1 (fractional cut) 0 1
i n j j ij i f w S fTI 2001 Penelitian Operasional I 47
Fractional Algorithm
(9)
Basis x1 xi xm w1 wj wn Si Solusi x1 1 0 0 11 1j 1n 0 1 xi 0 1 0 i1 ij in 0 i xm 0 0 1 m1 mj mn 0 m Si 0 0 0 -fi1 -f ij -fim 1 -fi 0 0 0 0 0 j c c1 cj cnFractional Algorithm
(10)
• Dengan penambahan
fractional cut
, tabel
terakhir menjadi tidak layak walaupun optimal
sehingga metode
dual simplex
diterapkan
untuk meniadakan ketidaklayakan.
• Algoritma berhenti jika solusi optimal
bilangan bulat diperoleh.
TI 2001 Penelitian Operasional I 49
Fractional Algorithm
(11)
i n j j ijw
f
f
1 k n j j kjw
f
f
1Cut (1) dikatakan lebih kuat dari cut (2) jika
fi fk dan fij fkj untuk semua j dengan strict inequality
terpenuhi paling sedikit satu Kekuatan fractional cut
………..(1) ………..(2)
Fractional Algorithm
(12)
Aturan :
i if
max
n j ij i if
f
1max
TI 2001 Penelitian Operasional I 51
Contoh Penerapan
Fractional Algorithm
(1)
Maximasi Z = 7x1 + 9x2
s/t :
–x1 + 3x2 6 7x1 + x2 35
Contoh Penerapan
Fractional Algorithm
(2)
Basis x1 x2 x3 x4 Solusi
x2 0 1 7/22 1/22 3 1/2
x1 1 0 -1/22 3/22 4 1/2
cj – zj 0 0 -28/11 -15/11 Z = 63 Tabel optimal kontinyu
TI 2001 Penelitian Operasional I 53
Contoh Penerapan
Fractional Algorithm
(3)
2 7 22 1 22 7 4 3 2 x x x 2 1 3 22 1 0 22 7 0 3 4 2 x x x 2 1 22 1 22 7 4 3 1 x x S Fractional cut:
Contoh Penerapan
Fractional Algorithm
(4)
Basis x1 x2 x3 x4 S1 Solusi x2 0 1 7/22 1/22 0 7/2 x1 1 0 -1/22 3/22 0 9/2 S1 0 0 -7/22 -1/22 1 -1/2 cj – zj 0 0 -28/11 -15/11 0 Tabel setelah penambahan fractional cutTI 2001 Penelitian Operasional I 55
Contoh Penerapan
Fractional Algorithm
(5)
Basis x1 x2 x3 x4 S1 Solusi
x2 0 1 0 0 1 3
x1 1 0 0 1/7 -1/7 4 4/7
x3 0 0 1 1/7 -22/7 1 4/7
cj – zj 0 0 0 -1 -8 Z = 59 Tabel yang diperoleh dengan dual simplex:
Contoh Penerapan
Fractional Algorithm
(6)
7 4 4 7 1 7 1 1 4 1 x S x 7 4 4 7 6 1 7 1 0 4 1 1 x S x 7 4 7 6 7 1 1 4 2 x S S Fractional cut:TI 2001 Penelitian Operasional I 57
Contoh Penerapan
Fractional Algorithm
(7)
Basis x1 x2 x3 x4 S1 S2 Solusi x2 0 1 0 0 1 0 3 x1 1 0 0 1/7 -1/7 0 4 4/ 7 x3 0 0 1 1/7 -22/7 0 1 4/7 S2 0 0 0 -1/7 -6/7 1 -4/7 cj – zj 0 0 0 -1 -8 0
Contoh Penerapan
Fractional Algorithm
(8)
Basis x1 x2 x3 x4 S1 S2 Solusi x2 0 1 0 0 1 0 3 x1 1 0 0 0 -1 1 4 x3 0 0 1 0 -4 1 1 x4 0 0 0 1 6 -7 4 cj – zj 0 0 0 -2 -7 0 Z = 55Solusi bilangan bulat optimal, x1 = 4, x2 = 3; Z = 55 Tabel yang diperoleh dengan dual simplex:
TI 2001 Penelitian Operasional I 59 2 1 22 1 22 7 4 3 1 x x S
Ilustrasi
Fractional Cut
secara Grafis (1)
2 1 7 35 22 1 3 6 22 7 2 1 2 1 1 x x x x S 3 2 1 x S 3 2 x Fractional cut 1:Ilustrasi
Fractional Cut
secara Grafis (2)
x2 x1 3 2 x Dg.fractional cut 1, solusi optimal integer belum diperolehTI 2001 Penelitian Operasional I 61 7 4 7 6 7 1 1 4 2 x S S
Ilustrasi
Fractional Cut
secara Grafis (3)
7 4 3 7 6 7 35 7 1 2 2 1 2 x x x S 7 2 1 2 x x S 7 2 1 x x Fractional cut 2:Ilustrasi
Fractional Cut
secara Grafis (4)
x2 x1 3 2 x 7 2 1 x x Dg.ditambah fractional cut 2, diperoleh solusi optimal integerTI 2001 Penelitian Operasional I 63
Mixed Algorithm
(1)
• Digunakan untuk memecahkan masalah
pemrograman linier bilangan bulat campuran
(
MILP
)
• Pada awalnya, masalah MILP dipecahkan sebagai PL
reguler, yaitu dengan mengabaikan kondisi integralitas.
Mixed Algorithm
(3)
Maximasi Z = 7x1 + 9x2
s/t :
–x1 + 3x2 6 7x1 + x2 35
x1 ≥ 0 dan bilangan bulat
TI 2001 Penelitian Operasional I 65
Mixed Algorithm
(3)
n j j j k k k w x 1 Misal xk adalah variabel bilangan bulat dari masalah MILP.
Persamaan-xk dalam solusi kontinyu optimal:
n j j j k k k k f w x 1
n j j j k k k k f w x 1 (baris sumber)Mixed Algorithm
(4)
Untuk xk adalah bilangan bulat, maka
atau
1
k k k kx
x
harus dipenuhi k n j k j kw
f
1
Dari baris sumber :
1
1
k n j k j kw
f
(1) (2) kondisi 1) :
n j j j k k k k f w x 1
n j j j k k α w f 1 0 ekivalen dengan :
k kβ
x
2) :x
k
β
k
1
ekivalen dengan :
n j j j k k α w f 1 1TI 2001 Penelitian Operasional I 67
Mixed Algorithm
(5)
Misal : J+ = himpunan subscripts j untuk
kj 0 J- = himpunan subscripts j untuk
kj < 0 Dari (1) diperoleh : k n J j k j kw
f
k n J j k j k k kw
f
f
f
1
(3) (4)1
1
k n j k j kw
f
1 k n J j k j kw f αMixed Algorithm
(6)
Karena (1) dan (2) tidak dapat terjadi secara simultan, maka : k n J j k j k k k n J j k j k α w f f f w α
1 k n J j k j kw
f
(3) dan k n J j k j k k kf
w
f
f
1
(4)TI 2001 Penelitian Operasional I 69
Mixed Algorithm
(6)
k n J j k j k k k n J j k j k kw
f
f
f
w
S
1
(mixed cut) k k n J j k j k k k n J j k j k α w S f f f w α
1Contoh Penerapan
Mixed Algorithm
(1)
Maksimasi : Z = 7x1 + 9x2
dengan pembatas-pembatas: –x1 + 3x2 6
7x1 + x2 35
x1 ≥ 0 dan bilangan bulat
TI 2001 Penelitian Operasional I 71
Contoh Penerapan
Mixed Algorithm
(2)
Basis x1 x2 x3 x4 Solusi
x2 0 1 7/22 1/22 7/2
x1 1 0 -1/22 3/22 9/2
cj – zj 0 0 -28/11 -15/11 Z = 63 Tabel optimal kontinyu:
Contoh Penerapan
Mixed Algorithm
(3)
2 1 4 22 3 22 1 4 3 1 x x x 2 1 22 1 1 22 3 3 2 1 2 1 4 1 x x S 2 1 22 3 22 1 4 3 1 x x S Mixed cut:Baris sumber persamaan-x1
21 1 , 4 , 3 f J JTI 2001 Penelitian Operasional I 73
Contoh Penerapan
Mixed Algorithm
(4)
Basis x1 x2 x3 x4 S1 Solusi
x2 0 1 7/22 1/22 0 7/2
x1 1 0 -1/22 3/22 0 9/2
S1 0 0 -1/22 -3/22 1 -1/2
cj – zj 0 0 -28/11 -15/11 0 Tabel setelah penambahan mixed cut
Contoh Penerapan
Mixed Algorithm
(5)
Basis x1 x2 x3 x4 S1 Solusi x2 0 1 10/33 0 -1/3 10/3 x1 1 0 -1/11 0 1 4 x4 0 0 1/3 1 -22/3 11/3 cj – zj 0 0 -23/11 -10 0 Z= 58 Tabel yang diperoleh dengan dual simplex:TI 2001 Penelitian Operasional I 75
Algoritma
Branch-and-Bound
(1)
• Metode yang paling banyak digunakan dalam
praktek untuk memecahkan masalah
pemrograman bilangan bulat baik murni
maupun campuran.
• Digunakan sebagian besar
software
komersial
• Pada dasarnya merupakan prosedur enumerasi
yang efisien untuk memeriksa semua solusi
layak yang mungkin.
Algoritma
Branch-and-Bound
(2)
• Algoritma BB untuk PLBB (Murni &
Campuran)
TI 2001 Penelitian Operasional I 77
Algoritma BB untuk PLBB (1)
Misalkan diberikan suatu masalah pemrograman bilangan bulat sebagai berikut:
Maksimasi Z = cx
dengan pembatas
Ax = b x 0
xj bilangan bulat untuk j I
Algoritma BB untuk PLBB (2)
• Langkah pertama adalah memecahkan masalah PLBB sebagai PL dengan mengabaikan pembatas bilangan bulat (langkah ini disebut langkah bounding)
• Misalkan masalah PL ini dinyatakan sebagai PL-1 dan mempunyai nilai optimal dg. nilai fungsi tujuan
Z1. PL-1 Maksimasi Z = cx dengan pembatas Ax = b x 0
TI 2001 Penelitian Operasional I 79
Algoritma BB untuk PLBB (3)
• Asumsikan bahwa solusi optimal dari PL-1 mengandung beberapa variabel yg.seharusnya
bernilai bulat tetapi nilai optimum kontinu saat ini adalah pecahan.
• Oleh karena solusi optimal bilangan bulat untuk
PLBB belum diperoleh, Z1 menjadi batas atas (upper bound) dari nilai maksimum Z untuk PLBB.
• Langkah berikutnya adalah membagi daerah layak dari PL-1 dengan mencabangkan (branching) salah satu variabel bilangan bulat yang nilainya saat ini pecahan
Algoritma BB untuk PLBB (4)
• Misalkan variabel
x
jdipilih untuk dicabangkan
dengan nilai pecahan
jdalam PL-1.
• Misalkan dibuat dua masalah pemrograman
linier baru, PL-2 dan PL-3 dengan
memasukkan masing-masing pembatas baru
TI 2001 Penelitian Operasional I 81
Algoritma BB untuk PLBB (5)
Maksimasi Z = cx dengan pembatas Ax = b xj [
] x 0 Maksimasi Z = cx dengan pembatas Ax = b xj [
]+1 x 0 PL-2 PL-3Algoritma BB untuk PLBB (6)
PL-1 PL-2 PL-3 Solusi pecahan Z1 Solusi pecahan Z2 ] [ j j x xj ≥[βj]+1 Solusi pecahan Z3TI 2001 Penelitian Operasional I 83
Algoritma BB untuk PLBB (7)
• Memecahkan (
bounding
) PL-2 dan PL-3
• Asumsikan solusi PL-2 dan PL-3 masih
pecahan
• Langkah berikutnya adalah memilih
node
Algoritma BB untuk PLBB (8)
• Setelah masalah PL sdh dipilih untuk dicabangkan lebih lanjut, langkah selanjutnya adalah
– memilih variabel bilangan bulat dengan nilai pecahan yang akan dicabangkan untuk membentuk 2 masalah PL baru (proses branching)
– memecahkan masalah PL yang baru (proses bounding)
• Jika solusi bilangan bulat telah diperoleh dari suatu masalah PL maka nilai Z-nya menjadi batas bawah
(lower bound) dari nilai maksimum Z untuk masalah PLBB.
TI 2001 Penelitian Operasional I 85
Algoritma BB untuk PLBB (9)
• Proses branching dan bounding berlanjut hingga semua node dalam kondisi fathomed.
• Fathoming suatu node (masalah PL):
– Solusi optimal PL merupakan bilangan bulat – Masalah PL adalah tak layak
– Nilai optimal Z dari masalah PL tidak lebih baik daripada
• batas bawah (lower bound) saat ini untuk masalah maksimisasi • batas atas (upper bound) saat ini untuk masalah minimisasi
Algoritma BB untuk PLBB (10)
PL-1 PL-2 PL-3 Solusi pecahan Z0 = Z1 Solusi pecahan Z2 ] [ j j x xj ≥[βj]+1 Solusi pecahan Z3 PL-4 PL-5 Tidak layak Solusi bulat Z4 ] [ i i x xi ≥[βi]+1TI 2001 Penelitian Operasional I 87
Algoritma BB untuk PLBB (11)
PL-1 PL-2 PL-4 PL-5 PL-3 PL-6 PL-7 Solusi pecahan Z0 = Z1 Solusi pecahan Z2 Tidak layak Solusi bulat Z4 Solusi pecahan Z6 < Z4 ] [ j j x ] [ i i x xk [k] Solusi pecahan Z3 Solusi pecahan Z7 >Z4 1 β + ≥[ j] j x 1 β ≥[ k]+ k x 1 β ≥[ i]+ i xAlgoritma BB untuk PLBB (12)
• Esensi dari algoritma BB
– Bounding
– Branching
TI 2001 Penelitian Operasional I 89
Contoh Penerapan Algoritma BB (1)
Maximasi Z = 2x1 + 3x2
s/t :
5x1 + 7x2 35 4x1 + 9x2 36
PL1
Maximasi Z = 2x1 + 3x2 dengan pembatas-pembatas: 5x1 + 7x2 35 4x1 + 9x2 36 x1, x2 ≥ 0 Feasible Solution Area 7 9 4 5 X1 X2 0 6 12 1 17 2 17 8 17 3 , 2 14 x x Z TI 2001 Penelitian Operasional I 91
Solusi Grafis (Kontinyu)
7 9 4 5 X1 X2 0
Contoh Penerapan Algoritma BB (2)
PL-1 17 8 17 6 2 17 12 1 14 2 , 3 Z x xTI 2001 Penelitian Operasional I 93
PL2
Maximasi Z = 2x1 + 3x2 dengan pembatas-pembatas: 5x1 + 7x2 35 4x1 + 9x2 36 x2 < 2 x1, x2 ≥ 0 Feasible Solution Area 7 9 4 5 X1 X2 0 1 1 5 2 2 5 4 , 2 14 x x Z PL3
Maximasi Z = 2x1 + 3x2 dengan pembatas-pembatas: 5x1 + 7x2 35 4x1 + 9x2 36 x2 > 3 x1, x2 ≥ 0 Feasible Solution Area 7 9 4 5 X1 X2 0 1 1 4 2 1 2 2 , 3 13 x x Z TI 2001 Penelitian Operasional I 95
Contoh Penerapan Algoritma BB (3)
PL-1 PL-2 PL-3 17 8 17 6 2 17 12 1 14 2 , 3 Z x x 2 2 x x2 3 2 1 2 4 1 1 13 3 , 2 Z x x 5 2 2 5 1 1 14 2 , 4 Z x x
PL4
Maximasi Z = 2x1 + 3x2 dengan pembatas-pembatas: 5x1 + 7x2 35 4x1 + 9x2 36 x2 < 2 x1 < 4 x1, x2 ≥ 0 Feasible Solution Area 7 9 4 5 X1 X2 0 1 4, 2 2 14 x x Z TI 2001 Penelitian Operasional I 97
PL5
FSA 7 9 4 5 X1 X2 0 3 1 2 7 2 7 5, 1 14 x x Z Maximasi Z = 2x1 + 3x2 dengan pembatas-pembatas: 5x1 + 7x2 35 4x1 + 9x2 36 x2 < 2 x1 > 5 x1, x2 ≥ 0Contoh Penerapan Algoritma BB (4)
PL-1 PL-2 PL-3 17 8 17 6 2 17 12 1 14 2 , 3 Z x x 2 2 x x2 3 2 1 2 4 1 1 13 3 , 2 Z x x 5 2 2 5 1 1 14 2 , 4 Z x x PL-4 PL-5 4 1 x x1 5 14 2 , 4 2 1 Z x x 7 2 7 3 2 1 14 1 , 5 Z x xTI 2001 Penelitian Operasional I 99
Contoh Penerapan Algoritma BB (5)
PL-1 PL-2 PL-3 17 8 17 6 2 17 12 1 14 2 , 3 Z x x 2 2 x x2 3 2 1 2 4 1 1 13 3 , 2 Z x x 5 2 2 5 1 1 14 2 , 4 Z x x PL-4 PL-5 4 1 x x1 5 14 2 , 4 2 1 Z x x 7 2 7 3 2 1 14 1 , 5 Z x x
Contoh Penerapan Algoritma BB (6)
PL-1 PL-2 PL-3 17 8 17 6 2 17 12 1 14 2 , 3 Z x x 2 2 x x2 3 2 1 2 4 1 1 13 3 , 2 Z x x 5 2 2 5 1 1 14 2 , 4 Z x x PL-4 PL-5 4 1 x x1 5 14 2 , 4 2 1 Z x x 7 2 7 3 2 1 14 1 , 5 Z x xTI 2001 Penelitian Operasional I 101
Contoh Penerapan Algoritma BB (7)
PL-1 PL-2 PL-3 17 8 17 6 2 17 12 1 14 2 , 3 Z x x 2 2 x x2 3 2 1 2 4 1 1 13 3 , 2 Z x x 5 2 2 5 1 1 14 2 , 4 Z x x PL-4 PL-5 4 1 x x1 5 14 2 , 4 2 1 Z x x 7 2 7 3 2 1 14 1 , 5 Z x x
Fathomed karena perbedaan nilai Z dengan lower bound < 1 dan semua koefisien fungsi tujuan adalah bulat
Solusi bilangan bulat optimal
x1 = 4, x2 = 2
Solusi Optimal
7 9 4 5 X1 X2 0 1 4, 2 2 14 x x Z TI 2001 Penelitian Operasional I 103
Contoh Penerapan Algoritma BB (8)
PL-1 17 8 17 6 2 17 12 1 14 2 , 3 Z x x Jika pencabang- annya dipilih dari PL-3 (bukan dari PL-2)
Contoh Penerapan Algoritma BB (9)
PL-1 PL-2 PL-3 17 8 17 6 2 17 12 1 14 2 , 3 Z x x 2 2 x x2 3 2 1 2 4 1 1 13 3 , 2 Z x x 5 2 2 5 1 1 14 2 , 4 Z x xTI 2001 Penelitian Operasional I 105
Contoh Penerapan Algoritma BB (10)
PL-1 PL-2 PL-3 17 8 17 6 2 17 12 1 14 2 , 3 Z x x 2 2 x x2 3 2 1 2 4 1 1 13 3 , 2 Z x x 5 2 2 5 1 1 14 2 , 4 Z x x PL-5 PL-4 2 1 x x1 3 Tidak layak 3 1 9 1 2 1 13 3 , 2 Z x x
Contoh Penerapan Algoritma BB (11)
PL-1 PL-2 PL-3 17 8 17 6 2 17 12 1 14 2 , 3 Z x x 2 2 x x2 3 2 1 2 4 1 1 13 3 , 2 Z x x 5 2 2 5 1 1 14 2 , 4 Z x x PL-5 PL-4 2 1 x x1 3 Tidak layak 3 1 9 1 2 1 13 3 , 2 Z x xTI 2001 Penelitian Operasional I 107
Contoh Penerapan Algoritma BB (12)
PL-1 PL-2 PL-3 17 8 17 6 2 17 12 1 14 2 , 3 Z x x 2 2 x x2 3 2 1 2 4 1 1 13 3 , 2 Z x x 5 2 2 5 1 1 14 2 , 4 Z x x PL-5 PL-4 2 1 x x1 3 Tidak layak 3 1 9 1 2 1 13 3 , 2 Z x x PL-6 PL-7 13 3 , 2 2 1 Z x x 3 2 x x2 4 12 4 , 0 2 1 Z x x
Contoh Penerapan Algoritma BB (13)
PL-1 PL-2 PL-3 17 8 17 6 2 17 12 1 14 2 , 3 Z x x 2 2 x x2 3 2 1 2 4 1 1 13 3 , 2 Z x x 5 2 2 5 1 1 14 2 , 4 Z x x PL-5 PL-4 2 1 x x1 3 Tidak layak 3 1 9 1 2 1 13 3 , 2 Z x x PL-6 PL-7 13 3 , 2 2 1 Z x x 3 2 x x2 4 12 4 , 0 2 1 Z x xTI 2001 Penelitian Operasional I 109
Contoh Penerapan Algoritma BB (14)
PL-1 PL-2 PL-3 17 8 17 6 2 17 12 1 14 2 , 3 Z x x 2 2 x x2 3 2 1 2 4 1 1 13 3 , 2 Z x x 5 2 2 5 1 1 14 2 , 4 Z x x PL-5 PL-4 2 1 x x1 3 Tidak layak 3 1 9 1 2 1 13 3 , 2 Z x x PL-6 PL-7 13 3 , 2 2 1 Z x x 3 2 x x2 4 12 4 , 0 2 1 Z x x
Contoh Penerapan Algoritma BB (15)
PL-1 PL-2 PL-3 17 8 17 6 2 17 12 1 14 2 , 3 Z x x 2 2 x x2 3 2 1 2 4 1 1 13 3 , 2 Z x x 5 2 2 5 1 1 14 2 , 4 Z x x PL-5 PL-4 2 1 x x1 3 Tidak layak 3 1 9 1 2 1 13 3 , 2 Z x x PL-6 PL-7 13 3 , 2 2 1 Z x x 3 2 x x2 4 12 4 , 0 2 1 Z x x PL-8 PL-9 4 1 x x1 5 14 2 , 4 2 1 Z x x 7 2 7 3 2 1 14 1 , 5 Z x xTI 2001 Penelitian Operasional I 111
Contoh Penerapan Algoritma BB (16)
PL-1 PL-2 PL-3 17 8 17 6 2 17 12 1 14 2 , 3 Z x x 2 2 x x2 3 2 1 2 4 1 1 13 3 , 2 Z x x 5 2 2 5 1 1 14 2 , 4 Z x x PL-5 PL-4 2 1 x x1 3 Tidak layak 3 1 9 1 2 1 13 3 , 2 Z x x PL-6 PL-7 13 3 , 2 2 1 Z x x 3 2 x x2 4 12 4 , 0 2 1 Z x x PL-8 PL-9 4 1 x x1 5 14 2 , 4 2 1 Z x x 7 2 7 3 2 1 14 1 , 5 Z x x
Contoh Penerapan Algoritma BB (17)
PL-1 PL-2 PL-3 17 8 17 6 2 17 12 1 14 2 , 3 Z x x 2 2 x x2 3 2 1 2 4 1 1 13 3 , 2 Z x x 5 2 2 5 1 1 14 2 , 4 Z x x PL-5 PL-4 2 1 x x1 3 Tidak layak 3 1 9 1 2 1 13 3 , 2 Z x x PL-6 PL-7 13 3 , 2 2 1 Z x x 3 2 x x2 4 12 4 , 0 2 1 Z x x PL-8 PL-9 4 1 x x1 5 14 2 , 4 2 1 Z x x 7 2 7 3 2 1 14 1 , 5 Z x xFathomed karena perbedaan nilai Z dengan lower bound < 1 dan semua koefisien fungsi tujuan adalah bulat
TI 2001 Penelitian Operasional I 113
Aturan Pencabangan (1)
• Aturan-aturan pencabangan variabel adalah sebagai berikut:
– Pilih variabel bilangan bulat yang mempunyai nilai pecahan terbesar dalam solusi PL.
– Pilih variabel bilangan bulat yang mempunyai prioritas paling tinggi.
• Menunjukkan keputusan yang terpenting dalam model • Mempunyai koefisien profit/biaya paling besar
• Mempunyai nilai yang kritis yang didasarkan pengalaman pengguna
– Aturan pemilihan bebas, misal, pilih variabel bilangan bulat dengan indeks paling kecil
Aturan Pencabangan (2)
• Aturan penentuan masalah PL yang hendak
dicabangkan:
– Nilai optimal dari fungsi tujuan
– LIFO (Last-In First-Out), yaitu masalah PL yang dipecahkan paling belakangan.
TI 2001 Penelitian Operasional I 115
Contoh Algoritma BB untuk PLBB Biner (1)
Maximasi Z = 9x1 + 5x2 + 6x3 + 4x4 dengan pembatas-pembatas: 6x1 + 3x2 + 5x3 + 2x4 10 x3 + x4 1 -x1 + x3 + 0 -x2 + x4 0 x1, x2, x3, x4 = {0, 1}
Contoh Algoritma BB untuk PLBB Biner (2)
PL-1 ) ; , , , (x1 x2 x3 x4 Z
2
1 6 5 ,1,0,1;16TI 2001 Penelitian Operasional I 117
Contoh Algoritma BB untuk PLBB Biner (3)
PL-1 PL-2 PL-3 ) ; , , , (x1 x2 x3 x4 Z
2
1 6 5 ,1,0,1;16 0 1 x 1 1 x
0,1,0,1;9
1, 54 ,0, 54;16 15
Contoh Algoritma BB untuk PLBB Biner (4)
PL-1 PL-2 PL-3 ) ; , , , (x1 x2 x3 x4 Z
2
1 6 5 ,1,0,1;16 0 1 x 1 1 x
0,1,0,1;9
1, 54 ,0, 54;16 15
TI 2001 Penelitian Operasional I 119
Contoh Algoritma BB untuk PLBB Biner (5)
PL-1 PL-2 PL-3 ) ; , , , (x1 x2 x3 x4 Z
2
1 6 5 ,1,0,1;16 0 1 x 1 1 x
0,1,0,1;9
1, 54 ,0, 54;16 15
PL-4 PL-5 0 2 x x2 1
54
5 4 ,0;13 , 0 , 1
16 ; , 0 , 1 , 1 21Contoh Algoritma BB untuk PLBB Biner (6)
PL-1 PL-2 PL-3 ) ; , , , (x1 x2 x3 x4 Z
2
1 6 5 ,1,0,1;16 0 1 x 1 1 x
0,1,0,1;9
1, 54 ,0, 54;16 15
PL-4 PL-5 0 2 x x2 1
54
5 4 ,0;13 , 0 , 1
16 ; , 0 , 1 , 1 21 PL-6 PL-7 0 3 x x3 1
1,1,0, 12;16
Tidak layakTI 2001 Penelitian Operasional I 121
Contoh Algoritma BB untuk PLBB Biner (7)
PL-1 PL-2 PL-3 ) ; , , , (x1 x2 x3 x4 Z
2
1 6 5 ,1,0,1;16 0 1 x 1 1 x
0,1,0,1;9
1, 54 ,0, 54;16 15
PL-4 PL-5 0 2 x x2 1
54
5 4 ,0;13 , 0 , 1
16 ; , 0 , 1 , 1 21 PL-6 PL-7 0 3 x x3 1
1,1,0, 12;16
Tidak layak PL-8 PL-9
1,1,0,0;14
0 4 x x4 1 Tidak layakTI 2001 Penelitian Operasional I 122
Contoh Algoritma BB untuk PLBB Biner (8)
PL-1 PL-2 PL-3 ) ; , , , (x1 x2 x3 x4 Z
2
1 6 5 ,1,0,1;16 0 1 x 1 1 x
0,1,0,1;9
1, 54 ,0, 54;16 15
PL-4 PL-5 0 2 x x2 1
54
5 4 ,0;13 , 0 , 1
16 ; , 0 , 1 , 1 21 PL-6 PL-7 0 3 x x3 1
1,1,0, 12;16
Tidak layak PL-8 PL-9
1,1,0,0;14
0 4 x x4 1 Tidak layakTI 2001 Penelitian Operasional I 123
Contoh Algoritma BB untuk PLBB Biner (9)
PL-1 PL-2 PL-3 ) ; , , , (x1 x2 x3 x4 Z