TI2231 Penelitian Operasional I 1
Pemrograman Bilangan Bulat
(Integer Programming)
Kuliah 11-12
TI2231 Penelitian Operasional I 2
Materi Bahasan
① Pengantar pemrograman bilangan bulat
② Beberapa contoh model pemrograman
bilangan bulat
③ Metode pemecahan bilangan bulat
Metode cutting-plane
Metode branch-and-bound
Metode branch-and-bound untuk
pemrograman bilangan bulat biner
① Pengantar Pemrograman Bilangan
Bulat
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
TI2231 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,
(binary integer linear programming, BILP)
TI2231 Penelitian Operasional I 6
Fungsi Variabel Biner
• Penangangan pembatas either-or
• Penanganan nilai lebih dari satu yang mungkin
dari suatu pembatas
• Representasi bentuk lain dari variabel bilangan
bulat
Pembatas Either-Or
18
2
3
x
1+ x
2≤
16
4
2 1+ x
≤
x
18
2
3
x
1+ x
2≤
M
x
x
1+
4
2≤
16
+
M
x
x
+
2
≤
18
+
3
1 216
4
2 1+ x
≤
x
dan danMy
x
x
+
2
≤
18
+
3
1 2)
1
(
16
4
2 1x
M
y
x
+
≤
+
−
atau atauPL format:
{ }
0,1 = i yFungsi dengan N Nilai yang Mungkin (1)
(
x x xn)
d d dNf 1, 2,L, = 1atau 2atau Latau
(
)
∑
= = N i i i n d y x x x f 1 2 1, ,L,Perumusan PLBB:
1 1 =∑
= N i i y{ }
i N yi = 0,1, =1,2,L,TI2231 Penelitian Operasional I 9
Fungsi dengan N Nilai yang Mungkin (2)
18 atau 12 atau 6 2 3x1+ x2 = 3 2 1 2 1 2 6 12 18 3x + x = y + y + y
Perumusan PLBB:
1 3 2 1+y +y = y{ }
0,1, =1,2,3 = i yiTI2231 Penelitian Operasional I 10
Representasi Biner untuk
Variabel Bilangan Bulat (1)
u
x
≤
≤
0
12
2
dimana
N≤
u
≤
N+Representasi biner:
∑
==
N i i iy
x
02
{ }
i
N
y
i=
0
,
1
,
=
1
,
2
,
L
,
Batas-batas untuk variabel x:
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 x
1= 5 Æ 2
2≤ 5 ≤ 2
3u untuk x
2= 10 Æ 2
3≤ 10 ≤ 2
4{ }
0
,
1
,
=
0
,
1
,
2
,
3
=
i
w
ix
1, x
2bil. bulat
② Beberapa Contoh Model Pemrograman
TI2231 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
• Job (Machine) scheduling problem
TI2231 Penelitian Operasional I 14
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)
cj = biaya variabel untuk memproduksi produk j (proporsional
terhadap jumlah produksi)
bi = kapasitas sumber i (i = 1, …m)
aij = kebutuhan sumber i untuk per unit produk j
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 atau tidak produk j;
yj= 1 jika produk j diproduksi
y = 0 jika produk j tidak 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 L = ≤∑
= n j My xj ≤ j, =1,L, n j xj ≥0, =1,L,{ }
j n yj = 0,1, =1,...,TI2231 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 jumlah item yang perlu dimasukkan ke dalam kantong agar diperoleh nilai total yang maksimum dengan memperhatikan kondisi kapasitas muatan (berat) dari kantong Variabel keputusan :
xj = jumlah item yang dimasukkan ke kantong
TI2231 Penelitian Operasional I 18
Knapsack Problem (2)
∑
==
n j j jx
v
Z
1Maksimasi
dengan pembatas-pembatas:
W
x
w
n j j j≤
∑
=1bulat
bilangan
dan
0
≥
jx
Set Covering Problem (1)
Jalan C Jalan D Jalan B Jalan A Jalan E Jala nF Jalan G Jalan K Jalan J Jalan I Jalan 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)
TI2231 Penelitian Operasional I 21
Set covering problem (3)
∑
==
n j j jx
c
Z
1Minimasi
dengan pembatas-pembatas:
m
i
x
a
n j j ij1
,
1
,...,
1=
≥
∑
={ }
j
n
x
j=
0
,
1
,
=
1
,...,
TI2231 Penelitian Operasional I 22
Set Partitioning Problem
∑
==
n j j jx
c
Z
1Minimasi
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 pos
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
TI2231 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 L = =∑
= n j x n i ij 1, 1, , 1 L = =∑
= j i n j n i n nx u ui − j + ij ≤ −1, =2,L, ; =2,L, ; ≠{ }
i n j n xij = 0,1, =1,L, ; =1,L n i ui ≥0, =1,..., Subtour breaking constraintTI2231 Penelitian Operasional I 26
Traveling Salesman Problem (4)
1 2 3 4 5
Subtour
Subtour breaking constraint bertujuan untuk mengeliminasi
terjadinya solusi subtour
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)
TI2231 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
Suatu solusi (jadwal) pengerjaan job yang layak
TI2231 Penelitian Operasional I 30
Job Scheduling Problem (3)
∑
= = n j j jC w Z 1 Minimasi dengan pembatas-pembatas: n i p Cj ≥ j, =1,L,(
y)
p i n j n i j M C Cj − i + 1− ij ≥ i, =1,L, ; =1,L , ≠ n i Cj ≥0, =1,..., j i n j n i p My C Ci − j + ij ≥ j, =1,L, ; =1,L ; ≠{ }
i n j n yij = 0,1, =1,..., , =1,L n i p C Bj = j − j, =1,L, Disjunctive constraint (Either-or constraint)③ Metode Pemecahan Model
Pemrograman Bilangan Bulat
Metode Pemecahan Model Pemrograman
Bilangan Bulat
• Cutting method
– Cutting Plane
• Search method
TI2231 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)
TI2231 Penelitian Operasional I 34
Ilustrasi Suatu Masalah PLBB
Maximasi Z = 7x1 + 9x2 dengan pembatas-pembatas:
–x1+ 3x2 ≤ 6 7x1+ x2 ≤ 35
x1, x2≥ 0 dan bilangan bulat
TI2231 Penelitian Operasional I 35
Daerah layak
x
2x
1TI2231 Penelitian Operasional I 36
Solusi Optimal Kontinyu
(dengan mengabaikan kondisi integralitas)
x
2x
1(
)
63
3
,
4
)
,
(
12 2 1 2 1=
=
Z
x
x
TI2231 Penelitian Operasional I 37
Ide Dasar dari Cutting Plane
• Mengubah convex set dari daerah ruang
pemecahan (solution space) sehingga titik
ekstrem menjadi bilangan bulat
• Perubahan dibuat tanpa men-slicing off daerah
layak dari masalah awal.
• Perubahan dilakukan dengan penambahan
beberapa secondary constraint.
TI2231 Penelitian Operasional I 38
Penambahan Pembatas Sekunder
x
2x
1 secondary constraint( )
55
3
,
4
)
,
(
1 2=
=
Z
x
x
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 kondisi
integralitas.
2 13 3 1 2 1+ x ≤ x 6x1+ x2 2 ≤39Fractional Algorithm (2)
β0 0 0 0 βm αmn αmj αm1 1 0 0 xm βn αin αij αi1 0 1 0 xi β1 α1n α1j α11 0 0 1 x1 Solusi wn wj w1 xm xi x1 Basis j c c1 cj cnTI2231 Penelitian Operasional I 41
Fractional Algorithm (3)
Variabel x
i(i = 1, …, m) menunjukkan variabel basis
Variabel w
j(j = 1, …, n) menunjukkan variabel non basis
Misalkan persamaan ke-i dimana variabel x
idiasumsikan
bernilai bilangan bulat
bulat
bilangan
bukan
,
i 1β
α
β
∑
=−
=
n j j j i i iw
x
(baris sumber)
TI2231 Penelitian Operasional I 42
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 < f
i< 1
0 ≤ f
ij< 1
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 x
idan w
jadalah bilangan bulat,
maka ruas kanan dari persamaan harus bilangan bulat
Æ Akibatnya, ruas kiri harus bilangan bulat
Fractional Algorithm (6)
Untuk f
ij≥ 0 dan w
j≥ 0 untuk semua i dan j maka
0
1≥
∑
= n j j ijw
f
Akibatnya
i n j j ij if
w
f
f
−
∑
≤
=1TI2231 Penelitian Operasional I 45
Fractional Algorithm (7)
1
1<
−
∑
= n j j ij if
w
f
Karena f
i< 1 maka
Karena ruas kiri harus bilangan bulat, maka syarat perlu
untuk memenuhi integralitas adalah:
0
1≤
−
∑
= n j j ij if
w
f
TI2231 Penelitian Operasional I 46
Fractional Algorithm (8)
Pertidaksamaan terakhir dapat dijadikan sebagai pembatas
dalam bentuk:
i n j j ij if
w
f
S
=
∑
−
=1(fractional cut)
Fractional Algorithm (9)
0 1 0 0 0 Si -fi -fim -fij -fi1 0 0 0 Si β0 0 0 0 βm αmn αmj αm1 1 0 0 xm βn αin αij αi1 0 1 0 xi β1 α1n α1j α11 0 0 1 x1 Solusi wn wj w1 xm xi x1 Basis j c c1 cj cnTabel setelah penambahan fractional cut
Fractional 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
TI2231 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
f
i≥ f
kdan f
ij≤ f
kjuntuk semua j dengan strict inequality
terpenuhi paling sedikit satu
Kekuatan fractional cut
TI2231 Penelitian Operasional I 50
Fractional Algorithm (12)
Aturan :
{ }
i if
max
⎪
⎪
⎭
⎪⎪
⎬
⎫
⎪
⎪
⎩
⎪⎪
⎨
⎧
∑
= n j ij i if
f
1max
Contoh Penerapan Fractional Algorithm (1)
Maximasi Z = 7x1+ 9x2 dengan pembatas-pembatas:
–x1+ 3x2 ≤ 6 7x1+ x2 ≤ 35
x1, x2≥ 0 dan bilangan bulat
Contoh Penerapan Fractional Algorithm (2)
Z = 63
-15/11
-28/11
0
0
c
j– z
j4
1/
23/22
-1/22
0
1
x
13
1/
21/22
7/22
1
0
x
2Solusi
x
4x
3x
2x
1Basis
TI2231 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:
Baris sumber Æ persamaan-x
2TI2231 Penelitian Operasional I 54
Contoh Penerapan Fractional Algorithm (4)
0
1
0
0
S
1-15/11
-28/11
0
0
c
j– z
j-1/2
-1/22
-7/22
0
0
S
19/2
3/22
-1/22
0
1
x
17/2
1/22
7/22
1
0
x
2Solusi
x
4x
3x
2x
1Basis
Tabel setelah penambahan fractional cut
Contoh Penerapan Fractional Algorithm (5)
-8
-22/7
-1/7
1
S
1Z = 59
-1
0
0
0
c
j– z
j1
4/
71/7
1
0
0
x
34
4/
71/7
0
0
1
x
13
0
0
1
0
x
2Solusi
x
4x
3x
2x
1Basis
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:
TI2231 Penelitian Operasional I 57
Contoh Penerapan Fractional Algorithm (7)
0 1 0 0 0 S2 -4/7 -6/7 -1/7 0 0 0 S2 -8 -22/7 -1/7 1 S1 -1 0 0 0 cj– zj 1 4/ 7 1/7 1 0 0 x3 4 4/ 7 1/7 0 0 1 x1 3 0 0 1 0 x2 Solusi x4 x3 x2 x1 Basis
Tabel setelah penambahan fractional cut
TI2231 Penelitian Operasional I 58
Contoh Penerapan Fractional Algorithm (8)
0 -7 1 1 0 S2 4 6 1 0 0 0 x4 -7 -4 -1 1 S1 Z = 55 -2 0 0 0 cj– zj 1 0 1 0 0 x3 4 0 0 0 1 x1 3 0 0 1 0 x2 Solusi x4 x3 x2 x1 Basis
Solusi bilangan bulat optimal, x
1= 4, x
2= 3; Z = 55
Tabel yang diperoleh dengan dual simplex:
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 ≤ xFractional cut 1:
Ilustrasi Fractional Cut secara Grafis (2)
x
2x
13
2=
TI2231 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 ≤ xFractional cut 2:
TI2231 Penelitian Operasional I 62
Ilustrasi Fractional Cut secara Grafis (4)
x
2x
1 3 2= x 7 2 1+ x = xMixed 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 dengan pembatas-pembatas: –x1+ 3x2 ≤ 6 7x1+ x2 ≤ 35x1≥ 0 dan bilangan bulat x2≥ 0
TI2231 Penelitian Operasional I 65
Mixed Algorithm (3)
∑
= − = n j j j k k k w x 1 α βMisal x
kadalah variabel bilangan bulat dari masalah MILP.
Persamaan-x
kdalam 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)
TI2231 Penelitian Operasional I 66
Mixed Algorithm (4)
Untuk x
kadalah bilangan bulat, maka
[ ]
atau
≥
[ ]
+
1
≤
k k k kx
x
β
β
harus dipenuhi
k n j k j kw
≥
f
∑
=1α
Dari baris sumber, kondisi ini ekivalen dengan
1
1−
≤
∑
= k n j k j kw
f
α
(1)
(2)
Mixed Algorithm (5)
Misal
J
+= himpunan subscripts j untuk
α
kj≥ 0
J
-= himpunan subscripts j untuk
α
kj< 0
Dari (1) dan (2) diperoleh
k n J j k j k
w
≥
f
∑
+ ∈α
k n J j k j k k kf
w
f
f
≥
−
∑
∈ −α
1
(1)
(2)
Mixed Algorithm (6)
Karena (1) dan (2), tidak dapat terjadi secara simultan,
maka (3) dan (4) dapat digabungkan menjadi satu
pembatas dalam bentuk
k n J j k j k k k n J j k j k k
w
f
f
f
w
S
=
−
⎪⎭
⎪
⎬
⎫
⎪⎩
⎪
⎨
⎧
−
+
−
∑
∑
− + ∈ ∈α
α
1
(mixed cut)
TI2231 Penelitian Operasional I 69
Contoh Penerapan Mixed Algorithm (1)
Maximasi Z = 7x1 + 9x2 dengan pembatas-pembatas:
–x1+ 3x2 ≤ 6 7x1+ x2 ≤ 35
x1≥ 0 dan bilangan bulat x2≥ 0
TI2231 Penelitian Operasional I 70
Contoh Penerapan Mixed Algorithm (2)
Z = 63
-15/11
-28/11
0
0
c
j– z
j9/2
3/22
-1/22
0
1
x
17/2
1/22
7/22
1
0
x
2Solusi
x
4x
3x
2x
1Basis
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-x
1{ }
{ }
12 1,
4
,
3
=
=
=
+ −f
J
J
Contoh Penerapan Mixed Algorithm (4)
0
1
0
0
S
1-15/11
-28/11
0
0
c
j– z
j-1/2
-3/22
-1/22
0
0
S
19/2
3/22
-1/22
0
1
x
17/2
1/22
7/22
1
0
x
2Solusi
x
4x
3x
2x
1Basis
TI2231 Penelitian Operasional I 73
Contoh Penerapan Mixed Algorithm (5)
0
-22/3
1
-1/3
S
1Z= 58
-10
-23/11
0
0
c
j– z
j11/3
1
1/3
0
0
x
44
0
-1/11
0
1
x
110/3
0
10/33
1
0
x
2Solusi
x
4x
3x
2x
1Basis
Tabel yang diperoleh dengan dual simplex:
Solusi optimal, x
1= 4, x
2= 10/3; Z = 55
TI2231 Penelitian Operasional I 74
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)
• Algoritma BB untuk PLBB Biner
Algoritma BB untuk PLBB (1)
Misalkan diberikan suatu masalah pemrograman
bilangan bulat sebagai berikut:
Maksimasi Z = cx
dengan pembatas
Ax = b
x
≥ 0
x
jbilangan bulat untuk j ∈ I
TI2231 Penelitian Operasional I 77
Algoritma BB untuk PLBB (2)
• Langkah pertama adalah memecahkan masalah PLBB
sebagai PL dengan mengabaikan pembatas bilangan
bulat (bounding)
• Misalkan masalah PL dinyatakan sebagai PL-1 yang
mempunyai nilai optimal dari fungsi tujuan Z
1.
PL-1
Maksimasi Z = cx
dengan pembatas
Ax = b
x
≥ 0
TI2231 Penelitian Operasional I 78
Algoritma BB untuk PLBB (3)
• Asumsikan bahwa solusi optimal dari PL-1
mengandung beberapa variabel bilangan bulat yang
mempunyai nilai pecahan.
• Oleh karena itu, solusi optimal bilangan bulat untuk
PLBB belum diperoleh dan Z
1menjadi batas atas
(upper bound) dari nilai maksimum Z untuk PLBB.
• Langkah berikutnya adalah mempartisi daerah layak
dari PL-1 dengan mencabangkan (branching) salah
satu variabel bilangan bulat yang nilainya 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
x
j≤ [
β
] dan x
j≥ [
β
]+1
Algoritma BB untuk PLBB (5)
Maksimasi Z = cx
dengan pembatas
Ax = b
x
j≤ [
β
]
x
≥ 0
Maksimasi Z = cx
dengan pembatas
Ax = b
x
j≥ [
β
]+1
x
≥ 0
PL-2
PL-3
TI2231 Penelitian Operasional I 81
Algoritma BB untuk PLBB (6)
PL-1 PL-2 PL-2 Solusi pecahan Z1 Solusi pecahan Z2 ] [ j j x ≤ β xj≤[βj]+1 Solusi pecahan Z5TI2231 Penelitian Operasional I 82
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
(masalah PL) yang akan dicabangkan.
Algoritma BB untuk PLBB (8)
• Setelah masalah PL dipilih untuk dicabangkan lebih
lanjut, langkahnya selanjutnya adalah
– memilih variabel bilangan bulat dengan nilai pecahan yang akan dicabangkan untuk membentuk dua masalah PL baru (proses branching)
– memecahkan masalah PL yang baru (proses bounding)
• Jika solusi bilangan bulat diperoleh dari suatu
masalah PL maka nilai Z-nya menjadi batas bawah
(lower bound) dari nilai maksimum Z untuk masalah
PLBB.
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
TI2231 Penelitian Operasional I 85
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 Z5 PL-3 PL-4 Tidak layak Solusi bulat Z4 ] [ i i x ≤ β xi≤[βi]+1TI2231 Penelitian Operasional I 86
Algoritma BB untuk PLBB (11)
PL-1 PL-2 PL-3 PL-4 PL-5 PL-6 PL-7 Solusi pecahan Z0= Z1 Solusi pecahan Z2 Tidak layak Solusi bulat Z4 Solusi pecahan Z6< Z4 ] [ j j x ≤ β xj ≤[βj]+1 ] [ i i x ≤ β xi≤[βi]+1 xk ≤[βk] xk ≤[βk]+1 Solusi pecahan Z5 Solusi pecahan Z7 > Z4Algoritma BB untuk PLBB (12)
• Esensi dari algoritma BB
– Bounding
– Branching
– Fathoming
Contoh Penerapan Algoritma BB (1)
Maximasi Z = 2x1+ 3x2 dengan pembatas-pembatas:
5x1+ 7x2 ≤ 35 4x1+ 9x2 ≤ 36
TI2231 Penelitian Operasional I 89
PL0
X1
X2
TI2231 Penelitian Operasional I 90
PL1
Maximasi Z = 2x1+ 3x2 dengan pembatas-pembatas: 5x1+ 7x2 ≤ 35 4x1+ 9x2 ≤ 36 x1, x2≥ 0 6 12 1 17 2 17 8 17 3 , 2 14 x x Z = = =Contoh Penerapan Algoritma BB (2)
PL-1 17 8 17 6 2 17 12 1 14 2 , 3 = = = Z x x
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 = = =TI2231 Penelitian Operasional I 93
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 = = =TI2231 Penelitian Operasional I 94
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 = = =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≥ 0TI2231 Penelitian Operasional I 97
Contoh 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 x
TI2231 Penelitian Operasional I 98
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 x
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
x
1= 4, x
2= 2
TI2231 Penelitian Operasional I 101
Solusi Optimal
X1 X2 1 4, 2 2 14 x x Z = = =TI2231 Penelitian Operasional I 102
Contoh Penerapan Algoritma BB (8)
PL-1 17 8 17 6 2 17 12 1 14 2 , 3 = = = Z x x
Pencabangan
dari PL-3
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 x
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
TI2231 Penelitian Operasional I 105
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 x
TI2231 Penelitian Operasional I 106
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 x
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
TI2231 Penelitian Operasional I 109
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 x
TI2231 Penelitian Operasional I 110
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 x
Fathomed karena perbedaan nilai Z dengan lower bound < 1 dan semua koefisien fungsi tujuan adalah bulat
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
TI2231 Penelitian Operasional I 113
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.
TI2231 Penelitian Operasional I 114
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;16Contoh 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)
(
51)
5 4 5 4,0, ;16 , 1TI2231 Penelitian Operasional I 117
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)
(
51)
5 4 5 4,0, ;16 , 1TI2231 Penelitian Operasional I 118
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)
(
51)
5 4 5 4,0, ;16 , 1 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)
(
51)
5 4 5 4,0, ;16 , 1 PL-4 PL-5 0 2 = x x2=1(
5)
4 5 4,0;13 , 0 , 1(
)
16 ; , 0 , 1 , 1 21 PL-6 PL-7 0 3= x x3=1(
1,1,0,21;16)
Tidak layakContoh 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)
(
51)
5 4 5 4,0, ;16 , 1 PL-4 PL-5 0 2= x x2=1(
5)
4 5 4,0;13 , 0 , 1(
)
16 ; , 0 , 1 , 1 21 PL-6 PL-7 0 3= x x3=1(
1,1,0,21;16)
Tidak layak PL-8 PL-9(
1,1,0,0;14)
0 4= x x4=1TI2231 Penelitian Operasional I 121
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)
(
51)
5 4 5 4,0, ;16 , 1 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,21;16)
Tidak layak PL-8 PL-9(
1,1,0,0;14)
0 4= x x4 =1Tidak layak TI2231 Penelitian Operasional I 122
Contoh Algoritma BB untuk PLBB Biner (9)
PL-1 PL-2 PL-3 ) ; , , , (x1 x2 x3 x4 Z