Siti Maslikhah , Metode Pemecahan Masalah ...
| 211

## METODE PEMECAHAN MASALAH INTEGER PROGRAMMING

## Oleh : Siti Maslihah
Fakultas Ilmu Tarbiyah dan Keguruan Universitas Islam Negeri Walisongo Email : ratik20@yahoo.com

## Abstrak
Variabel keputusan dalam penyelesaian masalah program linier sering kali  berupa  bilangan  pecahan.  Dalam  beberapa  kasus  tertentu  ada  yang menghendaki solusinya berupa bilangan bulat (integer). Solusi integer yang didapatkan  dengan  cara  pembulatan  tidak  menjamin  berada  di  daerah fisibel. Untuk memperoleh solusi integer antara lain dengan metode Cutting Plane  Algorithm atau Branch  and  Bound .  Kelebihan  metode Cutting  Plane Algorithm adalah  cukup  efektif  mempersingkat  hitungan,  sedangkan kelebihan metode Branch and Bound adalah memiliki tingkat kesalahan yang sedikit akan tetapi memerlukan perhitungan yang cukup lama.

## Abstract
Decision variables in the problem solving linear programs are often in the form of fractions.  In  some  cases  there  are  specific  desires  the  solution  in  the  form  of  an  integer (integer). Integer solution is obtained by way of rounding does not warrant being in the area of fisibel. To obtain integer solutions, among others, by the method of Cutting Plane Algorithm  or  Branch  and  Bound.  The  advantages  of  the  method  of  Cutting  Plane Algorithm is quite effectively shorten the matter,  while the advantages of the method of Branch and Bound the error level is to have a little but requires quite a long calculation.
Key Word : integer linier programming; Cutting Plane Algorithm; Branch and Bound

## A. Pendahuluan
Model  dalam  masalah  program  linier  salah  satunya  membolehkan variabel  keputusannya  berupa  bilangan  pecahan,  jadi  solusinya  merupakan solusi  yang  kontinu  dengan  menggunakan  asumsi  divisibilitas.  Dalam beberapa kasus, asumsi divisibilitas tidak dapat diterapkan dan tidak dapat diterima.  Misalnya  suatu  solusi  menghasilkan  4.23  buah  pesawat  terbang yang  akan  diproduksi  agar  keuntungan  maksimum.  Hal  ini  tidak  dapat diterima  karena  pesawat  yang  dibuat  seharusnya  4  atau  5  buah.  Masalah solusi  yang  tidak  bulat  ini  dapat  diatasi  dengan  menggunakan  optimisasi
212  |
Jurnal at-Taqaddum, Volume 7, Nomor 2, November 2015
dengan  solusi  bulat  yang  disebut  dengan integer  programming .  Model  dari integer programming sebagai berkut:
Maksimumkan
1 n j j j c x   Dengan kendala 1 n i j j i j a x b    , 1, 2,3,..., i m  0 j x  j x integer, untuk beberapa atau untuk semua 1, 2,3,..., j n 

## B. Contoh-contoh masalah Integer Programming
Terdapat mixed integer programming dan pure integer programming dan 0 – 1 integer  programming.  Dikatakan mixed  integer  programming jika  tidak  semua variabel  keputusannya integer ,  sedangkan  dikatakan pure  integer  programming jika  semua  variabel  keputusannya  bertipe  integer,  dan  dikatakan  0  –  1 integer  programming  jika  solusi  yang  diharapkan  adalah  hanya  bertipe  0 atau 1.
Beberapa  contoh  masalah  dari  masing-masing  tipe  0  –  1  integer programming adalah sebagai berikut:

## Contoh pure integer programming
Pemilik  took  merencanakan  membeli  mesin  pencetak  dan  mesin  bubut. Pemilik  memprediksi  setiap  mesin  pencetak  akan  menaikkan  keuntungan sebesar $100/hari dan mesin bubut akan menaikkan keuntungan $150/hari. Luas tempat dan harga masing-masing sebagai berikut:
Mesin Luas tempat (ft)  Harga beli ($) Pencetak 15 8000 Bubut 30 4000
Anggaran pembelian mesin adalah $40.000, sedangkan tempat tersedia 200 feet  persegi.  Pemilik  ingin  mengetahui  berapa  banyak  mesin  yang  dapat dibeli  supaya  keuntungan  maksimum.  Dalam  hal  ini  tidak  diperbolehkan menghasilkan solusi yang pecahan.
Formulasi masalah untuk kasus tersebut adalah: Maksimumkan 1 2 100 150 Z x x  
Siti Maslikhah , Metode Pemecahan Masalah ...
| 213
Dengan kendala 1 2
15 30 200 x x  
1 2 8000 4000 40000 x x   1 2 , 0 x x  dan integer

