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
Cutting Plane
Search method
Branch and Bound
5
Algoritma Branch-and-Bound (1)
6
Maksimasi Z = cx
dengan pembatas
Ax = b
x0
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
x0
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
x0 x0
Algoritma BB untuk ILP (6)
Solusi pecahan
LP-1 Z1
xj [Xj*]
xj [Xj*]+1
Fathoming (Penghentian)
Ilustrasi Penerapan Algoritma BB
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
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
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