• Tidak ada hasil yang ditemukan

Materi Bahasan. Pemrograman Bilangan Bulat (Integer Programming) Pemrograman Bilangan Bulat. 1 Pengantar Pemrograman Bilangan Bulat

N/A
N/A
Protected

Academic year: 2021

Membagikan "Materi Bahasan. Pemrograman Bilangan Bulat (Integer Programming) Pemrograman Bilangan Bulat. 1 Pengantar Pemrograman Bilangan Bulat"

Copied!
31
0
0

Teks penuh

(1)

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

(2)

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 2

16

4

2 1

+ x

x

dan dan

My

x

x

+

2

18

+

3

1 2

)

1

(

16

4

2 1

x

M

y

x

+

+

atau atau

PL format:

{ }

0,1 = i y

Fungsi dengan N Nilai yang Mungkin (1)

(

x x xn

)

d d dN

f 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,

(3)

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 yi

TI2231 Penelitian Operasional I 10

Representasi Biner untuk

Variabel Bilangan Bulat (1)

u

x

0

1

2

2

dimana

N

u

N+

Representasi biner:

=

=

N i i i

y

x

0

2

{ }

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

i

30

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

3

u untuk x

2

= 10 Æ 2

3

≤ 10 ≤ 2

4

{ }

0

,

1

,

=

0

,

1

,

2

,

3

=

i

w

i

x

1

, x

2

bil. bulat

② Beberapa Contoh Model Pemrograman

(4)

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 xjj, =1,L, n j xj ≥0, =1,L,

{ }

j n yj = 0,1, =1,...,

(5)

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 j

x

v

Z

1

Maksimasi

dengan pembatas-pembatas:

W

x

w

n j j j

=1

bulat

bilangan

dan

0

j

x

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)

(6)

TI2231 Penelitian Operasional I 21

Set covering problem (3)

=

=

n j j j

x

c

Z

1

Minimasi

dengan pembatas-pembatas:

m

i

x

a

n j j ij

1

,

1

,...,

1

=

=

{ }

j

n

x

j

=

0

,

1

,

=

1

,...,

TI2231 Penelitian Operasional I 22

Set Partitioning Problem

=

=

n j j j

x

c

Z

1

Minimasi

dengan pembatas-pembatas:

m

i

x

a

n j j ij

1

,

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

(7)

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 uij + ij ≤ −1, =2,L, ; =2,L, ; ≠

{ }

i n j n xij = 0,1, =1,L, ; =1,L n i ui ≥0, =1,..., Subtour breaking constraint

TI2231 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)

(8)

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 Cjj, =1,L,

(

y

)

p i n j n i j M C Cji + 1− iji, =1,L, ; =1,L , ≠ n i Cj ≥0, =1,..., j i n j n i p My C Cij + ijj, =1,L, ; =1,L ; ≠

{ }

i n j n yij = 0,1, =1,..., , =1,L n i p C Bj = jj, =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

(9)

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

2

x

1

TI2231 Penelitian Operasional I 36

Solusi Optimal Kontinyu

(dengan mengabaikan kondisi integralitas)

x

2

x

1

(

)

63

3

,

4

)

,

