Anda di halaman 1dari 32

PEMROGRAMAN LINIER

BILANGAN BULAT – INTEGER


LINEAR PROGRAMMING
Pertemuan 14
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 linear
programming problem)

2
Jenis Pemrograman Linier
Bilangan Bulat
 Pemrograman linier bilangan bulat murni (pure
integer linear programming, PILP)

(sumber: Winston)
 Pemrograman linier bilangan bulat campuran
(mixed integer linear programming, MILP)

(sumber: Winston)
 Pemrograman linier bilangan bulat biner (binary
integer linear programming, BILP)

(sumber: Winston)
Metode Pemecahan

Metode pemecahan kasus pemrograman bilangan bulat:


 Cutting method

 Cutting Plane
 Search method
 Branch and Bound

5
Algoritma Branch-and-Bound (1)
6

 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 BB untuk ILP (1)
Misalkan diberikan suatu masalah pemrograman bilangan bulat
sebagai berikut:

Maksimasi Z = cx
dengan pembatas
Ax = b
x0
xj bilangan bulat untuk j  I
dimana I adalah himpunan variabel bilangan bulat

7
Algoritma BB untuk ILP (2)
 Langkah pertama adalah memecahkan masalah ILP sebagai LP
dengan mengabaikan pembatas bilangan bulat (bounding) LP
Relaxation
 Misalkan masalah LP dinyatakan sebagai LP-1 yang mempunyai
nilai optimal dari fungsi tujuan Z1.

LP-1
Maksimasi Z = cx
dengan pembatas
Ax = b
x0
Algoritma BB untuk ILP (3)
 Asumsikan bahwa solusi optimal dari LP-1 mengandung
beberapa variabel bilangan bulat yang mempunyai nilai
pecahan.
 Oleh karena itu, solusi optimal bilangan bulat untuk ILP belum
diperoleh dan Z1 menjadi batas atas (upper bound) dari nilai
maksimum Z untuk ILP.
 Langkah berikutnya adalah mempartisi daerah layak dari LP-
1 dengan mencabangkan (branching) salah satu variabel
bilangan bulat yang nilainya pecahan
Algoritma BB untuk ILP (4)
 Misalkan variabel xj dipilih untuk dicabangkan dengan nilai
pecahan Xj dalam LP-1.
 Misalkan dibuat dua masalah pemrograman linier baru, LP-
2 dan LP-3 dengan memasukkan masing-masing pembatas
baru xj  [Xj*] dan xj  [Xj*]+1
Algoritma BB untuk ILP (5)

LP-2 LP-3

Maksimasi Z = cx Maksimasi Z = cx
dengan pembatas dengan pembatas
Ax = b Ax = b
xj  [Xj*] xj  [Xj*]+1
x0 x0
Algoritma BB untuk ILP (6)

Solusi pecahan
LP-1 Z1

xj  [Xj*]
xj  [Xj*]+1

Solusi pecahan Solusi pecahan


LP-2 LP-3 Z5
Z2
Algoritma BB untuk ILP (7)
 Memecahkan (bounding) LP-2 dan LP-3
 Asumsikan solusi LP-2 dan LP-3 masih pecahan
 Langkah berikutnya adalah memilih node (masalah LP)
yang akan dicabangkan.
Algoritma BB untuk ILP (8)
 Setelah masalah LP dipilih untuk dicabangkan lebih lanjut,
langkahnya selanjutnya adalah
 memilih variabel bilangan bulat dengan nilai pecahan yang akan
dicabangkan untuk membentuk dua masalah LP baru (proses branching)
 memecahkan masalah LP yang baru (proses bounding)
 Jika solusi bilangan bulat diperoleh dari suatu masalah LP
maka nilai Z-nya menjadi batas bawah (lower bound) dari nilai
maksimum Z untuk masalah ILP.
Algoritma BB untuk ILP (9)
 Proses branching dan bounding berlanjut hingga
semua node dalam kondisi fathomed.
 Uji Penghentian (Fathoming test) masalah LP:
 Solusi optimal LP merupakan bilangan bulat
 Masalah LP adalah tak layak

 Nilai optimal Z dari masalah LP tidak lebih baik


