Pemrograman integer

Masalah pemrograman integer adalah sebuah optimalisasi matematis atau program kelayakan yang di mana beberapa atau seluruh variabel terikat menjadi integer. Dalam banyak konteks, istilah ini merujuk pada "pemrograman linier integer" (PLI), di mana fungsi objektif dan ikatan (selain ikatan integer) adalah linear

Pemrograman integer adalah NP-lengkap. Secara khusus, kasus khusus dari pemrograman linear integer 0-1, di mana variabel yang tak diketahui adalah biner, dan hanya pembatasan yang harus dipenuhi adalah salah satu dari 21 masalah NP-lengkap Karp.

Jika beberapa variabel keputusan tidak diskrit, masalah tersebut dikenal sebagai masalah "pemrograman bilangan bulat campuran"

 Bentuk Standar dan Kanon PLI 

Dalam pemrograman linear integer, bentuk kanon berbeda dari bentuk standart. Sebuah program linear integer dalam bentuk kanonisnya itu diekspresikan sehingga, (diingat bahwa ini adalah  vektor yang akan ditentukan):

dan bentuk standar PLI adalah

Di mana  adalah vektor dan  adalah matriks. Dalam program linear, PLI tidak dalam bentuk standarnya bisa dikonversi menjadi bentuk standar dengan menghilangkan pertidaksamaan, mengenalkan pada variabel slack () dan menggantikan variabel-variabel yang tidak dibatasi tanda dengan perbedaan dua variabel yang dibatasi tanda

 Contoh 
350px|thumb|IP polytope with LP relaxation
Plot disamping menunjukkan masalah yang ada.

Titik integer yang layak ditunjukkan dengan warna merah, garis putus-putus merah menunjukkan bagian cembung, yang bagian polihedron cembung terkecil yang memuat semua titik ini. Garis biru bersama dengan sumbu koordinat menentukan polihedron relaksasi LP, yang diberikan oleh pertidaksamaan tanpa kendala integralitas. Sasaran optimasi adalah untuk menggerakkan garis putus-putus hitam sejauh mungkin ke atas sambil tetap menentuh polihedron. Maka, solusi optimal dari masalah integer adalah titik   dan  yang keduanya memiliki nilai objektif 2, Optimisasi unik relaksasi adalah  dengan nilai objektif 2.8. Jika solusi relaksasi dibulatkan ke integer terdekat, maka solusi tersebut tidak layak untuk PLI.

 Bukti NP-hardness 
Berikut ini adalah pengurangan dari penutup vorteks minimum ke pemrograman integer yang akan berfungsi sebagai bukti kesulitan NP.

Jadikan  menjadi graf yang tak berarah. Definisikan program linear sebagai berikut:

Mengingat batasan tersebut membatasi  menjadi 0 atau 1, setiap solusi yang layak untuk program integer adalah bagian dari simpul. Batasan pertama menyiratkan bahwa setidaknya satu titik akhir dari setiap sisi disertakan dalam bagian ini. Oleh karena itu, slusi tersebut menggambarkan penutup simpul. Selain itu, mengingat beberapa penutup simpul C,  bisa menjadi bagian menjadi 1 untuk tiap  dan menjadi 0 untuk setiap . Sehingga memberi solusi yang layak untuk program integer. Dengan demikian, maka dapat disimpulkan bahwa jika kita meminimalkan jumlah , kita juga telah menemukan penutup titik sudut minimum.

 Referensi 

Kategori:Algoritme kombinatorial
Kategori:Permasalahan komputasi