Makalah 1983 yang terkenal oleh H. Lenstra Programmer Integer Dengan Jumlah Variabel Tetap menyatakan bahwa program integer dengan jumlah variabel tetap dapat dipecahkan dalam polinomial waktu dalam panjang data.
Saya menafsirkannya sebagai berikut.
- Pemrograman integer secara umum masih NP-lengkap tetapi jika ukuran masalah khas saya di tangan (katakanlah sekitar 10.000 variabel, sejumlah kendala sewenang-wenang) layak dalam prakteknya maka saya bisa membangun algoritma yang secara polinomial dalam jumlah kendala tetapi tidak dalam jumlah variabel dan batasan.
- Hasilnya juga berlaku untuk pemrograman biner karena saya dapat memaksa integer apa pun ke 0-1 dengan menambahkan batasan yang sesuai.
Apakah interpretasi saya benar?
Apakah hasil ini memiliki implikasi praktis? Yaitu, apakah ada implementasi yang tersedia atau digunakan dalam solver populer seperti CPLEX, Gurobi, atau Mosek?
Beberapa kutipan dari koran:
Panjang ini dapat, untuk tujuan kami, didefinisikan sebagai n · m · log (a + 2), di mana a menunjukkan maksimum dari nilai absolut dari koefisien A dan b. Memang, tidak ada algoritma polinomial seperti itu yang mungkin ada, karena masalah yang dimaksud adalah NP-complete
[...]
Dugaan [5], [10] bahwa untuk setiap nilai tetap dari n terdapat algoritma polinomial untuk solusi dari masalah pemrograman linear integer. Dalam makalah ini kami membuktikan dugaan ini dengan menunjukkan algoritma seperti itu. Tingkat polinomial di mana waktu berjalan dari algoritma kami dapat dibatasi adalah fungsi eksponensial dari n.