Apakah teka-teki 'zero-one' puzzle NP-complete?

18

Saya tertarik pada sedikit varian ubin, teka-teki 'jigsaw': setiap tepi ubin (persegi) diberi label dengan simbol dari , dan dua ubin dapat ditempatkan berdekatan satu sama lain jika simbol di tepi berhadapan satu ubin adalah k dan simbol di tepi menghadap ubin lain adalah ˉ k , untuk beberapa k { 1 ... n } . Kemudian, diberikan satu set m 2 ubin, bisakah mereka ditempatkan ke dalam m × m{1...n,1¯...n¯}kk¯k{1n}m2m×mpersegi (memutar tetapi tidak membalik ubin) dengan semua tepi cocok dengan benar? (Ada juga varian pada masalah ini di mana empat 'framing' tepi disediakan dan potongan harus sesuai dengan benar ke dalam bingkai itu).1×m

Saya tahu masalah ini NP-lengkap untuk cukup besar , tetapi batas-batas yang saya lihat di n tampaknya cukup besar; Saya tertarik pada masalah untuk nilai-nilai kecil n dan khususnya untuk n = 1 , kasus 'nol-satu' (di mana setiap sisi diberi label 0 atau 1 dan tepi dengan 0 harus dicocokkan dengan tepi dengan 1nnnn=10101). Di sini ada (dengan rotasi simetri) hanya enam jenis ubin (ubin semua-nol, ubin semua-satu, ubin dengan tiga nol dan satu, ubin dengan tiga yang dan nol, dan dua ubin berbeda dengan dua nol) dan dua yang, '0011' dan '0101'), jadi contoh masalah hanyalah spesifikasi dan satu set lima angka T 0000 , T 0001 , T 0011 , T 0101 , T 0111 dan T 1111 (mewakili hitungan dari setiap jenis ubin) dengan T 0000 + T 0001 + T 0011 + TmT0000T0001T0011T0101T0111T1111 . Masalahnya jelas dalam NP (denganmdiberikan dalam unary) karena solusi dapat dipamerkan dan kemudian diperiksa dalam waktu polinomial (dalamm), tetapi dikenal sebagai NP-lengkap, atau ada beberapa algoritma pemrograman dinamis yang dapat diterapkan di sini? Bagaimana dengan kasus 'berbingkai' di mana spesifikasi masalah juga mencakup empat tepi kotak yang harus dicocokkan? (Jelas jika case yang dibingkai adalah NP-complete case yang dibingkai hampir pasti juga)T0000+T0001+T0011+T0101+T0111+T1111=m2mm

Steven Stadnicki
sumber
2
Itu tidak bisa NP-complete, karena hanya ada input yang memungkinkan, dan oleh teorema Mahaney Anda membutuhkan lebih dari itu untuk membuat NP-complete masalah (kecuali P = NP). Tetapi jika Anda menggunakan bingkai, halangan ini lenyap. Jadi mungkin NP-lengkap dengan bingkai. θ(m10)
Peter Shor
1
Langkah menengah adalah membuktikan bahwa masalah memutuskan apakah puzzle jigsaw 6-ubin yang sebagian terisi (yaitu beberapa bagian sudah ada di papan tulis dan tidak dapat dipindahkan) dapat diselesaikan dengan benar adalah lengkap-NP.
Vor

Jawaban:

3

Karena Anda menyebutkan bahwa Anda tertarik untuk menyelesaikan masalah ini untuk nilai-nilai , saya sarankan Anda mencoba menerapkan ini dalam SAT solver atau sebagai integer linear program (ILP). Salah satu akan dapat menyandikan kendala, tetapi dengan cara yang sedikit berbeda:n

  • Untuk SAT, ada pengkodean yang sangat bersih dari pilihan ubin mana yang masuk ke setiap kotak, dan pengkodean kendala yang sedikit kurang bersih mengenai jumlah masing-masing jenis ubin (menggunakan bit aritmatika).

  • Untuk ILP, ada pengkodean batasan yang sangat bersih mengenai jumlah masing-masing jenis ubin yang tersedia, dan pengkodean yang sedikit kurang bersih dari batasan di mana ubin dapat berdekatan satu sama lain (tetapi masih dapat diungkapkan, karena Anda dapat mengekspresikan formula boolean sembarang dalam ILP).

Saya berharap bahwa untuk kecil atau menengah , pendekatan ini mungkin bekerja secara efisien.n

DW
sumber
Saya setuju bahwa ini sepertinya cara yang masuk akal untuk menyelesaikan masalah, tetapi saya kurang tertarik untuk secara khusus memecahkan contoh masalah daripada saya dalam memahami kompleksitasnya. (Misalnya, jika dalam P maka hampir pasti ada semacam pendekatan pemrograman dinamis untuk itu yang akan dengan mudah mengalahkan SAT / pemrogram pemrograman linier abstrak pada masalah.)
Steven Stadnicki
@StevenStadnicki, OK, cukup adil. Namun, saya berjuang untuk mendamaikan ~ "Saya tertarik untuk memahami kompleksitasnya (asimptotik) (misalnya, apakah itu NP-lengkap)" ~ dengan ~ "Saya tertarik pada masalah untuk nilai kecil " ~ . n
DW
Maaf, mungkin ada beberapa kebingungan dalam spesifikasi masalah; Saya menggunakan untuk menunjukkan (pada dasarnya) jumlah bentuk tepi dan saya sangat tertarik pada kasus di mana hanya ada satu bentuk tepi yang cocok (pikirkan 'innie' atau 'outie'); Aku bertanya-tanya tentang kompleksitas yang masalah sebagai fungsi m , ukuran grid. nm
Steven Stadnicki
@StevenStadnicki, ahh, kesalahan saya! Maaf, saya tidak cukup membaca. Itu masuk akal - terima kasih.
DW
Jangan khawatir - saya seharusnya mempertimbangkannya di muka; ketika saya tiba di rumah saya akan mencoba dan mengedit pertanyaan untuk menggunakan parametrization yang lebih 'tradisional'.
Steven Stadnicki