daripada batas bawah (lower bound) saat ini.
Algoritma BB untuk ILP
 Esensi dari algoritma BB
 Bounding (Pembatasan)
 Branching (Percabangan)

 Fathoming (Penghentian)
Ilustrasi Penerapan Algoritma BB

Maximasi Z = 2x1 + 3x2

dengan pembatas-pembatas:
5x1 + 7x2  35
4x1 + 9x2  36
x1, x2 ≥ 0 dan integer
Ilustrasi Penerapan Algoritma BB

X1 = 3,71
X2 = 2,35
LP-1 Z=14,47
Ilustrasi Penerapan Algoritma BB

X1 = 3,71
X2 = 2,35
Z=14,47
LP-1
X1 = 4,2 x2  2 x2  3 X1 = 2,25
X2 = 2 X2 = 3
Z=14,4 Z = 13,5
LP-2 LP-3
Ilustrasi Penerapan Algoritma BB

X1 = 3,71
X2 = 2,35
Z=14,47
LP-1
X1 = 4,2 x2  2 x2  3 X1 = 2,25
X2 = 2 X2 = 3
Z=14,4 Z = 13,5
LP-2 LP-3
x1  4 x1  5
X1 = 4 X1 = 5
LP-4 X2 = 2 LP-5 X2 = 1,42
Z = 14 Z = 14,26
Ilustrasi Penerapan Algoritma BB

X1 = 3,71
X2 = 2,35
Z=14,47
LP-1
X1 = 4,2 x2  2 x2  3 X1 = 2,25
X2 = 2 X2 = 3
Z=14,4 Z = 13,5
LP-2 LP-3
x1  4 x1  5
X1 = 4 X1 = 5
LP-4 X2 = 2 LP-5 X2 = 1,42
Z = 14 Z = 14,26
Ilustrasi Penerapan Algoritma BB

X1 = 3,71
X2 = 2,35
Z=14,47
LP-1
X1 = 4,2 x2  2 x2  3 X1 = 2,25
X2 = 2 X2 = 3
Z=14,4 Z = 13,5
LP-2 LP-3
x1  4 x1  5
X1 = 4 X1 = 5
LP-4 X2 = 2 LP-5 X2 = 1,42
Z = 14 Z = 14,26

Fathomed karena perbedaan nilai Z


dengan lower bound < 1 dan semua
koefisien fungsi tujuan adalah bulat
Ilustrasi Penerapan Algoritma BB

X1 = 3,71
X2 = 2,35
Z=14,47
LP-1
X1 = 4,2 x2  2 x2  3 X1 = 2,25
X2 = 2 X2 = 3
Z=14,4 Z = 13,5
LP-2 LP-3
x1  4 x1  5
X1 = 4 X1 = 5
LP-4 X2 = 2 LP-5 X2 = 1,42
Z = 14 Z = 14,26

Fathomed karena perbedaan nilai Z


dengan lower bound < 1 dan semua
koefisien fungsi tujuan adalah bulat
Ilustrasi Penerapan Algoritma BB

Pencabangan dari LP-3 X1 = 3,71


X2 = 2,35
Z=14,47
LP-1
X1 = 4,2 x2  2 x2  3 X1 = 2,25
X2 = 2 X2 = 3
Z=14,4 Z = 13,5
LP-2 LP-3
Ilustrasi Penerapan Algoritma BB

X1 = 3,71
X2 = 2,35
Z=14,47
LP-1
X1 = 4,2 x2  2 x2  3 X1 = 2,25
X2 = 2 X2 = 3
Z=14,4 Z = 13,5
LP-2 LP-3
x1  2 x1  3
X1 = 2
LP-4 X2 = 3,11 LP-5
Z = 13,33
Tidak
layak
Ilustrasi Penerapan Algoritma BB

X1 = 3,71
X2 = 2,35
Z=14,47
LP-1
X1 = 4,2 x2  2 x2  3 X1 = 2,25
X2 = 2 X2 = 3
Z=14,4 Z = 13,5
LP-2 LP-3
x1  2 x1  3
X1 = 2
LP-4 X2 = 3,11 LP-5
Z = 13,33
x2  3 x2  4 Tidak
layak
x1  2, x2  3
Z  13
LP-6 LP-7 x  0, x  4
1 2

