Anda di halaman 1dari 6

Mixed Integer Programming

Banyak kasus nyata yang melibatkan variabel yang bernilai riil dan juga bernilai binary
integer. Dalam kasus ini kita namakan permasalahan mixed integer programming. Contoh
berikut adalah permasalahan yang masuk dalam kategori mixed integer programming.

Suatu perusahaan manufaktur memproduksi tiga jenis pakaian: baju, celana pendek dan
celana panjang. Untuk memprodusi tiga jenis pakaian tersebut perusahaan memerlukan
berbagai mesin yang berbeda yang harus disewa. Untuk membuat baju diperlukan
pemakaian mesin A dengan ongkos sewa Rp 200 juta per minggu; Untuk membuat
celana pendek diperlukan pemakaian mesin B dengan biaya sewa Rp 150 juta per
minggu. Untuk membuat celana panjang diperlukan pemakaian mesin C dengan sewa
Rp100 juta per minggu. Kebutuhan kain dan tenaga kerja ditunjukkan dalam tabel
berikut. Sedangkan waktu tenaga kerja yang tersedia adalah 150 jam per minggu dan
160 sq yard kain tersedia.

Jenis pakaian Kebutuhan Jam Kebutuhan kain


tenaga kerja
baju 3 4
Celanan pendek 2 3
Celana panjang 6 4

Jenis pakaian Harga jual Biaya variabel


baju 12 6
Celanan pendek 8 4
Celana panjang 15 8

Formulasikan problem ini sebagai MIP agar profit yang diperoleh maksimum.

Definisi variabel
x1= jumlah baju yang diproduksi setiap minggu
x2= jumlah celana pendek yang diproduksi setiap minggu
x3= jumlah celana panjang yang diproduksi setiap minggu

Untuk jenis mesin yang disewa, hanya tergantung pada jenis pakaian yang akan dibuat
bukan pada jumlah tiap pakaiannya. Untuk itu perlu variabel baru yang bisa mewakilinya.
Untuk menyewa mesin atau tidak, bisa dinyatakan dengan
1, jika baju diproduksi
y1  
0, jika tidak
1, jika celana pendek diproduksi
y2  
0, jika tidak
1, jika celana panjang diproduksi
y3  
0, jika tidak
Jadi jika xj > 0 (suatu jenis pakaian diproduksi), maka yj=1. Atau, jika xj = 0 maka yj = 0.
Untuk itu perlu dibuat suatu fungsi konstrain yang menghubungkan antara variabel x dan
y. Berikut ini adalah bentuk kosntrain yang bisa menyatakan hubungan kedua variabel
tadi
x1 ≤ My1
x2 ≤ My2
x3 ≤ My3
dimana M adalah bilangan positif yang cukup besar. Variabel y adalah variabel biner
yang nilainya 1 atau 0. Konstrain ini akan menjamin jika x bernilai > 0 maka y pasti
bernilai 1. Atau jika y = 0 maka x pasti sama dengan 0. Sebaliknya jika x = 0, maka y = 0
atau 1. Misalkan x1 = 0 maka sisi kanan juga akan 0, suatu bilangan besar harus dikalikan
0 agar sama dengan 0. Secara lebih jelas, konstrain ini menjamin bahwa jika produk baju
dibuat, maka mesin A harus disewa. Begitu juga jika celana pendek dibuat maka mesin B
harus disewa. Jika misalnya x1=10, maka y1 pasti sama dengan 1. Karena nilai terkecil
dari sisi kanan yang memenuhi 10 ≤ My1 adalah sebesar M.
Untuk fungsi tujuannya, kita ingin agar perusahaan mencapai profit maksimum.
Profit = penjualan mingguan - biaya mingguan
= penjualan mingguan - biaya variabel – biaya sewa
= (12 x1 + 8x2 + 15x3) - (6x1+4x2+8x3) - (200y1+150y2+100y3)
= 6x1 + 4x2 + 7x3- 200y1- 150y2- 100y3
Untuk fungsi pembatas
3 x1 + 2x2 + 6x3 ≤ 150
4 x1 + 3x2 + 4x3 ≤ 160

Sehingga formulasi lengkap permasalahan ini adalah


Maksimasi 6x1 + 4x2 + 7x3- 200y1- 150y2- 100y3
Subject to
3 x1 + 2x2 + 6x3 ≤ 150
4 x1 + 3x2 + 4x3 ≤ 160

x1 ≤ My1
x2 ≤ My2
x3 ≤ My3
x1 , x2 , x3 ≥ 0, integer
y1 , y2 , y3 = 0 atau 1

Berikut contoh lain yang melibatkan formulasi binary integer programming dimana
kasusnya sedikit lebih kompleks dibanding contoh 1.
Suatu perusahaan manufaktur ingin melakukan ekspansi dengan cara membangun sebuah
pabrik baru di Pasuruhan atau Gresik atau mungkin di kedua kota. Perusahaan juga
mempertimbangkan untuk membangun paling banyak satu gudang baru. Pilihan tempat
gudang harus sesuai dengan pilihan tempat pabrik yang dibangun. Artinya kalau pabrik
dibangun di Pasuruhan maka gudang juga dibangun di kota yang sama. Net present value
dari setiap alternatif diberikan dalam tabel berikut . Kolom terakhir menunjukkan modal
yang diperlukan untuk masing-masing investasi. Sedangkan jumlah total modal yang
tersedia adalah 10 milyar. Tujuannya adalah menentukan kombinasi investasi yang
memaksimalkan net present value.