## Contoh 0 – 1 integer programming
Bapeda  sebuah  kota  merencanakan  untuk  membangun  fasilitas  rekreasi yaitu  kolam  renang,  lapangan  tenis,  lapangan  atletik  dan  gelanggang  olah raga.  Pengguna,  biaya  dan  lahan  yang  diperlukan  disajikan  pada  tabel berikut:
Fasilitas Rekreasi Banyaknya pengguna (orang/hari) Biaya ($) Luas lahan (are) Kolam renang 300 35.000 4 Lapangan tenis 90 10.000 2 Lapangan atletik 400 25.000 7 Gelanggang Olah raga 150 90.000 3
Anggaran yang disediakan $120.000 dan luas lahan 12 are. Karena ada pada lahan  yang  sama,  lahan  kolam  renang  atau  lapangan  tenis  hanya  akan didirikan salah satu saja. Bapeda ingin mengetahui fasilitas mana saja yang harus didirikan agar pengguna menjadi maksimum.
Formulasi masalah untuk kasus tersebut adalah:
Misalkan 1 x : Kolam renang
2 x : Lapangan tenis
3 x : Lapangan atletik
4 x : Gelanggang olah raga
Maksimumkan 1 2 3 4 300 90 400 150 Z x x x x     Dengan kendala 1 2 3 4 35.000 10.000 25.000 90.000 120.000 x x x x     1 2 3 4 4 2 7 3 12 x x x x     1 2 1 x x   1 2 3 4 , , , 0 x x x x  atau 1

## Contoh mixed linier programming
Seorang  pengusaha  memiliki  kelebihan  uang  $250.000  dan  akan diinvestasikan  pada  3  alternatif,  yaitu:  kondominium,  tanah  dan  obligasi. Dia ingin menginvestasikan uangnya dengan tujuan pengembalian terbesar diperoleh pada akhir tahun.
Data jenis investasi:
Jenis investasi Harga Ketersediaan Keuntungan per tahun Kondominium $50.000/unit 4 unit $9.000 Tanah $12.000/are 15 are $1500 Obligasi $8.000/obligasi  20 obligasi $1000 Formulasi masalah tersebut adalah: Maksimumkan 1 2 3 9000 1500 1000 Z x x x   
Dengan kendala 1 2 3 50.000 12.000 8000 250.000 x x x    1 4 x  2 15 x  3 20 x  2 0 x  1 3 , 0 x x  dan integer
Untuk mendapatkan solusi yang integer dari masalah program linier seperti contoh  tersebut  di  atas  cukup  digunakan  metode  simpleks  yang  biasa kemudian  membulatkan  solusi  pecah  optimum  yang  didapatkan.  Bukan suatu pekerjaan yang mudah untuk membulatkan solusi pecah agar menjadi bulat dan tetap memenuhi semua kendala dan tidak menyimpang jauh dari solusi bulat yang tepat.

## C. Solusi bulat/integer
Ada  beberapa  cara  yang  dapat  digunakan untuk  mendapatkan  solusi bulat  optimum  antara  lain  pembulatan,  pendekatan  grafik,  pendekatan Gomory ( Cutting Plane Algorithm ) dan metode Branch and Bound.
Siti Maslikhah , Metode Pemecahan Masalah ...
| 215