Z  12
Ilustrasi Penerapan Algoritma BB

X1 = 3,71
X2 = 2,35
Z=14,47
LP-1
X1 = 4,2 x2  2 x2  3 X1 = 2,25
X2 = 2 X2 = 3
Z=14,4 Z = 13,5
LP-2 LP-3
x1  2 x1  3
X1 = 2
LP-4 X2 = 3,11 LP-5
Z = 13,33
x2  3 x2  4 Tidak
layak
x1  2, x2  3
Z  13
LP-6 LP-7 x  0, x  4
1 2

Z  12
Ilustrasi Penerapan Algoritma BB

X1 = 3,71
X2 = 2,35
Z=14,47
LP-1
X1 = 4,2 x2  2 x2  3 X1 = 2,25
X2 = 2 X2 = 3
Z=14,4 Z = 13,5
LP-2 LP-3
x1  2 x1  3
X1 = 2
LP-4 X2 = 3,11 LP-5
Z = 13,33
x2  3 x2  4 Tidak
layak
x1  2, x2  3
Z  13
LP-6 LP-7 x  0, x  4
1 2

Z  12
Ilustrasi Penerapan Algoritma BB

X1 = 3,71
X2 = 2,35
Z=14,47
LP-1
X1 = 4,2 x2  2 x2  3 X1 = 2,25
X2 = 2 X2 = 3
Z=14,4 Z = 13,5
LP-2 LP-3
x1  4 x1  5 x1  2 x1  3
X1 = 4 X1 = 5 X1 = 2
LP-8 X2 = 2 LP-9 X2 = 1,42 LP-4 X2 = 3,11 LP-5
Z = 14 Z = 14,26 Z = 13,33
x2  3 x2  4 Tidak
Fathomed karena perbedaan nilai Z layak
dengan lower bound < 1 dan semua x1  2, x2  3
koefisien fungsi tujuan adalah bulat LP-6 LP-7 x  0, x  4
Z  13 1 2

Z  12
Ilustrasi Penerapan Algoritma BB

X1 = 3,71
X2 = 2,35
Z=14,47
LP-1
X1 = 4,2 x2  2 x2  3 X1 = 2,25
X2 = 2 X2 = 3
Z=14,4 Z = 13,5
LP-2 LP-3
x1  4 x1  5 x1  2 x1  3
X1 = 4 X1 = 5 X1 = 2
LP-8 X2 = 2 LP-9 X2 = 1,42 LP-4 X2 = 3,11 LP-5
Z = 14 Z = 14,26 Z = 13,33
x2  3 x2  4 Tidak
layak
x1  2, x2  3
Z  13
LP-6 LP-7 x  0, x  4
1 2

Z  12
Ilustrasi Penerapan Algoritma BB

X1 = 3,71
X2 = 2,35
Z=14,47
LP-1
X1 = 4,2 x2  2 x2  3 X1 = 2,25
X2 = 2 X2 = 3
Z=14,4 Z = 13,5
LP-2 LP-3
x1  4 x1  5 x1  2 x1  3
X1 = 4 X1 = 5 X1 = 2
LP-8 X2 = 2 LP-9 X2 = 1,42 LP-4 X2 = 3,11 LP-5
Z = 14 Z = 14,26 Z = 13,33
x2  3 x2  4 Tidak
Fathomed karena perbedaan nilai Z layak
dengan lower bound < 1 dan semua x1  2, x2  3
koefisien fungsi tujuan adalah bulat LP-6 LP-7 x  0, x  4
Z  13 1 2

Z  12
Solusi bilangan bulat optimal
x1 = 4, x2 = 2
Z = 14
Aturan Pencabangan
 Aturan-aturan pencabangan variabel adalah
sebagai berikut:
 Pilih variabel bilangan bulat yang mempunyai nilai pecahan
terbesar dalam solusi LP.
 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

Anda mungkin juga menyukai