(

12 2 1 2 1

=

=

Z

x

x

(10)

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

2

x

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+ xx 6x1+ x2 2 ≤39

Fractional 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 cn

(11)

TI2231 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

i

diasumsikan

bernilai bilangan bulat

bulat

bilangan

bukan

,

i 1

β

α

β

=

=

n j j j i i i

w

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

i

dan w

j

adalah 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 ij

w

f

Akibatnya

i n j j ij i

f

w

f

f

=1

(12)

TI2231 Penelitian Operasional I 45

Fractional Algorithm (7)

1

1

<

= n j j ij i

f

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 i

f

w

f

TI2231 Penelitian Operasional I 46

Fractional Algorithm (8)

Pertidaksamaan terakhir dapat dijadikan sebagai pembatas

dalam bentuk:

i n j j ij i

f

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 cn

Tabel 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

(13)

TI2231 Penelitian Operasional I 49

Fractional Algorithm (11)

i n j j ij

w

f

f

=1 k n j j kj

w

f

f

=1

Cut (1) dikatakan lebih kuat dari cut (2) jika

f

i

≥ f

k

dan f

ij

≤ f

kj

untuk semua j dengan strict inequality

terpenuhi paling sedikit satu

Kekuatan fractional cut

TI2231 Penelitian Operasional I 50

Fractional Algorithm (12)

Aturan :

{ }

i i

f

max

⎪⎪

⎪⎪

= n j ij i i

f

f

1

max

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

j

4

1

/

2

3/22

-1/22

0

1

x

1

3

1

/

2

1/22

7/22

1

0

x

2

Solusi

x

4

x

3

x

2

x

1

Basis

(14)

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− xx =− S

Fractional cut:

Baris sumber Æ persamaan-x

2

TI2231 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

1

9/2

3/22

-1/22

0

1

x

1

7/2

1/22

7/22

1

0

x

2

Solusi

x

4

x

3

x

2

x

1

Basis

Tabel setelah penambahan fractional cut

Contoh Penerapan Fractional Algorithm (5)

-8

-22/7

-1/7

1

S

1

Z = 59

-1

0

0

0

c

j

– z

j

1

4

/

7

1/7

1

0

0

x

3

4

4

/

7

1/7

0

0

1

x

1

3

0

0

1

0

x

2

Solusi

x

4

x

3

x

2

x

1

Basis

Tabel yang diperoleh dengan dual simplex:

Contoh Penerapan Fractional Algorithm (6)

7 4 4 7 1 7 1 1 4 1+ xS = 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− xS =− S

Fractional cut:

(15)

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− xx =− S

Ilustrasi Fractional Cut secara Grafis (1)

(

)

(

)

2 1 7 35 22 1 3 6 22 7 2 1 2 1 1− +xx − − xx =− S 3 2 1+ x = S 3 2 ≤ x

Fractional cut 1:

Ilustrasi Fractional Cut secara Grafis (2)

x

2

x

1

3

2=

(16)

TI2231 Penelitian Operasional I 61 7 4 7 6 7 1 1 4 2− xS =− S

Ilustrasi Fractional Cut secara Grafis (3)

(

) (

)

7 4 3 7 6 7 35 7 1 2 2 1 2− − xx − −x =− S 7 2 1 2+x +x = S 7 2 1+ xx

Fractional cut 2:

TI2231 Penelitian Operasional I 62

Ilustrasi Fractional Cut secara Grafis (4)

x

2

x

1 3 2= x 7 2 1+ x = x

Mixed Algorithm (1)

• Digunakan untuk memecahkan masalah

pemrograman linier bilangan bulat campuran

(MILP)

• Pada awalnya, masalah MILP dipecahkan sebagai PL

reguler, yaitu dengan mengabaikan kondisi

integralitas.

Mixed Algorithm (3)

Maximasi Z = 7x1+ 9x2 dengan pembatas-pembatas: –x1+ 3x2 ≤ 6 7x1+ x2 ≤ 35

x1≥ 0 dan bilangan bulat x2≥ 0

(17)

TI2231 Penelitian Operasional I 65

Mixed Algorithm (3)

= − = n j j j k k k w x 1 α β

Misal x

k

adalah variabel bilangan bulat dari masalah MILP.

Persamaan-x

k

dalam solusi kontinyu optimal

:

[ ]

= − + = n j j j k k k k f w x 1 α β

[ ]

= − = − n j j j k k k k f w x 1 α β

(baris sumber)

TI2231 Penelitian Operasional I 66

Mixed Algorithm (4)

Untuk x

k

adalah bilangan bulat, maka

[ ]

atau

[ ]

+

1

k k k k

x

x

β

β

harus dipenuhi

k n j k j k

w

f

=1

α

Dari baris sumber, kondisi ini ekivalen dengan

1

1

= k n j k j k

w

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 k

f

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)