## 1. Metode pembulatan
Metode  pembulatan  merupakan  suatu  cara  yang  termudah, praktis  dan  efisien  dalam  menyelesaikan  masalah  integer programming.  Cara  yang  digunakan  yaitu  dengan  membulatkan  nilai variabel  keputusan  yang  didapatkan  melalui  metode  simpleks  biasa. Metode  ini  praktis  dalam  hal  waktu,  biaya  dan  tenaga  untuk memperoleh  suatu  solusi.  Contoh  banyaknya  pakaian  yang  harus diproduksi  adalah  sebanyak  5734,34  maka  dengan  menggunakan metode  pendekatan  menjadi  5734  potong  pakaian.  Dalam  beberapa kasus metode pembulatan kurang  tepat untuk digunakan karena ada kemungkinan solusi pembulatan yang diperoleh lebih jelek dari pada solusi  bulat  sesungguhnya,  atau  ada  kemungkinan  juga  solusi pembulatan  yang  didapatkan  tidak  layak.  Hal  ini  membawa konsekuensi  besar  jika  produk-produk  yang  dibulatkan  seperti pesawat  terbang  komersial,  kapal  perang  atau  yang  lainnya  yang mempunyai nilai jual yang tinggi apabila dibulatkan ke bilangan bulat terdekat.
Masalah-masalah  yang  dapat  muncul  dari  metode  pembulatan  akan tampak dalam beberapa masalah program linier berikut:
a. Maksimalkan 1 2 3 2 Z x x   Dengan kendala 1 2 5 10 x x   1 2 2 8 x x   2 2 x  1 0 x 
Pada  masalah  tersebut  jika  diselesaikan  menggunakan  metode simpleks maka akan didapatkan solusi 1 0.667 x  , 2 6.667 x  dan
15.333 Z  .  Jika  menggunakan  pembulatan  nilai  terdekat  untuk mendapatkan solusi integer maka  akan didapatkan 1 1 x  , 2 7 x  dan 17
Z  ,  solusi  tersebut bukan  solusi  yang  layak karena tidak memenuhi salah satu kendala. Solusi integer yang sebenarnya adalah 1 1 x  , 2 6 x  dan 15 Z  .
b. Maksimumkan
1 2 4 7 Z x x   Dengan kendala 1 2 7 x x  
216  | Jurnal at-Taqaddum, Volume 7, Nomor 2, November 2015
1 2 5 9 45 x x  
1 3 x  2 3 x 
Pada  masalah  tersebut  jika  diselesaikan  menggunakan  metode simpleks  maka  akan  didapatkan  solusi 1 3 x  , 2 3.333 x  dan
35.333 Z  .  Jika  menggunakan  pembulatan  nilai  terdekat  untuk mendapatkan solusi integer maka akan didapatkan 1 3 x  , 2 3 x 
dan 33 Z  . Solusi integer yang sebenarnya adalah 1 0 x  , 2 5 x 
dan
35
Z  .  Tampak  nilai  optimal  sebenarnya  lebih  besar dibandingkan dengan pendekatan pembulatan.
Berdasarkan  contoh-contoh  di  atas  dengan  metode  pembulatan untuk  mendapatkan  solusi  integer  memungkinkan  mendapatkan solusi  yang  tidak  layak,  atau  nilai  optimal  solusi  sebenarnya  lebih besar daripada solusi optimal.
2. Metode Cutting Planes
Metode Cutting  Planes merupakan  salah  satu  metode  yang digunakan  untuk  menyelesaikan  masalah  program  linier  untuk variabelnya harus bulat, baik bulat murni maupun campuran dengan penambahan  batasan  baru  yang  disebut  dengan  gomory.  Kendala gomory  diberikan  jika  variabel  keputusan  belum  bulat  (bernilai pecahan). Batasan-batasan tersebut secara efektif akan menyingkirkan beberapa ruang penyelesaian yang tidak berisi titik bilangan bulat yang layak, tetapi tidak pernah menyingkirkan satupun titik bilangan bulat yang layak.
Langkah-langkah penyelesaian metode Cutting Planes :
a. Selesaikan  masalah  integer  programming  dengan  menggunakan metode simpleks.
b. Periksa solusi optimum yang diperoleh dari langkah 1, jika variabel keputusan  solusi  optimum    sudah  bernilai  bulat  (integer)  maka proses selesai. Jika variabel keputusan pada solusi optimum masih bernilai pecahan maka proses berlanjut ke tahap berikutnya.
c. Buat batasan/kendala Gomory dan selesaikan dengan metode dual simpleks.
d. Kembali ke langkah b.
Siti Maslikhah , Metode Pemecahan Masalah ...
| 217

