Kami memiliki kisi. Kami memiliki koleksi persegi panjang di grid ini, setiap persegi panjang dapat direpresentasikan sebagai -by- biner matriks . Kami ingin menutupi kotak dengan persegi panjang itu.N 1 N 2 R
Apakah versi keputusan set masalah cover ini NP-complete?
- Input: Koleksi dari persegi panjang di grid (ukuran input: ), danN 1 N 2 L K ∈ N +
- Output: Subset dengan dan berisi untuk setiap sel setidaknya satu persegi panjang yang menutupinya.| S | ≤ K S
Saya menemukan bahwa kasus 1D ( ) dapat diselesaikan dalam waktu polinomial dengan pemrograman dinamis: setiap tutup optimal akan menjadi penyatuan
- penutup optimal untuk beberapa subproblem yang mencakup sel pertama .
- sebuah persegi panjang 1D, yaitu suatu interval, yang meliputi sel tersisa .
Namun saya tidak berpikir DP dapat bekerja untuk masalah 2D: untuk masalah 1D, Anda memiliki subproblem untuk dipecahkan, tetapi untuk 2D Anda memiliki \ binom {N_1 + N_2} {N_2} subproblem (jumlah kisi Utara-Timur) jalur di grid).( N 1 + N 2
Saya pikir masalahnya mungkin NP, tapi saya tidak yakin (meskipun tampaknya lebih sulit daripada P), dan saya belum berhasil menemukan pengurangan polinomial dari masalah NP-lengkap (3-SAT, Vertex Cover, ...)
Setiap bantuan atau petunjuk dipersilahkan.
|=
=|
Jawaban:
Berkat petunjuk j_random_hacker, saya telah menemukan solusi untuk mengurangi Vertex Cover ke Masalah Grid:
Kami membuat -dengan | V | kisi 3-by-3 blok, yaitu 3 | E | -dengan 3 | V | kisi, dengan simpul disusun sebagai kolom { v 1 , ... , v N 1 } dan tepi diperintahkan sebagai baris { e 1 , ... , e N 2 } . Kami akan membangun persegi panjang di kotak ini (gambar di bawah ini akan banyak membantu memahami berbagai persegi panjang yang digunakan)| E| | V| 3 | E| 3 | V| { v1, ... , vN1} { e1, ... , eN2}
Sekarang, untuk setiap tepi kita membangun persegi panjang tipe 4, di antara endblock, kita memiliki dua persegi panjang untuk baris kedua:
Jadi sekarang, untuk menutupi grid:
Untuk menutupi, untuk tepi tertentu, bagian antara ujung ujung blok belum tertutup (baris kedua dan ketiga dari deretan blok), kita dapat menggunakan:
Perhatikan bahwa bagaimanapun juga, kita membutuhkan setidaknya dua persegi panjang tipe 4.
sumber