(18)

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

j

9/2

3/22

-1/22

0

1

x

1

7/2

1/22

7/22

1

0

x

2

Solusi

x

4

x

3

x

2

x

1

Basis

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

1

9/2

3/22

-1/22

0

1

x

1

7/2

1/22

7/22

1

0

x

2

Solusi

x

4

x

3

x

2

x

1

Basis

(19)

TI2231 Penelitian Operasional I 73

Contoh Penerapan Mixed Algorithm (5)

0

-22/3

1

-1/3

S

1

Z= 58

-10

-23/11

0

0

c

j

– z

j

11/3

1

1/3

0

0

x

4

4

0

-1/11

0

1

x

1

10/3

0

10/33

1

0

x

2

Solusi

x

4

x

3

x

2

x

1

Basis

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

j

bilangan bulat untuk j ∈ I

(20)

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

1

menjadi 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

j

dipilih untuk dicabangkan

dengan nilai pecahan

β

j

dalam 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

(21)

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 Z5

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.

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

(22)

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]+1

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

Algoritma 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

(23)

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

(24)

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≥ 0

(25)

TI2231 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

(26)

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

(27)

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

(28)

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

(29)

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;16

Contoh Algoritma BB untuk PLBB Biner (3)

PL-1 PL-2 PL-3 ) ; , , , (x1 x2 x3 x4 Z

(

2

)

1 6 5,1,0,1;16 0 1= x 1 1= x

(

0,1,0,1;9

)

(

51

)

5 4 5 4,0, ;16 , 1

(30)

TI2231 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 , 1

TI2231 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 21

Contoh 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 layak

Contoh Algoritma BB untuk PLBB Biner (7)

PL-1 PL-2 PL-3 ) ; , , , (x1 x2 x3 x4 Z

(

2

)

1 6 5,1,0,1;16 0 1= x 1 1= x

(

0,1,0,1;9

)

(

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

(31)

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

Tidak layak TI2231 Penelitian Operasional I 122

Contoh Algoritma BB untuk PLBB Biner (9)

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=1 Tidak layak

Gambar

Ilustrasi Suatu Masalah PLBB
Tabel akhir optimal untuk PL
Tabel setelah penambahan fractional cut
Tabel optimal kontinyu
+6

Referensi

Dokumen terkait

Jika pada tanggal / waktu tersebut diatas Saudara atau yang mewakili Saudara (yang ditunjukkan dengan Surat Kuasa dari Perusahaan ) tidak dapat hadir dan/atau

LAPORAN PUBLIKASI (BULANAN)/CONDENSED FINANCIAL STATEMENT (MONTHLY) KOMITMEN KONTIJENSI/OFF BALANCE SHEET.

SADIS yang menggunakan becak mempunyai fungsi sebagai alat transportasi wisata ramah lingkungan di Kota Batu akan menjadi semakin ramah lingkungan karena menggunakan

 Artikel memuat masa kekuasaan belanda kedua di Indonesia dikaji secara mendalam skor 4  Artikel memuat masa kekuasaan belanda kedua di Indonesia dikaji cukup mendalam skor 3

Berdasarkan analisis data dan pengujian hipotesis yang telah dilakukan maka dapat ditarik kesimpulan sebagai berikut. Koefisien determinasi atau R square adalah

Gambar.5 distribusi frekuensi tingkat pengetahuan tentang menopause di Dusun Ngepoh Badran Kranggan Temanggunng Jawa Tengah didapatkan hasil tingkat pengetahuan

Host ID, adalah bagian dari IP address yang digunakan untuk menunjukkan workstation, server router , dan semua host TCP / IP lainnya dalam

Saya yang bertanda tangan di bawah ini menyatakan dengan sesungguhnya bahwa skripsi saya yang berjudul “Pengaruh Proses Penyusunan Anggaran dan Partisipasi Anggaran Terhadap