## Tabel solusi optimal Program linier
B X1  … Xm  S1 …  Sn Nilai Kanan/ Solusi X1 1 … 0 11 a …  Cn 1 b … 0 … … … …  … … Xm  0 … 1 1 m a … mn a m b Z 0 … 0 1 c … n c 0 b
Dengan i x adalah variabel basis, 1, 2,3,..., i m  j s adalah variabel non basis, 1, 2,3,..., j n 
Perhatikan  persamaan  ke  - i di  mana  variabel i x diasumsikan bernilai non integer.
i i ij j x b a s    ,  dengan b non  integer  (baris  sumber).
Kemudian  pisahkan i b dan ij a menjadi  bagian  yang  bulat  dan pecahan non negatif seperti berikut: ' i i i b b f   dan, ' ij ij i a a f   dengan 0 1 i f   . Misalnya: i b ' i b i f 3 2
1 1 2 7 8 0 7 8 7 3 2 1 3 7
3 3  2 3 1  1  0 2 5  1  3 5
Tambahan  kendala  Gomory  dalam  bentuk: g ij j i s f s f    
dengan g s adalah  variabel  slack  Gomory  ke  g.  Pada  umumnya,
Jurnal at-Taqaddum, Volume 7, Nomor 2, November 2015
persamaan kendala yang berhubungan dengan solusi pecah dipilih untuk  menghasilkan  suatu  kendala  Gomory.  Namun,  sebagai aturan  main  biasanya  dipilih  persamaan  yang  memiliki i f maksimum.
Tabel baru setelah penambahan kendala Gomory
B 1 x … m x 1 s … n s g s Nilai Kanan/ Solusi
1 x 1 …  0 11 a … in a 0 1 b …  0 …  …  … …  … … … m x 0 …  1 1 m a … mn a 0 m b
g s 0 …  0 1 i f  … in f  1 i f 
Z 0 …  0 1 c … n c 0 0 b
Penyelesaian  optimal  masalah  primal  tersebut  menggunakan metode dual simpleks karena didapatkan solusi optimal yang tidak layak. Pembentukan kendala gomory dihentikan jika solusi integer sudah diperoleh, namun jika solusi integer belum diperoleh maka kendala  gomory  dibuat  lagi.  Jika  di  setiap  iterasi  tidak  ditemukan solusi integer maka tidak ditemukan solusi integer yang layak.
Contoh: Maksimumkan
1 2 5 8 Z x x   Dengan kendala 1 2 6 x x   1 2 5 9 45 x x   1 2 dan x x non negative integer
Solusi dengan primal simpleks: Iterasi ke 0 B 1 x 2 x 1 s 2 s NK 1 s 1 1 1
0 6
Siti Maslikhah , Metode Pemecahan Masalah ...
| 219 2 s 5 9
0 1 45 Z 5  8  0 0 0 Iterasi ke 1 B 1 x 2 x 1 s 2 s
NK
1 s 4 9
0 1 1 9 
1
2 x 5 9 1 0 1 9 5
Z 5 9  0 0 8
9 40 Iterasi ke 2 B 1 x 2 x 1 s 2 s
NK
1 x 1 0 9 4
1 4  9
4
2 x 0 1 5 4  1 4 15
4
Z 0 0 5 4
3 4 165 4
Solusi  yang  didapatkan  adalah 1 x = 9 4 , 2 x = 15 4 dan  Z  = 165 4 .
Nilai 1 x dan 2 x bukanlah  solusi  yang  integer.  Karena  yang diinginkan  adalah  solusi 1 x dan 2 x merupakan  bilangan  integer maka  dibuatlah  kendala  gomory.  Nilai i f terbesar  pada  nilai 2 x sehingga dari persamaan kedua didapatkan:
2 1 2 5 1 15 4 4 4 x s s    atau 2 1 2 3 1 3 2 3 4 4 4 x s s  
         sehingga kendala gomory yang didapatkan adalah 1 2 3 1 3 4 4 4 g s s s     .
