Pemrograman integer
Permasalahan pemrograman integer adalah sebuah optimalisasi matematis atau program kelayakan yang dimana beberapa atau seluruh variabel terikat menjadi integer. Dalam banyak konteks, istilah ini merujuk pada "pemrograman linier integer" (PLI), dimana fungsi objektif dan ikatan (selain ikatan integer) adalah linear
Pemrograman integer adalah NP-lengkap. Secara khusus, kasus khusus dari pemrograman linear integer 0-1, dimana variabel yang tak diketahui adalah biner, dan hanya pembatasan yang harus dipenuhi adalah salah satu dari 21 masalah NP-lengkap Karp. [1]
Jika beberapa variabel keputusan tidak diskrit, masalah tersebut dikenal sebagai masalah "pemrograman bilangan bulat campuran"[2]
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):[3]
dan bentuk standar PLI adalah
Dimana 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
Plot disamping menunjukkan permasalahan 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. [4]
- ^ Karp, Richard M. (1972). "Reducibility among Combinatorial Problems" (PDF). Dalam R. E. Miller; J. W. Thatcher; J.D. Bohlinger. Complexity of Computer Computations. New York: Plenum. hlm. 85–103. doi:10.1007/978-1-4684-2001-2_9. ISBN 978-1-4684-2003-6.
- ^ "Mixed-Integer Linear Programming (MILP): Model Formulation" (PDF). Diakses tanggal 16 April 2018.
- ^ Papadimitriou, C. H.; Steiglitz, K. (1998). Combinatorial optimization: algorithms and complexity. Mineola, NY: Dover. ISBN 0486402584.
- ^ Erickson, J. (2015). "Integer Programming Reduction" (PDF). Diarsipkan dari versi asli (PDF) tanggal 18 May 2015.