Modul 5 - Programa Integer
Modul 5 - Programa Integer
Semua variabel keputusan dari model di atas akan mempunyai nilai riel yang non negatif,
seperti bilangan pecahan, bilangan desimal. Kadang-kadang variabel keputusan harus
mengambil nilai bilangan bulat. Misalnya jumlah pekerja, mesin dls. Jika kita
membulatkan nilai optimal yang diperoleh, penyelesaiannya belum tentu memberikan hasil
yang optimal.
Contoh 1 :
Sebuah perusahaan akan membeli beberapa buah mesin dari dua macam mesin yang
berbeda. Harga mesin pertama adalah $ 1.000.000 dan mesin kedua $ 4.000.000 per unit.
Keuntungan mesin pertama adalah $ 30.000 dan mesin kedua adalah $ 130.000 per unit
per bulan. Dana yang tersedia untuk membeli mesin adalah $ 11.000.000. Berapa buah
mesin yang akan dibeli setiap jenisnya. Tujuan perusahaan tersebut adalah
memaksimalkan keuntungan setiap bulan.
Penyelesaian :
Jika kendala integer diabaikan, diperoleh hasil sebagai berikut :
X1 = 0
X2 = 2,75
z = 357,5
1
(5,1) z = 280
0
(0,2) o
z = 260
Oleh karena variabel keputusan harus merupakan bilangan bulat, kita tetapkan X1 = 0 dan
X2 = 2 (X2 = 3 adalah tidak layak), maka diperoleh Z = 260. Akan tetapi jika diteliti lebih
lanjut pada X1 = 5 dan X2 = 1 diperoleh Z = 280. Dengan demikian terlihat bahwa
pembulatan hasil variabel keputusan dapat diperoleh nilai Z yang tidak optimal. Untuk itu
perlu dicari cara penyelesaian yang memberikan hasil yang optimal.
Penyelesaian :
Variabel keputusan :
X1 = jumlah kapal ukuran 30 yang dibangun
X2 = jumlah kapal ukuran 20 yang dibangun
2
Fungsi tujuan :
Maks. Z = 6X1 + X2
Kendala :
4X1 + X2 < 6 (kebutuhan tenaga kerja)
2X1 + X2 < 4 (luas lantai)
X1; X2 > 0 dan integer
Model menjadi :
Maks. Z = 15X1 + 18X2 + 9X3 + 8X4 + 8X5
d. k. 10X1 + 14X2 + 16X3 + 8X4 + 9X5 < 50
8X1 + 11X2 + 12X3 + 9X4 + 7X5 < 40
6X1 + 8X2 + 9X3 + 7X4 + 5X5 < 30
XJ = 0 atau 1 j = 1; 2; .; 5
3
Model di atas disebut knapsack model. Nama tersebut berasal dari konsep seorang
hiker yang berharap membawa barangnya dalam ransel sebanyak mungkin. Setiap barang
mempunyai berat, volume dan nilai yang berbeda. Dia ingin memaksimalkan nilai barang
bawaannya tanpa melanggar berat dan isi ranselnya.
Penyelesaian :
Variabel : xij = jumlah cat (jumlah drum @ 100 l) yang diangkut dari gudang i ke toko j
1 jika Xij > 0 (terdapat cat yang diangkut)
yij =
0 jika Xij = 0 (tidak ada cat yang diangkut)
Bentuk bersyarat di atas bukanlah bentuk yang linier perlu dijadikan linier
Bentuk di atas dapat diganti dengan bentuk :
xij Myij < 0 dengan M = bilangan positif yang besar sekali
1
yij =
0
Bukti :
xij Myij
Jika xij positif yij = 1 pos. pos. besar = negatif memenuhi
yij = 0 pos. nol = pos. tidak memenuhi
xij Myij < 0
Jika yij = 0 xij - nol < 0 xij < 0 xij = 0 terbukti!
Sebelumnya telah ditentukan xij > 0
4
Dengan demikian model adalah :
Fungsi tujuan :
Min. Z = (3800y11 + 5x11) + (2750y12 + 5x12) + (3400y13 + 5x13)
+ (2900y21 + 5x21) + (3100y22 + 5x22) + (2850y23 + 5x23)
+ (3650y31 + 5x31) + (4020y32 + 5x32) + (3840y33 + 5x33)
+ (4075y41 + 5x41) + (1920y42 + 5x42) + (3040y43 + 5x43)
Dengan kendala :
x11 + x12 + x13 = 60
x21 + x22 + x23 = 70
x31 + x32 + x33 = 80
x41 + x42 + x43 = 90
x11 + x21 + x31 + x41 = 90
x12 + x22 + x32 + x42 = 90
x13 + x23 + x33 + x43 = 120
xij Myij < 0 i = 1; 2; 3; 4 j = 1; 2; 3
xij > 0 i = 1; 2; 3; 4 j = 1; 2; 3
Pada persoalan ini M dapat ditentukan = 120 ( mengapa ?)
Model di atas bentuknya sama dengan persoalan transportasi dalam bentuk standar, kecuali
kendala biaya tetap yaitu xij Myij < 0.
Bentuk ini disebut dengan persoalan biaya tetap (fixed charge problem), karena biaya tetap
tersebut berkaitan dengan variabel xij. Variabel yij adalah untuk menyatakan apakah
biaya tersebut dikenakan atau tidak.
Contoh 5 :
Sebuah perusahaan memerlukan komponen X sebanyak 5000 unit untuk membuat barang
Y. komponen X tersebut adalah suatu produk yang telah distandarisasi. Semua perusahaan
yang dapat memenuhi standar yang diberikan dapat mensupali komponen tersebut. PT. A
menawarkan komponen tersebut dengan harga $ 30 per unit. PT. A saat ini mempunyai
komponen X sebanyak 2000 unit. PT. B menawarkan dengan harga $ 31 per unit untuk
jumlah pesanan sampai dengan 1500 unit, dan dengan harga $ 28 per unit untuk unit ke
1501 dst. Jumlah persediaan komponen X dari PT. B adalah 3500 unit. PT. C menawarkan
dengan harga $ 29 per unit dengan pesanan minimum 2000 unit. Persediaan PT. C adalah
sebanyak 3500 unit. Berapa jumlah komponen yang harus dipesan oleh perusahaan
tersebut dari setiap pemasok yang memberikan biaya pembelian total yang terendah.
Buatlah model matematik dari persoalan di atas.
5
Penyelesaian :
Gambar berikut memperlihat grafik biaya total dari pembelian komponen dari berbagai
perusahaan.
$ $ $
28
29
30 31
Variabel :
X1 = jumlah komponen yang dipesan dari PT. A
X2 = jumlah komponen yang dipesan dari PT. B
X3 = jumlah komponen yang dipesan dari PT. C
d1 = jumlah komponen yang dipesan dari PT. B dengan harga $ 31/unit
d2 = jumlah komponen yang dipesan dari PT. B dengan harga $ 28/unit
Fungsi Tujuan :
Min. Z = 30X1 + 31d1 + 28d2 + 29X3
Dengan kendala :
- Jumlah pembelian : X1 + d1 + d2 + X3 = 5000
- kendala suplai dari PT. A : X1 < 2000
- kendala suplai PT. B : dengan harga $ 31/unit : d1 < 1500
dengan harga $ 28/unit : d2 < 3500 1500
< 2000
jika d2 = 0 maka d1 < 1500 bentuk ini tidak linier perlu dijadikan linier
jika d2 > 0 maka d1 = 1500
6
Bentuk di atas dapat diganti dengan :
1500y1 < d1 < 1500
0 < d2 < 2000y1
y1 = 0 atau 1
Bukti :
y1 = 0 0 < d1 < 1500
0 < d2 < 0 d2 = 0
y1 = 1 1500 < d1 < 1500 d1 = 1500
0 < d2 < 2000
Bukti :
y2 = 0 0 < X3 < 0 X3 = 0
y2 = 1 X3 > 2000
X3 < 3500
1 A 2 B 3 C 4
D E F G H
5 I 6
J K
7 L 8 M 9 N 10
7
Tujuan : Min. z = x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8 + x9 + x10
Kendala : jalan A : x1 + x2 >1
jalan B : x2 + x3 >1
jalan C : x3 + x4 >1
jalan D : x1 + x7 >1
jalan E : x2 + x7 >1
jalan F : x2 + x8 >1
jalan G : x3 + x5 >1
jalan H : x4 + x6 >1
jalan I : x5 + x6 >1
jalan J : x5 + x9 >1
jalan K : x6 + x10 > 1
jalan L : x7 + x8 >1
jalan M : x8 + x9 >1
jalan N : x9 + x10 > 1
Pada persoalan ini terdapat dua macam kendala, yaitu kendala yang menjamin dua
pekerjaan tidak dikerjakan secara bersamaan dan kendala waktu penyerahan.
8
Kendala dua pekerjaan tidak dapat dikerjakan secara bersamaan :
Dua pekerjaan i dan j dengan waktu proses pi dan pj tidak akan dikerjakan secara
bersamaan : xi > xj + pj atau xi - xj > pj
xi > xj + pj xj xi > pi
bentuk pilihan di atas bukan bentuk yang linier harus dijadikan linier.
yij = 1
0
9
METODE BRANCH AND BOUND
Metode ini adalah teknik yang sederhana dan sangat efisien untuk menyelesaiakn
persoalan integer.
Dengan metode ini daerah penyelesaiannya harus dicari secara sisematis sampai sejumlah
kecil penyelesaian integer yang mungkin diperoleh diperiksa penyelesaian mana yang
optimal. Pertama kali diselesaikan persoalan tanpa memperhatikan kendala integernya.
Jika hasilnya telah integer berarti telah optimal, sedangkan jika belum diperoleh hasil
integer yang dikehendaki kita lakukan branch and bound membuat cabang dan
membatasinya ke arah variabel yang belum integer, yaitu dengan menambahkan kendala
baru pada model sebelumnya.
Pertama : cabang kiri model semula ditambahkan kendala baru xj < a
a adalah bilangan integer terdekat dari xj yang lebih kecil dari xj
Kedua : cabang kanan model semula ditambahkan kendala baru xj > b
b adalah bilangan integer terdekat dari xj yang lebih besar dari xj
Kedua model yang baru tersebut diselesaikan. Akan diperoleh hasil optimal dari kedua
model tersebut, di mana variabel keputusannya sebagian/semuanya merupakan bilangan
integer. Jika kriteria integer yang dikehendaki belum terpenuhi semuanya dilakukan
pencabangan ke arah variabel keputusan yang belum integer. Demikian seterusnya sampai
semua kriteria integer yang dikehendaki terpenuhi.
Contoh 6 :
Model Programa Integer :
f. t. maks. Z = x1 + x2
d. k. 3x1 + x2 < 3
x1 + 3x2 < 6
xj > 0 dan integer j =1; 2
Penyelesaian :
Setelah diselesaikan menggunakan metode simpleks dengan mengabaikan ketentuan
integer diperoleh hasil : x1* = 3/8; x2* = 15/8; z* = 18/8 (tanda * menunjukkan nilai
optimal)
Nilai x1 dan x2 belum integer
Pertama kali dibuat terlebih dahulu x1 menjadi integer dilakukan pencabangan
0 < x1=3/8 < 1. Ditambahkan kendala x1 < 0 untuk cabang kiri dan x1 > 1 untuk cabang
kanan pada model programa linier di atas.
10
P. L. 2 (Model cabang kiri) : P. L. 3 (Model cabang kanan ) :
f. t. maks. Z = x1 + x2 f. t. maks. Z = x1 + x2
d. k. 3x1 + x2 < 3 d. k. 3x1 + x2 < 3
x1 + 3x2 < 6 x1 + 3x2 < 6
x1 < 0 x1 > 1
xj > 0 j = 1, 2 xj > 0 j = 1, 2
Dari P. L. 2 terdapat kendala x1 > 0 x1 < 0. Kedua kendala tersebut akan menghasilkan
x1 = 0 (Nilai di luar tersebut adalah tidak mungkin)
Dari P. L. 3 terdapat kendala tambahan x1 > 1 jika digabungkan dengan hasil x1 optimal
pada 3/8 (pada P.L.1) akan menghasilkan x1 = 1 optimal pada P.L. 3.
Kendala x1 < 0 dan x1 > 1 memaksa nilai x1 menjadi integer (d.h.i. 0 atau 1)
Nilai optimalnya adalah :
P. L. 2 : x1* = 0; x2* = 2; z* = 2
P. L. 3 : x1* = 1; x2* = 0; z* = 1
P.L. 1 x1 = 3/8
x2 = 15/8
z = 18/8
x1 < 0 x1 > 1
P.L. 2 P.L. 3
x1 = 0 x=1
x2 = 2 x2 = 0
z=2 z=1
Contoh 7 :
Maks. Z = 2x1 + 5x2 + 3x3
d. k. 2x1 + 2x2 + x3 > 13
3x1 - 4x2 - 2x3 < 7
xj > 0 dan integer j = 1; 2; 3
11
Penyelesaian :
Jika diselesaikan dengan P.L. biasa diperoleh :
x1* = 33/7; x2* = 0; x3* = 25/7; z* = 141/7
oleh karena x1 dan x2 belum integer, harus dilakukan pencabangan, akan tetapi pada
cabang yang mana.
Untuk sementara waktu ditentukan melakukan pencabangan ke variabel yang subscriptnya
yang terendah.
Dengan cara ini diperoleh pohon seperti pada gambar 14.5. Pada gambar tersebut hanya
diberikan pecabangan ke arah kiri saja.
Pada gambar 14.6 diberikan pencabangan seperti pada gambar 14.5 namun di sini tidak
diberikan hasil optimasinya. Gambar 14.7 memperlihatkan semua cabang yang lengkap.
Terlihat tidak semua cabang memberikan penyelesaian yang layak (titik 8, 9 dan 10).
Dengan membandingkan semua hasil yang integer, diperoleh keadaan optimal pada titik
11 dengan nilai Z* = 19.
Pada gambar 14.8 dilakukan pencabangan ke arah kiri dan kanan. Dari sana terlihat pada
cabang kiri belum semua variabelnya integer dengan nilai Z = 31/2 sedangkan pada cabang
kanan semua variabel telah integer dengan nilai Z = 19. Oleh karena nilai cabang kanan
lebih besar dibandingkan cabang kiri, tidak perlu dilakukan pencabangan lebih lanjut pada
arah bawah cabang kiri tersebut karena dipastikan akan diperoleh cabang dengan nilai Z
yang lebih rendah. Dengan demikian jika telah diperoleh pada suatu cabang kriteria
integernya telah terpenuhi sedangkan cabang lainnya mempunyai nilai Z lebih rendah
maka pencabangan dihentikan dan kondisi optimal adalah yang telah diperoleh.
12
x1* = 33/7, x2* = 0
x3* = 25/7, z* = 141/7
x1 < 4 x1 > 5
x1* = 4, x2* = 0
x3* = 5/2, z* = 31/2
x3 < 2 x3 > 3
x1* = 4, x2* = 1/4
x3* = 2, z* = 61/4
x2 < 0 x2 > 1
x1* = 4, x2* = 0
x3* = 2, z* = 14
Gambar 14.5
x1 < 4 x1 > 5
x3 < 2 x1 > 3
x2 < 0 x2 > 1
gambar 14.6
13
1
x1 < 4 x1 > 5
2 11 integer z*=19
x3 < 2 x3 > 3
3 10
tak layak
x2 < 0 x2 > 1
integer z*=14 4 5
x3 < 0 x3 > 1
6 9
tak layak
x2 < 1 x2 > 2
7 8
integer z*=13 tak layak
gambar 14.7
x1 < 4 x1 > 5
Gambar 14.8
14
Formulasi dari persoalan
Programa Integer
Selesaikan persoalan
sebagai persoalan P. L.
Stop. Ambil
Dapatkah penyelesaian
pencabangan ditutup? terbaik
sebagai
Penyels. P. I.
gambar 14.9
15