Tabel baru setelah penambahan kendala gomory adalah sebagai berikut:
Jurnal at-Taqaddum, Volume 7, Nomor 2, November 2015
Iterasi ke-3 B 1 x 2 x 1 s 2 s g s NK
1 x 1 0 9 4 1 4  0 9 4
2 x 0 1 5 4 
1 4
0 15 4 g s 0 0 3 4  1 4  1 3 4  Z 0 0 5
4 3 4 0 165 4
Dengan  penyelesaian  menggunakan  metode  dual  simpleks didapatkan hasil seperti berikut:
Iterasi ke-4
B 1 x 2 x 1 s 2 s g s NK 1 x 1 0 0 1  3
0
2 x 0 1 0 2 3 5 3  5 g s 0 0 1 1 3 4 3  1 Z 0
0 0 1
3 5 3 40
Berdasarkan tabel pada iterasi ke-4 didapatkan 1 x = 0, 2 x = 5 dan
Z  =  40.  Karena  solusi 1 x dan 2 x yang  didapatkan  sudah merupakan solusi yang integer maka iterasi selesai.
3. Metode Branch and Bound
Metode Branch  and  Bound (cabang  dan  batas)  adalah  salah  satu metode  yang  sering  digunakan  untuk  menghasilkan  penyelesaian optimal program linier yang menghasilkan variable-variable keputusan bilangan  bulat.  Sesuai  dengan  namanya,  metode  ini  membatasi penyelesaian  optimum  yang  akan  menghasilkan  bilangan  pecahan dengan  cara  membuat  cabang  atas  dan  bawah  bagi  masing-masing
Siti Maslikhah , Metode Pemecahan Masalah ...
| 221
variable keputusan yang bernilai pecahan agar bernilai bulat sehingga setiap pembatasan akan menghasilkan cabang baru.
Langkah-langkah dalam metode branch and bound adalah:
1. Menyelesaikan masalah program linier dengan cara simpleks biasa
2. Meneliti  solusi  optimumnya.  Jika  variabel  basis  yang  diharapkan bulat  adalah  bulat,  maka  artinya  solusi  optimum  bulat  sudah didapatkan/dicapai.
3. Nilai  solusi  pecah  yang  layak  dicabangkan  ke  dalam  sub-sub masalah,  tujuannya  adalah  untuk  menghilangkan  solusi  kontinu yang tidak memenuhi solusi bulat pada masalah itu.
4. Untuk  setiap  sub  masalah,  nilai  solusi  optimum  kontinyu  fungsi tujuan  ditetapkan  sebagai  batas  atas.  Solusi  bulat  terbaik  menjadi batas  bawah  ( pada  awalnya ,  ini  adalah  solusi  kontinyu  yang dibulatkan  ke  bawah).  Sub-sub  masalah  yang  memiliki  batas  atas kurang  dari  batas  bawah  yang  ada,  tidak  diikut  sertakan  pada analisa selanjutnya. Suatu solusi bulat layak adalah sama baik atau lebih baik dari batas atas untuk setiap sub masalah yang dicari. Jika solusi yang demikian terjadi, suatu sub masalah dengan batas atas terbaik dipilih untuk dicabangkan. Kembali ke langkah 3 . Keuntungan dari cara pencabangan dan pembatasan  adalah cara  yang  efisien  untuk  mendapatkan  seluruh  jawaban  layak (fisibel), sedangkan kerugian cara ini adalah akan mencari seluruh jawaban program linier pada setiap titik. Pada persoalan yang besar akan memerlukan waktu yang cukup lama.
Contoh: Maksimumkan
1 2 5 8 Z x x   Dengan kendala 1 2 6 x x   1 2 5 9 45 x x   1 2 dan x x non negatif integer
Solusi  yang  didapatkan  adalah  dengan  metode  simpleks  adalah
1 9 2.25 4 x   , 2 15 3.75 4 x   dan  Z  = 165 41.25
4  .  Solusi
integer  dengan  metode Branch  and Bound didapatkan  dengan mencabangkan  masalah  tersebut  menjadi  dua  bagian  dengan menambahkan pembatas untuk variabel yang memiliki nilai bagian
Jurnal at-Taqaddum, Volume 7, Nomor 2, November 2015
pecah  yang  terbesar  kemudian  setiap  percabangan  masalah diselesaikan  dengan  metode  simpleks  untuk  dicari  nilai optimumnya.  Variabel  terpilih  untuk  dilakukan  percabangan adalah 2 x sehingga  didapatkan  pembatas  baru  yaitu 2 3 x  dan
2 4 x  . Masalah yang didapatkan adalah:
Bagian A. Maksimumkan 1 2 5 8 Z x x   Dengan kendala 1 2 6 x x   1 2 5 9 45 x x   2 3 x  1 2 , 0 x x  Bagian B.  Maksimumkan 1 2 5 8 Z x x   Dengan kendala 1 2 6 x x   1 2 5 9 45 x x   2 4 x  1 2 , 0 x x  Solusi untuk masalah bagian A adalah 39 Z  , 1 3 x  , 2 3 x  Solusi untuk masalah bagian B adalah 41 Z  , 1 1.8 x  , 2 4 x 
Pada  masalah  bagian  A  sudah  didapatkan  solusi  yang  semuanya bulat,  akan  tetapi  masalah  bagian  B  solusinya  masih  ada  yang pecahan,  sehinga  masih  memungkinkan  untuk  dicari  solusi  bulat lainnya  yang  nilainya  mungkin  lebih  besar  dari  solusi  masalah  A. Dengan demikian masalah B dapat dicabangkan lagi menjadi dua bagian yaitu B1 dan B2 dengan menambahkan kendala 1 1 x  dan
2 2 x  .
Bagian B1. Maksimumkan 1 2 5 8 Z x x  
Dengan kendala 1 2 6 x x   1 2 5 9 45 x x   2 4 x  1 1 x  1 2 , 0 x x 
Siti Maslikhah , Metode Pemecahan Masalah ...
| 223

