Kompleksitas puzzle poligon tersembunyi di kotak persegi?

10

Hiroimono adalah puzzle lengkap populer . Saya tertarik pada kompleksitas komputasi dari teka-teki terkait.NP

Masalahnya adalah:

Input : Diberikan satu set titik pada pada x kotak persegi dan integernnk

Pertanyaan : Apakah ada poligon bujursangkar (sisi-sisinya sejajar dengan atau sumbu) sedemikian sehingga jumlah titik pada sudut poligon setidaknya ?xyk

Setiap sudut poligon harus berada di salah satu titik input (sehingga tikungan hanya diperbolehkan pada titik input).

Apa kompleksitas masalah ini? Apa kompleksitasnya jika solusinya terbatas pada poligon bujursangkar cembung?

EDIT 13 April: Formulasi alternatif: Temukan poligon bujursangkar dengan sudut maksimum pada titik yang diberikan.

Mohammad Al-Turkistany
sumber
4
Bukankah seharusnya poligon bujursangkar cembung dapat dipecahkan dalam waktu polinomial oleh pemrograman dinamis?
Peter Shor
4
Ya, seharusnya begitu.
Jeff
@ Jeff, Bagaimana dengan kasus umum non-cembung? Apa kecenderungan Anda?
Mohammad Al-Turkistany
2
untuk banyak masalah ini, taruhan terbaik Anda adalah mulai dengan sesuatu seperti planar 3SAT atau bahkan planar NAE-SAT. Ini akan menjadi sangat jelek, tetapi planarinya memberi Anda struktur yang mungkin Anda butuhkan.
Suresh Venkat
5
@ Suresh Hanya sebuah catatan: googling sekitar saya menemukan bahwa versi planar dari NAE3SAT ada di P ( portal.acm.org/... ).
Marzio De Biasi

Jawaban:

6

Saya memikirkan pengurangan aneh ini (kemungkinan salah besar :-). Ide: reduksi dari jalur Hamilton pada grafik kisi dengan derajat ; setiap node dari grafik planar dapat digeser sedemikian rupa sehingga setiap "baris" ( nilai ) dan setiap "kolom" ( nilai ) mengandung paling banyak satu simpul. Grafik dapat diskalakan dan setiap node dapat diganti dengan gadget persegi dengan banyak titik; tautan horizontal antara gadget (tepi grafik asli) dibuat menggunakan pasangan titik pada baris berbeda, tautan vertikal menggunakan pasangan titik pada kolom berbeda. Node traversals dipaksa menggunakan "banyak titik" dari gadget kotak.3yx

Gadget simpul direpresentasikan dalam gambar berikut:

masukkan deskripsi gambar di sini

Ini memiliki 3 "titik antarmuka" (pada kolom / baris yang berbeda), dan perbatasan bagian dalam titikPolyline yang melintasi gadget dari satu titik antarmuka ke titik yang lain dapat memiliki sejumlah sudut yang sebanding dengan (tiga lintasan gadget ditampilkan pada gambar), khususnya jumlah titik sudut antara dan (jumlah total poin gadget adalah ). Gadget dapat diputar untuk mendapatkan kombinasi titik antarmuka lainnya ( , , ).[W,N,E]C×CC2C2C+2C×C4+6[N,E,S][E,S,W][S,W,N]

Sekarang kita dapat menggeser grafik grid planar sedemikian rupa sehingga untuk setiap pasangan node , dan . Lihat gambar kisi sederhana berikut ini . Selanjutnya, kita dapat mengatur skala grafik dan mengganti setiap node dengan gadget di atas. Pada tahap ini setiap gadget "terisolasi": polyline tidak dapat berpindah dari satu gadget ke gadget lainnya.x 1x 2 y 1 y 2 4 × 3(x1,y1),(x2,y2)x1x2y1y24×3

masukkan deskripsi gambar di sini

Sekarang kita dapat mensimulasikan tepi grafik asli menggunakan pasangan titik di bagian bawah atau di sebelah kanan, masing-masing pasangan di baris terpisah atau di kolom terpisah; lihat gambar berikut untuk dua node yang berdekatan yang terhubung secara horizontal (di baris bawah baru dua titik ditambahkan satu pada kolom yang sama dari titik antarmuka dari gadget pertama, yang lain pada kolom yang sama dari titik antarmuka dari gadget kedua).WEW

masukkan deskripsi gambar di sini

Pada setiap gadget dapat ada maks titik sudut (1 dihasilkan oleh titik antarmuka masuk, 1 dihasilkan oleh titik antarmuka keluar, 2 dihasilkan oleh ekstra turn pada lintasan lurus dan 2C pada zig-zag bagian dalam), poin digunakan untuk tepi dapat menghasilkan maksimal poin sudut.2 e4+2C2e

Misalkan grafik asli memiliki simpul dan tepi , jika kita memilih , dan sebagai jumlah titik sudut yang harus digunakan, maka kita memaksakan "tersembunyi" poligon teka-teki untuk lintasi setiap gadget; tetapi setiap gadget dapat dimasukkan / keluar tepat sekali (melalui sepasang sel antarmuka); jadi masalahnya ada solusi jika dan hanya jika grafik grid asli memiliki jalur Hamilton.e C > ( 4 n + 2 e ) k = 2 C nneC>(4n+2e)k=2Cn

Marzio De Biasi
sumber
5

Bukan jawaban, hanya beberapa referensi. Pertama, saya menulis makalah (dulu!) Pada kasus di mana setiap titik dalam himpunan harus merupakan sudut poligon. Dalam hal ini, tidak mengherankan bahwa ada (paling banyak) satu poligon, dan mudah ditemukan: "Keunikan Orthogonal Connect-the-Dots," dalam Computational Morphology , Ed. GT Toussaint, Elsevier, Belanda Utara, 1988, 97-104.V

Kedua, ada pembaruan yang indah untuk karya ini oleh Maarten Löffler dan Elena Mumford, dalam sebuah makalah, " Grafik Rectilinear Terkoneksi pada Point Sets ," Journal of Computational Geometry , 2 (1), 1-15, 2011. Dari Abstrak mereka:

Kami mempelajari pertanyaan apakah ada orientasi sedemikian rupa sehingga adalah himpunan simpul dari grafik bujursangkar yang terhubung dalam orientasi itu. ... Kami membuktikan bahwa paling banyak satu orientasi seperti itu dapat dimungkinkan, hingga rotasi sepele 90 derajat di sekitar beberapa sumbu.V

Joseph O'Rourke
sumber