PROGRAMA INTEGER 10/31/2012 1
Programa linier integer (integer linear programming/ilp) pada intinya berkaitan dengan program-program linier dimana beberapa atau semua variabel memiliki nilai-nilai integer (bulat) atau diskrit. Sebuah ILP dikatakan bersifat campuran atau murni bergantung pada apakah beberapa atau semua variabel tersebut dibatasi pada nilai-nilai integer. Kondisi nyata di lapangan justru adalah dalam bentuk ini. Kita hanya berbicara jumlah kursi sebagai kesatuan (6 atau 25 buah, tidak berupa pecahan 6,25 atau 25,8 buah). Teknik yang dapat digunakan untuk menyelesaikan program integer salah satunya adalah dengan metode Branch & Bound : (1) Branch-ing (atau pencabangan): untuk mencoba kedua kemungkinan jawaban integer, misal diperoleh X1 = 3,45 ~ berarti kita buatkan 2 pencabangan (program baru dengan tambahan fungsi pembatas baru pada masing-masingnya, yaitu X1 < 3 dan X1 > 4). (2) Bound-ing (atau pembatasan): memilih salah satu cabang yang memberikan jawaban ke arah yang diinginkan (maksimasi atau minimasi). 10/31/2012 2
Pendekatan Pembulatan Masalah 1 Z Maks = 100 X1 + 90 X2 10 X1 + 7 X2 70 5 X1 + 10 X2 50 X1, X2 0 Masalah 2 Z Min = 200 X1 + 400 X2 10 X1 + 25 X2 70 3 X1 + 2 X2 50 X1, X2 0 Masalah 3 Z Maks = 80 X1 + 100 X2 4 X1 + 2 X2 12 X1 + 5 X2 15 X1, X2 0 10/31/2012 3
Perbandingan antara solusi dengan metode simpleks tanpa pembatasan bilangan bulat, pembulatan bilangan bulat terdekat dan solusi integer Masalah Simpleks biasa 1 X1 = 5,38 X2 = 2,31 Z = 746,15 2 X1 = 1,82 X2 = 3,27 Z = 1.672,73 3 X1 = 2,14 X2 = 1,71 Pembulatan X1 = 5 X2 = 2 Z = 680 X1 = 2 X2 = 3 Tak layak Integer X1 = 7 X2 = 0 Z = 700 X1 = 3 atau 5 X2 = 3 atau 2 Z = 1.800 10/31/2012 4 Z = 343 X1 = 2 X2 = 2 Tak layak X1 = 0 X2 = 3 Z = 300
Contoh 1 : Program 1 Max Z = 10X 1 + 8X 2 S/t 2X 1 + 3X 2 < 11 X 1 dan X 2 > 0 dan integer Program (1) adalah PL awal di atas, dicari solusinya (untuk 2 dimensi dapat digunakan cara grafik, untuk yang 3 atau lebih gunakan metode simpleks). Solusi awal (lihat grafiknya) : X1 = 5,5 ; X2 = 0 ; Z = 55 (solusi integer belum diperoleh karena X1 bernilai pecahan, walaupan Z sudah integer). Perlu dilakukan pencabangan ~ ada di program (2) dan (3). 10/31/2012 5
Grafik 1 10/31/2012 6
Program (2) : tambahan pembatas baru X1 < 5 Max Z = 10X 1 + 8X 2 S/t 2X 1 + 3X 2 < 11 X 1 < 5 Daerah fisibel adalah (0;0) - (5;0) - (5;0,3) - (3,7;0) Nilai Z maksimal ada di (5;0,3) = 52,4 ~ belum solusi integer - cabangkan ke program (4) dan (5) Pencabangan untuk tambahan pembatas X2 < 0 dan X2 > 1 Hasilnya lihat pada grafik 2 10/31/2012 7
Grafik 2 10/31/2012 8
Program (3) : Tambahan pembatas baru X1 > 6 Max Z = 10X 1 + 8X 2 S/t 2X 1 + 3X 2 < 11 X 1 > 6 Program ini tidak fisibel (tidak ada daerah jawaban) Caranya: masukkan pembatas (2) ke (1) ~ nilainya pasti lebih besar dari batas 11 Tidak perlu BOUND-ing, pencabangan sudah pasti harus dari program (2) tercabang ke program 4 dan 5 10/31/2012 9
Program (4) : Tambahan pembatas baru X2 < 0 Max Z = 10X 1 + 8X 2 S/t 2X 1 + 3X 2 < 11 X 1 < 5 X2 < 0 Solusinya adalah pada titik (5;0) dengan Z = 50 ~ solusi OPTIMAL 10/31/2012 10
Program (5) : Tambahan pembatas baru X2 > 1 Max Z = 10X 1 + 8X 2 S/t 2X 1 + 3X 2 < 11 X 1 < 5 X 2 > 1 Solusinya pada titik (4;1) dengan Z = 48 masih kalah dengan hasil program 4 Solusi program 4 dan 5 lihat grafik 3 10/31/2012 11
Grafik 3 10/31/2012 12
Bila digambarkan proses pencabangan/pembatasan untuk soal 1 adalah sebagai berikut: 10/31/2012 13
Contoh 2 Program (1) program asalnya Max Z = 3X 1 + 4X 2 S/t 2X 1 + X 2 < 6 2X 1 + 3X 2 < 9 10/31/2012 14
Solusi program (1) ~ dengan grafik adalah : Daerah fisibel adalah (0;0) - (3;0) - (2,25;1,5) - dan (0;3) daerah yang diarsir Jawab optimal pada (2,25;1,5) dengan Z = 12,75 ~ namun belum integer, baik pada X1 maupun X2 Pencabangan dilakukan pada X2 karena nilai desimal dekat ke SETENGAH (0,5), selanjutnya buatkan program (2) dan (3) dengan tambahan fungsi pembatas baru X2 < 1 dan X2 > 2 10/31/2012 15
Program (2) : Tambahan pembatas baru X2 < 1 Max Z = 3X 1 + 4X 2 S/t 2X 1 + X 2 < 6 2X 1 + 3X 2 < 9 X 2 < 1 10/31/2012 16
Grafik (baru) untuk program 2 dan 3 Daerah fisibel adalah (0;0) - (3;0) - (2,5;1) - dan (0;1) Z maksimal ada di (2,5;1) = 11,5 10/31/2012 17
Program (3) : Tambahan pembatas baru X2 > 2 Max Z = 3X 1 + 4X 2 S/t 2X 1 + X 2 < 6 2X 1 + 3X 2 < 9 X2 > 2 Daerah fisibel adalah (0;2) - (1,5;2) - dan (0;3) Z maksimal ada di (1,5;2) = 12,5 Dari solusi program (2) dan (3) dilakukan bounding (pembatasan) dengan menetapkan bahwa pencabangan berikutnya adalah dari program (3) ~ buatkan program (4) dan (5) dasar bounding adalah nilai terbesar ~ bila kedua program fisibel Pencabangan baru adalah dengan menambahkan pembatas ke program 3 dengan X1 < 1 dan X1 > 2 10/31/2012 18
Program (4) : Ada tambahan pembatas baru X1 < 1 Max Z = 3X 1 + 4X 2 S/t 2X 1 + X 2 < 6 2X 1 + 3X 2 < 9 X2 > 2 X 1 1 Program (5) : Ada tambahan pembatas baru X1 > 2 Max Z = 3X 1 + 4X 2 S/t 2X 1 + X 2 < 6 2X 1 + 3X 2 < 9 X2 > 2 X1 > 2 Program (5) tidak fisibel, masukkan pembatas (3) dan (4) ke (2) ~ hasilnya tidak fisibel Dari gambar terlihat tidak ada daerah yang memenuhi syarat program 3 dan X1 > 2 10/31/2012 19
Grafik (baru): untuk program 4 Hasil program (4) adalah: Daerah fisibel adalah (0;2) - (1;2) - (1;2,3) - dan (0;3) Z maksimal pada (1;2,3) = 12,33 ~ belum integer Lakukan pencabangan baru dari program (4) ini menjadi program (6) dan (7) dengan menambahkan pembatas yang baru X2 < 2 dan X2 > 3 10/31/2012 20
Program (6) : Ada tambahan pembatas baru X2 < 2 Max Z = 3X 1 + 4X 2 S/t 2X 1 + X 2 < 6 2X 1 + 3X 2 < 9 X 2 > 2 X 1 1 X 2 < 2 Solusi program (6) ini ada pada (1;2) dengan Z = 11 10/31/2012 21
Program (7) : Ada tambahan pembatas baru X2 > 3 Max Z = 3X 1 + 4X 2 S/t 2X 1 + X 2 < 6 2X 1 + 3X 2 < 9 X 2 > 2 X 1 1 X 2 > 3 Solusi untuk program (7) adalah pada (0;3) dengan Z = 12 >> SOLUSI OPTIMAL : integer X1 = 0, X2 = 3 Z = 12 10/31/2012 22
Bila dibuatkan diagran pencabangan dan pembatasannya hasilnya sebagai berikut: X1= 2,5 X2=1 X1= 1 X2= 2,3 X1= 1 X2= 2 X1= 2,25 X2= 1,5 X1= 0 X2= 3 X1= 1,5 X2= 2 10/31/2012 23