## Bagian B2. Maksimumkan
1 2 5 8 Z x x  
Dengan kendala 1 2 6 x x   1 2
5 9 45 x x   2 4 x  2 2 x  1 2 , 0 x x 
Solusi dari masalah bagian B1 adalah Z = 40.55, 1 1 x  , 2 4.44 x 
Untuk bagian B2 tidak ada solusi yang fisibel Berdasarkan  solusi  tersebut  maka  masalah  B1  dapat  dicabangkan lagi  menjadi  dua  masalah  yaitu  B1a  dan  B1b  dengan menambahkan kendala 2 4 x  dan 2 5 x  . Dengan penambahan kendala 2 4 x  pada  bagian  B1a  tersebut  didapatkan  Z  =  37,
1 1 x  dan 2 4 x  . Penambahan kendala 2 5 x  pada bagian B1b mengakibatkan nilai Z = 40, 1 0 x  dan 2 5 x  . Pencarian solusi integer sudah selesai dengan didapatkannya solusi pada bagian B1a dan  B1b  kedua-duanya  integer.  Dari  semua  pencarian  solusi integer,  yang  menghasilkan  solusi  integer  maksimum  adalah  pada bagian B1b dengan hasil Z = 40, 1 0 x  dan 2 5 x  .   Ringkasan semua hasil pencarian solusi dapat digambarkan dalam diagram 1 berikut:
224  | Jurnal at-Taqaddum, Volume 7, Nomor 2, November 2015

## Diagram 1
Untuk kasus minimum dapat digambarkan dalam diagram 2 berikut:
Diagram 2 Z = 63 1 2 4.5 3.5 x x   Z = 91 1 2 4 7 x x   1 4 x  Z = 68
1 2 5 3.66 x x  
Tidak fisibel Z = 71
1 2 5 4 x x   1 5 x  2 3 x  2 4 x  Z = 37 1 1 x  2 4 x  2 4 x  B 1 B1a
Z = 40
1 0 x  2 5 x  Z = 40.55 1 1 x  2 4.44 x  Tidak fisibel 1 1 x  2 4 x  Z = 41.25 1 2.25 x  2 3.75 x  2 3 x  Z = 30
1 3 x  2 3
x  Z = 41 1 1.8 x  2 4 x  1 2 x  2 2 x  A B B 2 B1 b
Siti Maslikhah , Metode Pemecahan Masalah ...
| 225
Untuk kasus minimasi di atas solusi integer minimasinya adalah Z = 71 dengan 1 5 x  dan 2 4 x 

## D. Kesimpulan:
Penggunaan  metode Branch  and  Bound sedikit  sekali  kesalahannya namun memerlukan perhitungan yang lebih banyak. Sedangkan metode Cutting  Plane lebih  cepat  mencapai  optimal  karena  dengan  penambahan kendala  gomory  efektif  menghilangkan  solusi  yang  kontinu.  Metode Gomory lebih baik digunakan jika variabelnya sedikit.

## DAFTAR PUSTAKA
Aminuddin, 2005, Prinsip-prinsip Riset Operasi, Erlangga, Jakarta Hamdy A. Taha. 1996. Riset Operasi. Binarupa Aksara, Jakarta Hillier,  F.S.  dan  Lieberman,  G.J.,  (1995),  Introduction  to  Operation Research, Holden Day, Inc. USA.
kiayati.staff.gunadarma.ac.id/Downloads/files/.../ Program - Integer .pdf Yuhendra  Ajeng  dkk.  2011.  Integer  Programming      Dengan  Pendekatan
Metode Branch  And  Bound Dan  Metode Cutting  Plane Untuk Optimasi Kombinasi Produk. Jurnal Matematika FMIPA Universitas Brawijaya.