Seperti yang saya mengerti, masalah penugasan dalam P karena algoritma Hungaria dapat menyelesaikannya dalam waktu polinomial - O (n 3 ). Saya juga mengerti bahwa masalah penugasan adalah masalah pemrograman linear integer , tetapi halaman Wikipedia menyatakan bahwa ini adalah NP-Hard. Bagi saya, ini menyiratkan masalah penugasan dalam NP-Hard.
Tapi tentunya masalah penugasan tidak bisa di P dan NP-Hard, kalau tidak P akan sama dengan NP? Apakah halaman Wikipedia hanya berarti bahwa algoritma umum untuk menyelesaikan semua masalah ILP adalah NP-Hard? Beberapa sumber lain menyatakan bahwa ILP adalah NP-Hard jadi ini benar-benar membingungkan pemahaman saya tentang kelas kompleksitas secara umum.
Jawaban:
Jika masalah adalah NP-Hard itu berarti ada kelas contoh masalah yang NP-Hard. Sangat memungkinkan bagi kelas instance spesifik lainnya untuk dipecahkan dalam waktu polinomial.
Pertimbangkan misalnya masalah menemukan 3-warna grafik . Ini adalah masalah NP-Hard yang terkenal. Sekarang bayangkan contohnya dibatasi untuk grafik yang, misalnya, pohon. Jelas Anda dapat dengan mudah menemukan 3 warna pohon dalam waktu polinomial (memang Anda juga dapat menemukan 2 warna).
Pertimbangkan masalah keputusan sesaat. Metode untuk membuktikan kekerasan dari masalah keputusan adalah merancang pengurangan polinomial (Karp) dari masalah lain yang dikenal sebagai NP-Hard. Dalam pengurangan ini Anda menunjukkan bahwa ada fungsi yang memetakan setiap contoh masalah ke sebuah contoh dari masalah sehingga: adalah contoh ya untuk adalah contoh ya untuk . Ini menyiratkan bahwa penyelesaian harus "setidaknya sama sulitnya" dengan penyelesaian itu sendiri.Q f q Q P q QP Q f q Q P q P f ( q ) qQ⟺f(q) P f(q) q
Perhatikan bagaimana hal itu tidak diperlukan untuk citra untuk menjadi sama dengan himpunan contoh dari . Oleh karena itu sangat mungkin untuk masalah terbatas pada beberapa bagian contoh untuk tidak sulit.P Pf P P
Untuk kembali ke pertanyaan awal Anda:
sumber
Tidak, kasing khusus bisa lebih mudah.
Pertimbangkan IP ini, misalnya, diberi untuk :ai≥0 i∈[1..n]
st dan untuk .∑i=1nxi≥1
xi∈N i∈[1..n]
Ia menemukan minimum di antara (untuk yang mana, pasti, dalam solusi optimal). Menemukan minium nomor jelas merupakan masalah polinomial.a1,…,an xi=1 n
sumber
Anda dapat memodelkan masalah yang dapat diselesaikan secara polinomi sebagai IP. Ini tidak berarti masalahnya adalah NP-hard. Ini berarti bahwa tidak ada algoritma polinomial yang diketahui untuk menyelesaikan model IP masalah Anda (kecuali P = NP).
Jadi seperti yang Anda sarankan, masalah penugasan dalam P tetapi model IP Anda itu NP-hard.
sumber
Tidak, ada jenis khusus dari program integer, jika matriks kendala adalah TUM (matriks benar-benar unimodular), maka dapat dilonggarkan ke dalam program linier, yang dapat diselesaikan dalam waktu polinomial.
sumber
Masalah penugasan bukan ILP, tetapi masalah LP dan karenanya bukan NP-hard.
sumber