Alternatif Pertanyaan Variabel Net present Modal yang


keputusan value diperlukan
(Milyar)
1 Membangun pabrik di x1 9 6
Pasuruhan?
2 Membangun Pabrik di x2 5 3
Gresik?
3 Membangun gudang x3 6 5
di Pasuruhan?
4 Membangun gudang x4 4 2
di Gresik?
Modal yang 10
tersedia

1, jika pabrik dibangun di lokasi i


xi  
0, jika tidak
Z adalah net present value, yaitu profit yang akan diperoleh dihitung waktu sekarang.
Z= 9x1 + 5x2 + 6x3 + 4x4

Jumlah yang diinvestasikan tidak bisa melebihi 10


6x1 + 3x2 +5x3 + 2x4 ≤10.

Karena dua keputusan terakhir bersifat mutually exclusive atau saling meniadakan (paling
banyak hanya membangun satu gudang), maka kita perlu pembatas
x3 + x4 ≤ 1.

Dengan konstrain ini, jika x3=1 maka x4=0 atau sebaliknya. Selanjutnya, keputusan 3 dan
4 bergantung pada keputusan 1 dan 2, artinya gudang hanya akan dibangun pada lokasi
dimana pabrik dibangun. Sehingga kita perlu menjamin x3 = 0 jika x1 = 0. Ini dilakukan
dengan menambahkan pembatas
x3 ≤ x1.

Dengan logika yang sama, x4= 0 jika x2= 0, dengan menambahkan pembatas
x4 ≤x2.

Dengan demikian, secara keseluruhan akan kita dapatkan formulasi BIP dari
permasalahan ini adalah sebagai berikut
Maksimasi Z = 9x1 + 5x2 + 6x3 + 4x4
subject to
6x1 + 3x2 +5x3 + 2x4 ≤10
x3 + x4 ≤1.
-x1 + x3 ≤ 0
- x2 + x4 ≤0
xj ≤ 1
xj ≥0
dan xj is integer, untuk j= 1, 2, 3, 4.

Atau secara ekuivalent, tiga konstrain terakhir bisa diganti dengan konstrain
xj biner, untuk j = 1, 2, 3, 4.
T RAVELING S ALESMAN PROBLEM (TSP)
Traveling Salesman Problem (TSP) adalah permasalahan umum dalam integer
programming dimana seorang salesman harus mengunjungi sejumlah N kota, disyaratkan
setiap kota hanya dikunjungi sekali. Salesman ini harus memilih rute sehingga jarak total
yang dia tempuh minimum. Secara optimasi TSP ini bisa diformulasikan sebagai berikut
N N
min z   c ij xij
i 1 j 1

subject to
N

x
i 1
ij  1, j  1,2.., N
N

x
j 1
ij  1, i  1,2.., N

ui  u j  Nxij  N  1, i  j , i  2,.., N , j  2,.., N


ui , u j  0

Dimana cij adalah jarak antara kota i dan j. Kemudian xij bernilai 0 atau 1. bernilai 1 jika
i-j termasuk dalam rute. Set konstrain pertama menjamin bahwa setiap kota tujuan j
hanya didatangi sekali. Sedangkan set konstrain kedua menjamin bahwa hanya ada satu
aliran keluar dari setiap kota asal i.
Untuk set konstrain ketiga, untuk mencegah adanya subtour. Jadi tidak dimungkinkan ada
subtour di dalam tour utama (yaitu rute yang dipilih)
Misalnya seorang salesman ingin mengunjungi 5 kota. Kelima kota hanya dikunjungi
sekali. Untuk itu dia ingin agar jarak total yang ditempuh minimum.
Kota 1 Kota 2 Kota 3 Kota 4 Kota 5
Kota 1 0 132 217 164 58
Kota 2 132 0 290 201 79
Kota 3 217 290 0 113 303
Kota 4 164 201 113 0 196
Kota 5 58 79 303 196 0

Untuk masalah ini, berikut adalah formulasi matematikanya

Minimasi 1000x11+132x21 +217 x31+ 164 x41+58 x51


132x12 + 1000x22 +290 x32+201 x42+79 x52+
217x13+ 290 x23+ 1000x33+113 x43+303 x53+
201 x24+113 x34+196 x54+ 79 x25+303 x35+196 x45
Subject to
x11+ x21 + x31+ x41+ x51=1
x12+x22+ x32+ x42+ x52=1
x13+x23+ x33+x43+x53=1
x14+x24+ x34+ x44+ x54=1
x15+x25+ x35+ x45+ x55=1

x11+x12 +x13+ x14+ x15=1


x21+ x22+ x23+ x24+ x25=1
x31+x32+ x33+x34+x35=1
x41+x42+ x43+ x44+ x45=1
x51+x52+ x53+ x54 +x55=1
u2-u3 + 5x23 <=4
u2-u4 + 5x24 <=4
u2-u5 + 5x25 <=4
u3-u2 + 5x32 <=4
u3-u4 + 5x34 <=4
u3-u5 + 5x35 <=4
u4-u5 + 5x45 <=4
u4-u3 + 5x43 <=4
u4-u2 + 5x42 <=4
u5-u4 + 5x54 <=4
u5-u3 + 5x53 <=4
u5-u2 + 5x52 <=4
ui, uj, xij ≥0

Nilai 1000 digunakan di depan variabel xij dimana i=j, untuk mencegah agar tidak ada
aliran dari kota asal i ke kota i sendiri.

Anda mungkin juga menyukai