Metode branch-and-bound untuk pemrograman bilangan bulat biner · yang bulat (bukan pecahan) ... 8...
Click here to load reader
Transcript of Metode branch-and-bound untuk pemrograman bilangan bulat biner · yang bulat (bukan pecahan) ... 8...
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-planeMetode branch-and-boundMetode branch-and-bound untukpemrograman bilangan bulat biner
TI2231 Penelitian Operasional I 3
① Pengantar Pemrograman BilanganBulat
TI2231 Penelitian Operasional I 4
Pemrograman Bilangan Bulat
• Pemrograman bilangan bulat (integer programming) mensyaratkan bahwa beberapavariabel keputusan harus mempunyai nilaiyang bulat (bukan pecahan)
• Pembahasan hanya ditujukan untuk masalahpemrograman linier bilangan bulat (integer linear programming problem)
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
TI2231 Penelitian Operasional I 7
Pembatas Either-Or
1823 21 ≤+ xx
164 21 ≤+ xx
1823 21 ≤+ xxMxx +≤+ 164 21
Mxx +≤+ 1823 21
164 21 ≤+ xx
dan
dan
Myxx +≤+ 1823 21
)1(164 21 yMxx −+≤+atau
atau
PL format:
{ }1,0=iy
TI2231 Penelitian Operasional I 8
Fungsi dengan N Nilai yang Mungkin (1)
( ) Nn dddxxxf atau atau atau ,,, 2121 LL =
( ) ∑=
=N
iiin ydxxxf
121 ,,, L
Perumusan PLBB:
11
=∑=
N
iiy
{ } Niyi ,,2,1 ,1,0 L==
TI2231 Penelitian Operasional I 9
Fungsi dengan N Nilai yang Mungkin (2)
18atau 12atau 623 21 =+ xx
32121 1812623 yyyxx ++=+
Perumusan PLBB:
1321 =++ yyy
{ } 3,2,1 ,1,0 == iyi
TI2231 Penelitian Operasional I 10
Representasi Biner untukVariabel Bilangan Bulat (1)
ux ≤≤0 122 dimana +≤≤ NN u
Representasi biner:
∑=
=N
ii
i yx0
2
{ } Niyi ,,2,1 ,1,0 L==
Batas-batas untuk variabel x:
TI2231 Penelitian Operasional I 11
Representasi Biner untukVariabel Bilangan Bulat (2)
51 ≤x
Representasi biner:542 210 ≤++ yyy
{ } 2,1,0 ,1,0 == iyi
3032 21 ≤+ xx
( ) ( ) 308423422 3210210 ≤++++++ wwwwyyy
u untuk x1 = 5 22 ≤ 5 ≤ 23
u untuk x2 = 10 23 ≤ 10 ≤ 24
{ } 3,2,1,0 ,1,0 == iwi
x1, x2 bil. bulat
TI2231 Penelitian Operasional I 12
② Beberapa Contoh Model PemrogramanBilangan Bulat
TI2231 Penelitian Operasional I 13
Beberapa Contoh Model-model PemrogramanBilangan 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 produkpj = harga satuan produk jKj = 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
TI2231 Penelitian Operasional I 15
Fixed Charge Problem (2)
Permasalahan :Menentukan produk mana yang perlu diproduksi dan jumlahproduksinya masing-masing agar diperoleh profit (selisihpenjualan dengan biaya tetap dan variabel) total yang maksimumdengan memperhatikan kondisi:- ketersediaan kapasitas- jika suatu produk diputuskan untuk tidak diproduksi makajumlah produksinya nol.
Variabel keputusan :xj = jumlah produk j yang diproduksiyj = keputusan untuk memproduksi atau tidak produk j;
yj = 1 jika produk j diproduksiyj = 0 jika produk j tidak diproduksi
TI2231 Penelitian Operasional I 16
Fixed Charge Problem (3)
( )∑∑==
+−=n
jjjjj
n
jjj xcyKxpZ
11
Maksimasi
dengan pembatas-pembatas:
mibxa i
n
jjij ,,1 ,
1L=≤∑
=
njMyx jj ,,1 , L=≤
njx j ,,1 ,0 L=≥
{ } njy j ,...,1 ,1,0 ==
TI2231 Penelitian Operasional I 17
Knapsack Problem (1)
Misalkan terdapat n item.wj = berat item jvj = nilai item jW = kapasitas muatan (berat) dari kantong
Permasalahan :Menentukan jumlah item yang perlu dimasukkan ke dalamkantong agar diperoleh nilai total yang maksimum denganmemperhatikan kondisi kapasitas muatan (berat) dari kantong
Variabel keputusan :xj = jumlah item yang dimasukkan ke kantong
TI2231 Penelitian Operasional I 18
Knapsack Problem (2)
∑=
=n
jjj xvZ
1
Maksimasi
dengan pembatas-pembatas:
Wxwn
jjj ≤∑
=1
bulatbilangan dan 0≥jx
TI2231 Penelitian Operasional I 19
Set Covering Problem (1)
Jalan C
Jalan D
Jalan BJalan A
Jalan E
Jalan
F
Jala
nG Ja
lan
KJa
lan
J
Jala
nI
Jala
nH
1 2
6 7
4
8
5
3
Contoh masalah set covering problem dalam menentukanlokasi pendirian pos siskamling
TI2231 Penelitian Operasional I 20
Set Covering Problem (2)Misalkan terdapat n lokasi pendirian pos dan m jalan.cj = biaya mendirikan pos di lokasi jaij = 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 dilayaniminimal oleh satu pos sehingga diperoleh biaya total pendirianyang minimum
Variabel keputusanxj = variabel biner (0-1) yang menentukan keputusan untuk
mendirikan pos di lokasi j (xj = 1 jika pos dididikan dilokasi j, xj = 0 sebaliknya)
TI2231 Penelitian Operasional I 21
Set covering problem (3)
∑=
=n
jjj xcZ
1
Minimasi
dengan pembatas-pembatas:
mixan
jjij ,...,1 ,1
1=≥∑
=
{ } njx j ,...,1 ,1,0 ==
TI2231 Penelitian Operasional I 22
Set Partitioning Problem
∑=
=n
jjj xcZ
1
Minimasi
dengan pembatas-pembatas:
mixan
jjij ,...,1 ,1
1==∑
=
{ } njx j ,...,1 ,1,0 ==
Tiap jalantepat dilayanioleh satu pos
TI2231 Penelitian Operasional I 23
Traveling Salesman Problem (1)
1
2
3
45
5
6
3
4
38
2
6
1
7
(jarak)
TI2231 Penelitian Operasional I 24
Traveling Salesman Problem (2)
Misalkan terdapat n titik.cij = jarak antara titik i ke titik j (cij = ∞ untuk i = j)
PermasalahanMenentukan rute salesman yang berangkat dari suatu titik danmengunjungi setiap titik yang lain paling banyak sekali, sertakembali ke titik asal agar diperoleh jarak total yang minimum
Variabel keputusanxij = keputusan untuk melintasi atau tidak busur (i, j)
xij = 1 jika busur (i, j) dilintasixij = 0 jika busur (i, j) tidak dilintas
TI2231 Penelitian Operasional I 25
Traveling Salesman Problem (3)
∑∑= =
=n
j
n
jijij xcZ
1 1
Minimasi
dengan pembatas-pembatas:
nixn
jij ,,1 ,1
1L==∑
=
njxn
iij ,,1 ,1
1L==∑
=
jinjninnxuu ijji ≠==−≤+− ;,,2;,,2 ,1 LL
{ } njnixij LL ,1;,,1 ,1,0 ===
niui ,...,1 ,0 =≥
Subtour breakingconstraint
TI2231 Penelitian Operasional I 26
Traveling Salesman Problem (4)
1
2
3
45
Subtour
Subtour breaking constraint bertujuan untuk mengeliminasiterjadinya solusi subtour
TI2231 Penelitian Operasional I 27
Traveling Salesman Problem (5)
1
2
3
45
Tour
Suatu solusi traveling salesman problem yang layak (terbentuknyasuatu tour).
TI2231 Penelitian Operasional I 28
Job Scheduling Problem (1)
Misalkan-terdapat n job dengan operasi-tunggal-terdapat satu mesin tunggalpj = waktu pengerjaan job jwj = bobot kepentingan job j
Permasalahan:Menentukan saat awal (juga secara implisit menentukan saatakhir) pengerjaan job agar diperoleh waktu penyelesaiantertimbang total (total weighted completion time) yang minimum dengan memperhatikan bahwa pada suatu saat mesin hanya dapatmengerjakan satu operasi (job)
TI2231 Penelitian Operasional I 29
Job Scheduling Problem (2)
Variabel keputusan:Bj = saat awal pengerjaan job jCj = saat akhir pengerjaan job jyij = keputusan apakah job i mendahului job j
yij = 1 jika job i mendahului job jyij = 0 jika sebaliknya
0
3 1 4 5 2
p3 p1 p4 p5 p2
Suatu solusi (jadwal) pengerjaan job yang layakTI2231 Penelitian Operasional I 30
Job Scheduling Problem (3)
∑=
=n
jjjCwZ
1Minimasi
dengan pembatas-pembatas:
nipC jj ,,1 , L=≥
( ) jinjnipyMCC iijij ≠==≥−+− ,,1;,,1 ,1 LL
niC j ,...,1 ,0 =≥
jinjnipMyCC jijji ≠==≥+− ;,1;,,1 , LL
{ } njniyij L,1,,...,1 ,1,0 ===
nipCB jjj ,,1 , L=−=
Disjunctive constraint(Either-or constraint)
TI2231 Penelitian Operasional I 31
③ Metode Pemecahan Model Pemrograman Bilangan Bulat
TI2231 Penelitian Operasional I 32
Metode Pemecahan Model PemrogramanBilangan Bulat
• Cutting method– Cutting Plane
• Search method– Branch and Bound
TI2231 Penelitian Operasional I 33
Algoritma Cutting Plane
• Dikembangkan oleh R.E. Gomory• Algoritma
– Fractional algorithm untuk masalah pemrogramanbilangan bulat murni (PILP)
– Mixed algorithm untuk masalah pemrogramanbilangan bulat campuran (MILP)
TI2231 Penelitian Operasional I 34
Ilustrasi Suatu Masalah PLBB
Maximasi Z = 7x1 + 9x2
dengan pembatas-pembatas:–x1 + 3x2 ≤ 67x1 + x2 ≤ 35x1, x2 ≥ 0 dan bilangan bulat
TI2231 Penelitian Operasional I 35
Daerah layakx2
x1TI2231 Penelitian Operasional I 36
Solusi Optimal Kontinyu(dengan mengabaikan kondisi integralitas)x2
x1
( )63
3,4),( 21
21
21
=
=
Zxx
TI2231 Penelitian Operasional I 37
Ide Dasar dari Cutting Plane
• Mengubah convex set dari daerah ruangpemecahan (solution space) sehingga titikekstrem menjadi bilangan bulat
• Perubahan dibuat tanpa men-slicing off daerahlayak dari masalah awal.
• Perubahan dilakukan dengan penambahanbeberapa secondary constraint.
TI2231 Penelitian Operasional I 38
Penambahan Pembatas Sekunderx2
x1
secondary constraint
( )55
3,4),( 21
==
Zxx
TI2231 Penelitian Operasional I 39
Fractional Algorithm (1)
• Digunakan untuk memecahkan masalahpemrograman linier bilangan bulat murni (PILP).
• Mensyaratkan bahwa semua koefisien teknologi dankonstanta ruas kanan adalah bilangan bulat.
• Pada awalnya, masalah PILP dipecahkan sebagai PL reguler, yaitu dengan mengabaikan kondisiintegralitas.
213
31
21 ≤+ xx 3926 21 ≤+ xx
TI2231 Penelitian Operasional I 40
Fractional Algorithm (2)
β0000
βmαmnαm
jαm1100xm
βnαinαi
jαi1010xi
β1α1nα1
jα11001x1
Solusiwnwjw1xmxix1Basis
jc 1c jc nc
Tabel akhir optimal untuk PL
TI2231 Penelitian Operasional I 41
Fractional Algorithm (3)
Variabel xi (i = 1, …, m) menunjukkan variabel basisVariabel wj (j = 1, …, n) menunjukkan variabel non basis
Misalkan persamaan ke-i dimana variabel xi diasumsikanbernilai bilangan bulat
bulatbilangan bukan , i1
βαβ ∑=
−=n
jj
jiii wx
(baris sumber)
TI2231 Penelitian Operasional I 42
Fractional Algorithm (4)
Misal: [ ] iii f+= ββ
[ ] ijj
ij
i f+= αα
dimanaN = [a] adalah bilangan bulat terbesar sehingga N ≤ a0 < fi < 10 ≤ fij < 1
TI2231 Penelitian Operasional I 43
Fractional Algorithm (5)
Dari baris sumber diperoleh:
[ ] [ ]∑∑==
+−=−n
jj
jiii
n
jiiji wxwff
11αβ
Agar semua xi dan wj adalah bilangan bulat,maka ruas kanan dari persamaan harus bilangan bulat
Akibatnya, ruas kiri harus bilangan bulat
TI2231 Penelitian Operasional I 44
Fractional Algorithm (6)
Untuk fij ≥ 0 dan wj ≥ 0 untuk semua i dan j maka
01
≥∑=
n
jjijwf
Akibatnya
i
n
jjiji fwff ≤−∑
=1
TI2231 Penelitian Operasional I 45
Fractional Algorithm (7)
11
<−∑=
n
jjiji wff
Karena fi < 1 maka
Karena ruas kiri harus bilangan bulat, maka syarat perluuntuk memenuhi integralitas adalah:
01
≤−∑=
n
jjiji wff
TI2231 Penelitian Operasional I 46
Fractional Algorithm (8)
Pertidaksamaan terakhir dapat dijadikan sebagai pembatasdalam bentuk:
i
n
jjiji fwfS −=∑
=1(fractional cut)
TI2231 Penelitian Operasional I 47
Fractional Algorithm (9)
0
1
0
0
0
Si
-fi-fim-fi
j-fi1000Si
β0000
βmαmnαm
jαm1100xm
βnαinαi
jαi1010xi
β1α1nα1
jα11001x1
Solusiwnwjw1xmxix1Basis
jc 1c jc nc
Tabel setelah penambahan fractional cut
TI2231 Penelitian Operasional I 48
Fractional Algorithm (10)
• Dengan penambahan fractional cut, tabelterakhir menjadi tidak layak walaupun optimal sehingga metode dual simplex diterapkanuntuk meniadakan ketidaklayakan.
• Algoritma berhenti jika solusi optimal bilangan bulat diperoleh.
TI2231 Penelitian Operasional I 49
Fractional Algorithm (11)
i
n
jjij fwf ≥∑
=1
k
n
jjkj fwf ≥∑
=1
Cut (1) dikatakan lebih kuat dari cut (2) jikafi ≥ fk dan fij ≤ fkj untuk semua j dengan strict inequality terpenuhi paling sedikit satu
Kekuatan fractional cut
TI2231 Penelitian Operasional I 50
Fractional Algorithm (12)
Aturan : { }iifmax
⎪⎪⎭
⎪⎪⎬
⎫
⎪⎪⎩
⎪⎪⎨
⎧
∑=
n
jij
i
if
f
1
max
TI2231 Penelitian Operasional I 51
Contoh Penerapan Fractional Algorithm (1)
Maximasi Z = 7x1 + 9x2
dengan pembatas-pembatas:–x1 + 3x2 ≤ 67x1 + x2 ≤ 35x1, x2 ≥ 0 dan bilangan bulat
TI2231 Penelitian Operasional I 52
Contoh Penerapan Fractional Algorithm (2)
Z = 63-15/11-28/1100cj – zj
4 1/23/22-1/2201x1
3 1/21/227/2210x2
Solusix4x3x2x1Basis
Tabel optimal kontinyu
TI2231 Penelitian Operasional I 53
Contoh Penerapan Fractional Algorithm (3)
27
221
227
432 =++ xxx
⎟⎠⎞
⎜⎝⎛ +=⎟
⎠⎞
⎜⎝⎛ ++⎟
⎠⎞
⎜⎝⎛ ++
213
2210
2270 432 xxx
21
221
227
431 −=−− xxS
Fractional cut:
Baris sumber persamaan-x2
TI2231 Penelitian Operasional I 54
Contoh Penerapan Fractional Algorithm (4)
01
0
0S1
-15/11-28/1100cj – zj
-1/2-1/22-7/2200S1
9/23/22-1/2201x1
7/21/227/2210x2
Solusix4x3x2x1Basis
Tabel setelah penambahan fractional cut
TI2231 Penelitian Operasional I 55
Contoh Penerapan Fractional Algorithm (5)
-8-22/7
-1/7
1S1
Z = 59-1000cj – zj
1 4/71/7100x3
4 4/71/7001x1
30010x2
Solusix4x3x2x1Basis
Tabel yang diperoleh dengan dual simplex:
TI2231 Penelitian Operasional I 56
Contoh Penerapan Fractional Algorithm (6)
744
71
71
141 =−+ Sxx
⎟⎠⎞
⎜⎝⎛ +=⎟
⎠⎞
⎜⎝⎛ +−+⎟
⎠⎞
⎜⎝⎛ ++
744
761
710 141 Sxx
74
76
71
142 −=−− SxS
Fractional cut:
Baris sumber persamaan-x1
TI2231 Penelitian Operasional I 57
Contoh Penerapan Fractional Algorithm (7)
0
1
0
0
0
S2
-4/7-6/7-1/7000S2
-8
-22/7
-1/7
1
S1
-1000cj – zj
1 4/71/7100x3
4 4/71/7001x1
30010x2
Solusix4x3x2x1Basis
Tabel setelah penambahan fractional cut
TI2231 Penelitian Operasional I 58
Contoh Penerapan Fractional Algorithm (8)
0
-7
1
1
0
S2
461000x4
-7
-4
-1
1
S1
Z = 55-2000cj – zj
10100x3
40001x1
30010x2
Solusix4x3x2x1Basis
Solusi bilangan bulat optimal, x1 = 4, x2 = 3; Z = 55
Tabel yang diperoleh dengan dual simplex:
TI2231 Penelitian Operasional I 59
21
221
227
431 −=−− xxS
Ilustrasi Fractional Cut secara Grafis (1)
( ) ( )21735
22136
227
21211 −=−−−−+− xxxxS
321 =+ xS
32 ≤x
Fractional cut 1:
TI2231 Penelitian Operasional I 60
Ilustrasi Fractional Cut secara Grafis (2)x2
x1
32 =x
TI2231 Penelitian Operasional I 61
74
76
71
142 −=−− SxS
Ilustrasi Fractional Cut secara Grafis (3)
( ) ( )743
76735
71
2212 −=−−−−− xxxS
7212 =++ xxS
721 ≤+ xx
Fractional cut 2:
TI2231 Penelitian Operasional I 62
Ilustrasi Fractional Cut secara Grafis (4)x2
x1
32 =x
721 =+ xx
TI2231 Penelitian Operasional I 63
Mixed Algorithm (1)
• Digunakan untuk memecahkan masalahpemrograman linier bilangan bulat campuran(MILP)
• Pada awalnya, masalah MILP dipecahkan sebagai PL reguler, yaitu dengan mengabaikan kondisiintegralitas.
TI2231 Penelitian Operasional I 64
Mixed Algorithm (3)
Maximasi Z = 7x1 + 9x2
dengan pembatas-pembatas:–x1 + 3x2 ≤ 67x1 + x2 ≤ 35x1 ≥ 0 dan bilangan bulatx2 ≥ 0
TI2231 Penelitian Operasional I 65
Mixed Algorithm (3)
∑=
−=n
jj
jkkk wx
1αβ
Misal xk adalah variabel bilangan bulat dari masalah MILP.
Persamaan-xk dalam solusi kontinyu optimal:
[ ] ∑=
−+=n
jj
jkkkk wfx
1αβ
[ ] ∑=
−=−n
jj
jkkkk wfx
1αβ
(baris sumber)
TI2231 Penelitian Operasional I 66
Mixed Algorithm (4)
Untuk xk adalah bilangan bulat, maka
[ ] [ ] 1atau +≥≤ kkkk xx ββ
harus dipenuhi
k
n
jk
jk fw ≥∑
=1α
Dari baris sumber, kondisi ini ekivalen dengan
11
−≤∑=
k
n
jk
jk fwα
(1)
(2)
TI2231 Penelitian Operasional I 67
Mixed Algorithm (5)
MisalJ+ = himpunan subscripts j untuk αk
j ≥ 0J- = himpunan subscripts j untuk αk
j < 0
Dari (1) dan (2) diperoleh
k
n
Jjk
jk fw ≥∑
+∈
α
k
n
Jjk
jk
k
k fwf
f≥
− ∑−∈
α1
(1)
(2)
TI2231 Penelitian Operasional I 68
Mixed Algorithm (6)
Karena (1) dan (2), tidak dapat terjadi secara simultan,maka (3) dan (4) dapat digabungkan menjadi satupembatas dalam bentuk
k
n
Jjk
jk
k
kn
Jjk
jkk fw
ffwS −=
⎪⎭
⎪⎬⎫
⎪⎩
⎪⎨⎧
−+− ∑∑
−+ ∈∈
αα1
(mixed cut)
TI2231 Penelitian Operasional I 69
Contoh Penerapan Mixed Algorithm (1)
Maximasi Z = 7x1 + 9x2
dengan pembatas-pembatas:–x1 + 3x2 ≤ 67x1 + x2 ≤ 35x1 ≥ 0 dan bilangan bulatx2 ≥ 0
TI2231 Penelitian Operasional I 70
Contoh Penerapan Mixed Algorithm (2)
Z = 63-15/11-28/1100cj – zj
9/23/22-1/2201x1
7/21/227/2210x2
Solusix4x3x2x1Basis
Tabel optimal kontinyu:
TI2231 Penelitian Operasional I 71
Contoh Penerapan Mixed Algorithm (3)
⎟⎠⎞
⎜⎝⎛ +=+−
214
223
221
431 xxx
21
221
1223
321
21
41 −=⎟⎠⎞
⎜⎝⎛−⎟⎟⎠
⎞⎜⎜⎝
⎛−
+⎟⎠⎞
⎜⎝⎛− xxS
21
223
221
431 −=−− xxS
Mixed cut:
Baris sumber persamaan-x1
{ } { } 21
1 ,4 ,3 === +− fJJ
TI2231 Penelitian Operasional I 72
Contoh Penerapan Mixed Algorithm (4)
01
0
0S1
-15/11-28/1100cj – zj
-1/2-3/22-1/2200S1
9/23/22-1/2201x1
7/21/227/2210x2
Solusix4x3x2x1Basis
Tabel setelah penambahan mixed cut
TI2231 Penelitian Operasional I 73
Contoh Penerapan Mixed Algorithm (5)
0-22/3
1
-1/3S1
Z= 58-10-23/1100cj – zj
11/311/300x4
40-1/1101x1
10/3010/3310x2
Solusix4x3x2x1Basis
Tabel yang diperoleh dengan dual simplex:
Solusi optimal, x1 = 4, x2 = 10/3; Z = 55
TI2231 Penelitian Operasional I 74
Algoritma Branch-and-Bound (1)
• Metode yang paling banyak digunakan dalampraktek untuk memecahkan masalahpemrograman bilangan bulat baik murnimaupun campuran.
• Digunakan sebagian besar software komersial• Pada dasarnya merupakan prosedur enumerasi
yang efisien untuk memeriksa semua solusilayak yang mungkin.
TI2231 Penelitian Operasional I 75
Algoritma Branch-and-Bound (2)
• Algoritma BB untuk PLBB (Murni & Campuran)
• Algoritma BB untuk PLBB Biner
TI2231 Penelitian Operasional I 76
Algoritma BB untuk PLBB (1)
Misalkan diberikan suatu masalah pemrogramanbilangan bulat sebagai berikut:
Maksimasi Z = cxdengan pembatas
Ax = bx ≥ 0xj bilangan bulat untuk j ∈ I
dimana I adalah himpunan variabel bilangan bulat
TI2231 Penelitian Operasional I 77
Algoritma BB untuk PLBB (2)
• Langkah pertama adalah memecahkan masalah PLBB sebagai PL dengan mengabaikan pembatas bilanganbulat (bounding)
• Misalkan masalah PL dinyatakan sebagai PL-1 yang mempunyai nilai optimal dari fungsi tujuan Z1.
PL-1Maksimasi Z = cxdengan pembatas
Ax = bx ≥ 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 untukPLBB belum diperoleh dan Z1 menjadi batas atas(upper bound) dari nilai maksimum Z untuk PLBB.
• Langkah berikutnya adalah mempartisi daerah layakdari PL-1 dengan mencabangkan (branching) salahsatu variabel bilangan bulat yang nilainya pecahan
TI2231 Penelitian Operasional I 79
Algoritma BB untuk PLBB (4)
• Misalkan variabel xj dipilih untuk dicabangkandengan nilai pecahan βj dalam PL-1.
• Misalkan dibuat dua masalah pemrogramanlinier baru, PL-2 dan PL-3 denganmemasukkan masing-masing pembatas baruxj ≤ [β] dan xj ≥ [β]+1
TI2231 Penelitian Operasional I 80
Algoritma BB untuk PLBB (5)
Maksimasi Z = cxdengan pembatas
Ax = bxj ≤ [β]x ≥ 0
Maksimasi Z = cxdengan pembatas
Ax = bxj ≥ [β]+1x ≥ 0
PL-2 PL-3
TI2231 Penelitian Operasional I 81
Algoritma BB untuk PLBB (6)
PL-1
PL-2 PL-2
Solusi pecahanZ1
Solusi pecahanZ2
][ jjx β≤ 1][ +≤ jjx β
Solusi pecahanZ5
TI2231 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.
TI2231 Penelitian Operasional I 83
Algoritma BB untuk PLBB (8)
• Setelah masalah PL dipilih untuk dicabangkan lebihlanjut, 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 suatumasalah PL maka nilai Z-nya menjadi batas bawah(lower bound) dari nilai maksimum Z untuk masalahPLBB.
TI2231 Penelitian Operasional I 84
Algoritma BB untuk PLBB (9)
• Proses branching dan bounding berlanjut hinggasemua 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 pecahanZ0 = Z1
Solusi pecahanZ2
][ jjx β≤ 1][ +≤ jjx β
Solusi pecahanZ5
PL-3 PL-4
Tidak layakSolusi bulatZ4
][ iix β≤ 1][ +≤ iix β
TI2231 Penelitian Operasional I 86
Algoritma BB untuk PLBB (11)
PL-1
PL-2
PL-3 PL-4
PL-5
PL-6 PL-7
Solusi pecahanZ0 = Z1
Solusi pecahanZ2
Tidak layakSolusi bulatZ4
Solusi pecahanZ6 < Z4
][ jjx β≤ 1][ +≤ jjx β
][ iix β≤ 1][ +≤ iix β 1][ +≤ kkx β][ kkx β≤
Solusi pecahanZ5
Solusi pecahanZ7 > Z4
TI2231 Penelitian Operasional I 87
Algoritma BB untuk PLBB (12)
• Esensi dari algoritma BB– Bounding– Branching– Fathoming
TI2231 Penelitian Operasional I 88
Contoh Penerapan Algoritma BB (1)
Maximasi Z = 2x1 + 3x2
dengan pembatas-pembatas:5x1 + 7x2 ≤ 354x1 + 9x2 ≤ 36x1, x2 ≥ 0 dan bilangan bulat
TI2231 Penelitian Operasional I 89
PL0
X1
X2
TI2231 Penelitian Operasional I 90
PL1
Maximasi Z = 2x1 + 3x2 dengan pembatas-pembatas:5x1 + 7x2 ≤ 354x1 + 9x2 ≤ 36x1, x2 ≥ 0
6121 217 17
817
3 , 214
x xZ= =
=
TI2231 Penelitian Operasional I 91
Contoh Penerapan Algoritma BB (2)
PL-1178
176
21712
1
142,3
=
==
Zxx
TI2231 Penelitian Operasional I 92
PL2
Maximasi Z = 2x1 + 3x2 dengan pembatas-pembatas:5x1 + 7x2 ≤ 354x1 + 9x2 ≤ 36
x2 < 2x1, x2 ≥ 0
FeasibleSolution Area
7 9
4
5
X1
X2
0
11 25
25
4 , 214
x xZ= =
=
TI2231 Penelitian Operasional I 93
PL3
Maximasi Z = 2x1 + 3x2 dengan pembatas-pembatas:5x1 + 7x2 ≤ 354x1 + 9x2 ≤ 36
x2 > 3x1, x2 ≥ 0
FeasibleSolution Area
7 9
4
5
X1
X2
0
11 24
12
2 , 313
x xZ= =
=
TI2231 Penelitian Operasional I 94
Contoh Penerapan Algoritma BB (3)
PL-1
PL-2 PL-3
178
176
21712
1
142,3
=
==
Zxx
22 ≤x 32 ≥x
21
241
1
133,2
=
==
Zxx
52
251
1
142,4
=
==
Zxx
TI2231 Penelitian Operasional I 95
PL4
Maximasi Z = 2x1 + 3x2 dengan pembatas-pembatas:5x1 + 7x2 ≤ 354x1 + 9x2 ≤ 36
x2 < 2x1 < 4
x1, x2 ≥ 0
FeasibleSolution Area
7 9
4
5
X1
X2
0
1 24, 214
x xZ= ==
TI2231 Penelitian Operasional I 96
PL5
FSA
7 9
4
5
X1
X2
0
31 2 7
27
5, 114
x xZ= =
=
Maximasi Z = 2x1 + 3x2 dengan pembatas-pembatas:5x1 + 7x2 ≤ 354x1 + 9x2 ≤ 36
x2 < 2x1 > 5
x1, x2 ≥ 0
TI2231 Penelitian Operasional I 97
Contoh Penerapan Algoritma BB (4)
PL-1
PL-2 PL-3
178
176
21712
1
142,3
=
==
Zxx
22 ≤x 32 ≥x
21
241
1
133,2
=
==
Zxx
52
251
1
142,4
=
==
Zxx
PL-4 PL-5
41 ≤x 51 ≥x
142,4 21
===
Zxx
72
73
21
141,5
=
==
Zxx
TI2231 Penelitian Operasional I 98
Contoh Penerapan Algoritma BB (5)
PL-1
PL-2 PL-3
178
176
21712
1
142,3
=
==
Zxx
22 ≤x 32 ≥x
21
241
1
133,2
=
==
Zxx
52
251
1
142,4
=
==
Zxx
PL-4 PL-5
41 ≤x 51 ≥x
142,4 21
===
Zxx
72
73
21
141,5
=
==
Zxx
TI2231 Penelitian Operasional I 99
Contoh Penerapan Algoritma BB (6)
PL-1
PL-2 PL-3
178
176
21712
1
142,3
=
==
Zxx
22 ≤x 32 ≥x
21
241
1
133,2
=
==
Zxx
52
251
1
142,4
=
==
Zxx
PL-4 PL-5
41 ≤x 51 ≥x
142,4 21
===
Zxx
72
73
21
141,5
=
==
Zxx
TI2231 Penelitian Operasional I 100
Contoh Penerapan Algoritma BB (7)
PL-1
PL-2 PL-3
178
176
21712
1
142,3
=
==
Zxx
22 ≤x 32 ≥x
21
241
1
133,2
=
==
Zxx
52
251
1
142,4
=
==
Zxx
PL-4 PL-5
41 ≤x 51 ≥x
142,4 21
===
Zxx
72
73
21
141,5
=
==
Zxx
Fathomed karena perbedaannilai Z dengan lower bound < 1dan semua koefisien fungsi tujuanadalah bulat
Solusi bilangan bulatoptimalx1 = 4, x2 = 2Z = 14
TI2231 Penelitian Operasional I 101
Solusi Optimal
X1
X2
1 24, 214
x xZ= ==
TI2231 Penelitian Operasional I 102
Contoh Penerapan Algoritma BB (8)
PL-1178
176
21712
1
142,3
=
==
Zxx
Pencabangandari PL-3
TI2231 Penelitian Operasional I 103
Contoh Penerapan Algoritma BB (9)
PL-1
PL-2 PL-3
178
176
21712
1
142,3
=
==
Zxx
22 ≤x 32 ≥x
21
241
1
133,2
=
==
Zxx
52
251
1
142,4
=
==
Zxx
TI2231 Penelitian Operasional I 104
Contoh Penerapan Algoritma BB (10)
PL-1
PL-2 PL-3
178
176
21712
1
142,3
=
==
Zxx
22 ≤x 32 ≥x
21
241
1
133,2
=
==
Zxx
52
251
1
142,4
=
==
Zxx
PL-5PL-4
21 ≤x 31 ≥x
Tidak layak
31
91
21
133,2
=
==
Zxx
TI2231 Penelitian Operasional I 105
Contoh Penerapan Algoritma BB (11)
PL-1
PL-2 PL-3
178
176
21712
1
142,3
=
==
Zxx
22 ≤x 32 ≥x
21
241
1
133,2
=
==
Zxx
52
251
1
142,4
=
==
Zxx
PL-5PL-4
21 ≤x 31 ≥x
Tidak layak
31
91
21
133,2
=
==
Zxx
TI2231 Penelitian Operasional I 106
Contoh Penerapan Algoritma BB (12)
PL-1
PL-2 PL-3
178
176
21712
1
142,3
=
==
Zxx
22 ≤x 32 ≥x
21
241
1
133,2
=
==
Zxx
52
251
1
142,4
=
==
Zxx
PL-5PL-4
21 ≤x 31 ≥x
Tidak layak
31
91
21
133,2
=
==
Zxx
PL-6 PL-7133,2 21
===
Zxx
32 ≤x 42 ≥x
124,0 21
===
Zxx
TI2231 Penelitian Operasional I 107
Contoh Penerapan Algoritma BB (13)
PL-1
PL-2 PL-3
178
176
21712
1
142,3
=
==
Zxx
22 ≤x 32 ≥x
21
241
1
133,2
=
==
Zxx
52
251
1
142,4
=
==
Zxx
PL-5PL-4
21 ≤x 31 ≥x
Tidak layak
31
91
21
133,2
=
==
Zxx
PL-6 PL-7133,2 21
===
Zxx
32 ≤x 42 ≥x
124,0 21
===
Zxx
TI2231 Penelitian Operasional I 108
Contoh Penerapan Algoritma BB (14)
PL-1
PL-2 PL-3
178
176
21712
1
142,3
=
==
Zxx
22 ≤x 32 ≥x
21
241
1
133,2
=
==
Zxx
52
251
1
142,4
=
==
Zxx
PL-5PL-4
21 ≤x 31 ≥x
Tidak layak
31
91
21
133,2
=
==
Zxx
PL-6 PL-7133,2 21
===
Zxx
32 ≤x 42 ≥x
124,0 21
===
Zxx
TI2231 Penelitian Operasional I 109
Contoh Penerapan Algoritma BB (15)
PL-1
PL-2 PL-3
178
176
21712
1
142,3
=
==
Zxx
22 ≤x 32 ≥x
21
241
1
133,2
=
==
Zxx
52
251
1
142,4
=
==
Zxx
PL-5PL-4
21 ≤x 31 ≥x
Tidak layak
31
91
21
133,2
=
==
Zxx
PL-6 PL-7133,2 21
===
Zxx
32 ≤x 42 ≥x
124,0 21
===
Zxx
PL-8 PL-9
41 ≤x 51 ≥x
142,4 21
===
Zxx
72
73
21
141,5
=
==
Zxx
TI2231 Penelitian Operasional I 110
Contoh Penerapan Algoritma BB (16)
PL-1
PL-2 PL-3
178
176
21712
1
142,3
=
==
Zxx
22 ≤x 32 ≥x
21
241
1
133,2
=
==
Zxx
52
251
1
142,4
=
==
Zxx
PL-5PL-4
21 ≤x 31 ≥x
Tidak layak
31
91
21
133,2
=
==
Zxx
PL-6 PL-7133,2 21
===
Zxx
32 ≤x 42 ≥x
124,0 21
===
Zxx
PL-8 PL-9
41 ≤x 51 ≥x
142,4 21
===
Zxx
72
73
21
141,5
=
==
Zxx
TI2231 Penelitian Operasional I 111
Contoh Penerapan Algoritma BB (17)
PL-1
PL-2 PL-3
178
176
21712
1
142,3
=
==
Zxx
22 ≤x 32 ≥x
21
241
1
133,2
=
==
Zxx
52
251
1
142,4
=
==
Zxx
PL-5PL-4
21 ≤x 31 ≥x
Tidak layak
31
91
21
133,2
=
==
Zxx
PL-6 PL-7133,2 21
===
Zxx
32 ≤x 42 ≥x
124,0 21
===
Zxx
PL-8 PL-9
41 ≤x 51 ≥x
142,4 21
===
Zxx
72
73
21
141,5
=
==
Zxx
Fathomed karena perbedaannilai Z dengan lower bound < 1dan semua koefisien fungsi tujuanadalah bulat
TI2231 Penelitian Operasional I 112
Aturan Pencabangan (1)
• Aturan-aturan pencabangan variabel adalah sebagaiberikut:– 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 hendakdicabangkan:– 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 ≤ 0x1, x2, x3, x4 = {0, 1}
TI2231 Penelitian Operasional I 115
Contoh Algoritma BB untuk PLBB Biner (2)
PL-1);,,,( 4321 Zxxxx ( )21
65 16;1,0,1,
TI2231 Penelitian Operasional I 116
Contoh Algoritma BB untuk PLBB Biner (3)
PL-1
PL-2 PL-3
);,,,( 4321 Zxxxx ( )21
65 16;1,0,1,
01 =x 11 =x( )9;1,0,1,0 ( )5
154
54 16;,0,,1
TI2231 Penelitian Operasional I 117
Contoh Algoritma BB untuk PLBB Biner (4)
PL-1
PL-2 PL-3
);,,,( 4321 Zxxxx ( )21
65 16;1,0,1,
01 =x 11 =x( )9;1,0,1,0 ( )5
154
54 16;,0,,1
TI2231 Penelitian Operasional I 118
Contoh Algoritma BB untuk PLBB Biner (5)
PL-1
PL-2 PL-3
);,,,( 4321 Zxxxx ( )21
65 16;1,0,1,
01 =x 11 =x( )9;1,0,1,0 ( )5
154
54 16;,0,,1
PL-4 PL-5
02 =x 12 =x
( )54
54 13;0,,0,1
( )16;,0,1,1 21
TI2231 Penelitian Operasional I 119
Contoh Algoritma BB untuk PLBB Biner (6)
PL-1
PL-2 PL-3
);,,,( 4321 Zxxxx ( )21
65 16;1,0,1,
01 =x 11 =x( )9;1,0,1,0 ( )5
154
54 16;,0,,1
PL-4 PL-5
02 =x 12 =x
( )54
54 13;0,,0,1
( )16;,0,1,1 21
PL-6 PL-7
03 =x 13 =x
( )16;,0,1,1 21
Tidak layak
TI2231 Penelitian Operasional I 120
Contoh Algoritma BB untuk PLBB Biner (7)
PL-1
PL-2 PL-3
);,,,( 4321 Zxxxx ( )21
65 16;1,0,1,
01 =x 11 =x( )9;1,0,1,0 ( )5
154
54 16;,0,,1
PL-4 PL-5
02 =x 12 =x
( )54
54 13;0,,0,1
( )16;,0,1,1 21
PL-6 PL-7
03 =x 13 =x
( )16;,0,1,1 21
Tidak layak
PL-8 PL-9( )14;0,0,1,1
04 =x 14 =x
Tidak layak
TI2231 Penelitian Operasional I 121
Contoh Algoritma BB untuk PLBB Biner (8)
PL-1
PL-2 PL-3
);,,,( 4321 Zxxxx ( )21
65 16;1,0,1,
01 =x 11 =x( )9;1,0,1,0 ( )5
154
54 16;,0,,1
PL-4 PL-5
02 =x 12 =x
( )54
54 13;0,,0,1
( )16;,0,1,1 21
PL-6 PL-7
03 =x 13 =x
( )16;,0,1,1 21
Tidak layak
PL-8 PL-9( )14;0,0,1,1
04 =x 14 =x
Tidak layakTI2231 Penelitian Operasional I 122
Contoh Algoritma BB untuk PLBB Biner (9)
PL-1
PL-2 PL-3
);,,,( 4321 Zxxxx ( )21
65 16;1,0,1,
01 =x 11 =x( )9;1,0,1,0 ( )5
154
54 16;,0,,1
PL-4 PL-5
02 =x 12 =x
( )54
54 13;0,,0,1
( )16;,0,1,1 21
PL-6 PL-7
03 =x 13 =x
( )16;,0,1,1 21
Tidak layak
PL-8 PL-9( )14;0,0,1,1
04 =x 14 =x
Tidak layak