Metode branch-and-bound untuk pemrograman bilangan bulat biner · yang bulat (bukan pecahan) ... 8...

31

Click here to load reader

Transcript of Metode branch-and-bound untuk pemrograman bilangan bulat biner · yang bulat (bukan pecahan) ... 8...

Page 1: Metode branch-and-bound untuk pemrograman bilangan bulat biner · yang bulat (bukan pecahan) ... 8 5 3 Contoh masalah set covering problem dalam menentukan ... pemrograman linier

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)

Page 2: Metode branch-and-bound untuk pemrograman bilangan bulat biner · yang bulat (bukan pecahan) ... 8 5 3 Contoh masalah set covering problem dalam menentukan ... pemrograman linier

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==

Page 3: Metode branch-and-bound untuk pemrograman bilangan bulat biner · yang bulat (bukan pecahan) ... 8 5 3 Contoh masalah set covering problem dalam menentukan ... pemrograman linier

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

Page 4: Metode branch-and-bound untuk pemrograman bilangan bulat biner · yang bulat (bukan pecahan) ... 8 5 3 Contoh masalah set covering problem dalam menentukan ... pemrograman linier

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 ==

Page 5: Metode branch-and-bound untuk pemrograman bilangan bulat biner · yang bulat (bukan pecahan) ... 8 5 3 Contoh masalah set covering problem dalam menentukan ... pemrograman linier

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)

Page 6: Metode branch-and-bound untuk pemrograman bilangan bulat biner · yang bulat (bukan pecahan) ... 8 5 3 Contoh masalah set covering problem dalam menentukan ... pemrograman linier

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

Page 7: Metode branch-and-bound untuk pemrograman bilangan bulat biner · yang bulat (bukan pecahan) ... 8 5 3 Contoh masalah set covering problem dalam menentukan ... pemrograman linier

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)

Page 8: Metode branch-and-bound untuk pemrograman bilangan bulat biner · yang bulat (bukan pecahan) ... 8 5 3 Contoh masalah set covering problem dalam menentukan ... pemrograman linier

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

Page 9: Metode branch-and-bound untuk pemrograman bilangan bulat biner · yang bulat (bukan pecahan) ... 8 5 3 Contoh masalah set covering problem dalam menentukan ... pemrograman linier

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

Page 10: Metode branch-and-bound untuk pemrograman bilangan bulat biner · yang bulat (bukan pecahan) ... 8 5 3 Contoh masalah set covering problem dalam menentukan ... pemrograman linier

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

Page 11: Metode branch-and-bound untuk pemrograman bilangan bulat biner · yang bulat (bukan pecahan) ... 8 5 3 Contoh masalah set covering problem dalam menentukan ... pemrograman linier

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

Page 12: Metode branch-and-bound untuk pemrograman bilangan bulat biner · yang bulat (bukan pecahan) ... 8 5 3 Contoh masalah set covering problem dalam menentukan ... pemrograman linier

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.

Page 13: Metode branch-and-bound untuk pemrograman bilangan bulat biner · yang bulat (bukan pecahan) ... 8 5 3 Contoh masalah set covering problem dalam menentukan ... pemrograman linier

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

Page 14: Metode branch-and-bound untuk pemrograman bilangan bulat biner · yang bulat (bukan pecahan) ... 8 5 3 Contoh masalah set covering problem dalam menentukan ... pemrograman linier

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

Page 15: Metode branch-and-bound untuk pemrograman bilangan bulat biner · yang bulat (bukan pecahan) ... 8 5 3 Contoh masalah set covering problem dalam menentukan ... pemrograman linier

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

Page 16: Metode branch-and-bound untuk pemrograman bilangan bulat biner · yang bulat (bukan pecahan) ... 8 5 3 Contoh masalah set covering problem dalam menentukan ... pemrograman linier

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

Page 17: Metode branch-and-bound untuk pemrograman bilangan bulat biner · yang bulat (bukan pecahan) ... 8 5 3 Contoh masalah set covering problem dalam menentukan ... pemrograman linier

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)

Page 18: Metode branch-and-bound untuk pemrograman bilangan bulat biner · yang bulat (bukan pecahan) ... 8 5 3 Contoh masalah set covering problem dalam menentukan ... pemrograman linier

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

Page 19: Metode branch-and-bound untuk pemrograman bilangan bulat biner · yang bulat (bukan pecahan) ... 8 5 3 Contoh masalah set covering problem dalam menentukan ... pemrograman linier

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

Page 20: Metode branch-and-bound untuk pemrograman bilangan bulat biner · yang bulat (bukan pecahan) ... 8 5 3 Contoh masalah set covering problem dalam menentukan ... pemrograman linier

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

Page 21: Metode branch-and-bound untuk pemrograman bilangan bulat biner · yang bulat (bukan pecahan) ... 8 5 3 Contoh masalah set covering problem dalam menentukan ... pemrograman linier

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

Page 22: Metode branch-and-bound untuk pemrograman bilangan bulat biner · yang bulat (bukan pecahan) ... 8 5 3 Contoh masalah set covering problem dalam menentukan ... pemrograman linier

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

Page 23: Metode branch-and-bound untuk pemrograman bilangan bulat biner · yang bulat (bukan pecahan) ... 8 5 3 Contoh masalah set covering problem dalam menentukan ... pemrograman linier

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= =

=

Page 24: Metode branch-and-bound untuk pemrograman bilangan bulat biner · yang bulat (bukan pecahan) ... 8 5 3 Contoh masalah set covering problem dalam menentukan ... pemrograman linier

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

Page 25: Metode branch-and-bound untuk pemrograman bilangan bulat biner · yang bulat (bukan pecahan) ... 8 5 3 Contoh masalah set covering problem dalam menentukan ... pemrograman linier

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

Page 26: Metode branch-and-bound untuk pemrograman bilangan bulat biner · yang bulat (bukan pecahan) ... 8 5 3 Contoh masalah set covering problem dalam menentukan ... pemrograman linier

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

Page 27: Metode branch-and-bound untuk pemrograman bilangan bulat biner · yang bulat (bukan pecahan) ... 8 5 3 Contoh masalah set covering problem dalam menentukan ... pemrograman linier

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

Page 28: Metode branch-and-bound untuk pemrograman bilangan bulat biner · yang bulat (bukan pecahan) ... 8 5 3 Contoh masalah set covering problem dalam menentukan ... pemrograman linier

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

Page 29: Metode branch-and-bound untuk pemrograman bilangan bulat biner · yang bulat (bukan pecahan) ... 8 5 3 Contoh masalah set covering problem dalam menentukan ... pemrograman linier

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

Page 30: Metode branch-and-bound untuk pemrograman bilangan bulat biner · yang bulat (bukan pecahan) ... 8 5 3 Contoh masalah set covering problem dalam menentukan ... pemrograman linier

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

Page 31: Metode branch-and-bound untuk pemrograman bilangan bulat biner · yang bulat (bukan pecahan) ... 8 5 3 Contoh masalah set covering problem dalam menentukan ... pemrograman linier

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