INTEGER PROGRAMMING
(PEMROGRAMAN BILANGAN BULAT)
Integer programming adalah linier programming dengan tambahan persyaratan bahwa semua atau sebagian variabel keputusan harus bernilai bulat nonnegatif.
Sebagai contoh, dalam suatu operasi pertahanan TNI memerlukan 2,59 unit kapal selam adalah tidak mempunyai makna praktis. Dalam kasus ini 2 atau 3 unit kapal selam harus disediakan (bukan 2,59).
Dalam masalah integer programming, jika model mengharuskan semua variabel basis bernilai integer (bulat positif atau nol), disebut pure (all) integer programming. Jika hanya sebagian variabel yang diharapkan bernilai integer, disebut mixed integer programming.
Contoh Kasus
Sebuah galangan kapal tradisional membuat 2 model kapal dari kayu, yaitu kapal barang dan kapal penangkap ikan. Kapal barang membutuhkan 4 m3 kayu, sedangkan kapal penangkap ikan membutuhkan 3 m3 kayu. Keuntungan yang diperoleh dari penjualan 1 unit kapal barang adalah Rp. 10.000.000,- sedangkan kapal penangkap ikan Rp. 7.000.000,-. Jika saat ini tersedia 10 m3 kayu, berapa unitkah masing-masing model harus dibuat agar diperoleh keuntungan yang optimal? (jawaban harus berupa bilangan bulat)
PEMECAHAN MASALAH 1. Dengan pembulatan
METODE BRANCH AND BOUND
Algoritma penyelesaian masalah integer programming dengan metode BRANCH AND BOUND, adalah sbb:
1. Formulasikan kasus yang ada kedalam formulasi linier programming. Dengan constrain/pembatas variabel basis(X1 dan X2) >= 0 (dan integer), yang kemudian disebut dengan problem 0 (nol)
2. Ubah problem 0 menjadi problem 1, dengan menghilangkan/mengabaikan syarat integer untuk variabel basisnya.
3. Jika jawaban problem 1 tidak layak untuk problem 0, maka problem 1 diubah menjadi 2 problem yang lain (problem 2 dan problem 3).
Misalkan Xj adalah jawaban problem 1 dengan nilai t, dan t bukan integer, sedangkan k adalah integer dimana k < t, maka sekarang problem 1 diubah menjadi problem 2 dan problem 3, dengan cara.
• Untuk Problem 2 : Problem 1, ditambah kendala Xj<=k • Untuk Problem 3 : Problem 1, ditambah kendala Xj>=k + 1