04d35 integer programming

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

2. Dengan metode branch and bound

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 + 1
4. Jika setelah diselesaikan belum diperoleh jawaban yang layak, maka problem ke
N harus dicabangkan lagi menjadi problem N+1 dan problem N+2, sampai
diperoleh jawaban yang layak atau perhitungan lebih lanjut tidak dimungkinkan.