Các câu đố ghép hình 'zero-one' có hoàn chỉnh NP không?


18

Tôi quan tâm đến một biến thể nhỏ của ốp lát, câu đố 'ghép hình': mỗi cạnh của ô (hình vuông) được gắn nhãn bằng một biểu tượng từ và hai ô có thể được đặt liền kề nhau nếu biểu tượng trên cạnh của một ô là và ký hiệu trên cạnh đối diện của ô kia là , đối với một số . Sau đó, được cung cấp một tập hợp các gạch , chúng có thể được đặt vào một hình vuông (xoay nhưng không lật các ô) với tất cả các cạnh khớp chính xác không? (Ngoài ra còn có một biến thể cho vấn đề này, trong đó bốn cạnh ' ' khung được cung cấp và các mảnh phải khớp chính xác vào khung đó).k ˉ k k { 1 ... n } m 2 m × m 1 × m{1n,1¯n¯}kk¯k{1n}m2m×m1×m

Tôi biết vấn đề này là NP-đầy đủ cho đủ lớn , nhưng giới hạn mà tôi đã thấy trên dường như khá lớn; Tôi quan tâm đến vấn đề đối với các giá trị nhỏ của và đặc biệt là , trường hợp 'zero-one' (trong đó mọi cạnh được gắn nhãn hoặc và các cạnh có phải được khớp với các cạnh có ). Ở đây có (với đối xứng quay) chỉ có sáu loại gạch (ngói toàn bộ, gạch tất cả, gạch có ba số không và một, gạch có ba và không, và hai gạch riêng biệt có hai số không và hai cái, '0011' và '0101'), vì vậy một trường hợp vấn đề chỉ là một đặc điểm kỹ thuật của mn n n = 1 0 1 0 1 mnnnn=10101mvà một bộ năm số T0000 , T0001 , T0011 , T0101 , T0111T1111 (đại diện cho số lượng của từng loại gạch) với T0000+T0001+T0011+T0101+T0111+T1111=m2 . Vấn đề rõ ràng là ở NP (với m được đưa ra đơn nhất) vì một giải pháp có thể được trình bày đơn giản và sau đó được kiểm tra trong đa thức (tính bằng m) thời gian, nhưng nó được biết là NP-đầy đủ, hoặc có một số thuật toán lập trình động có thể được áp dụng ở đây? Điều gì về trường hợp 'đóng khung' trong đó đặc tả vấn đề cũng bao gồm bốn cạnh của hình vuông sẽ được khớp? (Rõ ràng nếu trường hợp có khung là NP-hoàn thành thì trường hợp đóng khung gần như chắc chắn là tốt)


2
Không thể hoàn thành NP, vì chỉ có có thể, và theo định lý của Mahaney, bạn cần nhiều hơn thế để tạo ra một vấn đề NP-đầy đủ (trừ khi P = NP). Nhưng nếu bạn sử dụng một khung, vật cản này sẽ biến mất. Vì vậy, nó có thể là NP-hoàn chỉnh với một khung. θ(m10)
Peter Shor

1
Một bước trung gian sẽ là để chứng minh rằng vấn đề quyết định nếu một câu đố ghép hình 6 ô được lấp đầy một phần (tức là một số mảnh đã có trên bảng và không thể di chuyển) có thể được hoàn thành chính xác là NP-đầy đủ.
Vor

Câu trả lời:


3

Vì bạn đã đề cập rằng bạn quan tâm đến việc giải quyết vấn đề này cho các giá trị nhỏ của , tôi sẽ đề nghị bạn thử thực hiện điều này trong một bộ giải SAT hoặc như một chương trình tuyến tính số nguyên (ILP). Một trong hai sẽ có thể mã hóa các ràng buộc, nhưng theo một cách hơi khác:n

  • Đối với SAT, có một mã hóa rất rõ ràng về sự lựa chọn gạch nào đi vào từng ô vuông và mã hóa sạch hơn một chút về các ràng buộc liên quan đến số lượng của từng loại gạch (sử dụng số học bit).

  • Đối với ILP, có một mã hóa rất rõ ràng về các ràng buộc liên quan đến số lượng từng loại gạch có sẵn và một mã hóa sạch hơn một chút về các ràng buộc mà các ô có thể nằm liền kề nhau (nhưng vẫn có thể rõ ràng, vì bạn có thể thể hiện các công thức boolean tùy ý trong ILP).

Tôi hy vọng rằng cho vừa và nhỏ có kích thước , phương pháp này có thể làm việc một cách hiệu quả.n


Tôi đồng ý rằng đây có vẻ là một phương tiện hợp lý để giải quyết vấn đề, nhưng tôi ít quan tâm đến việc giải quyết cụ thể các vấn đề hơn là tôi hiểu được sự phức tạp của nó. (Ví dụ, nếu nó ở P sau đó gần như chắc chắn một số loại phương pháp năng động-lập trình với nó rằng handily sẽ vượt qua trừu tượng SAT / giải quyết quy hoạch tuyến tính vào vấn đề.)
Steven Stadnicki

@StevenStadnicki, OK, đủ công bằng. Tuy nhiên, tôi đang đấu tranh để hòa giải ~ "Tôi quan tâm đến việc hiểu độ phức tạp (không triệu chứng) của nó (ví dụ: liệu nó có hoàn chỉnh NP không)" ~ với ~ "Tôi quan tâm đến vấn đề đối với các giá trị nhỏ của " ~ . n
DW

Xin lỗi, đó có thể là một số nhầm lẫn trong đặc tả vấn đề; Tôi đang sử dụng để biểu thị (về cơ bản) số lượng hình dạng cạnh và tôi đặc biệt quan tâm đến trường hợp chỉ có một hình dạng cạnh phù hợp (nghĩ 'innie' hoặc 'outie'); Tôi đang tự hỏi về sự phức tạp của vấn đề đó như là một hàm của m , kích thước lưới. nm
Steven Stadnicki

@StevenStadnicki, ahh, lỗi của tôi! Xin lỗi, tôi đã không đọc kỹ. Điều đó có ý nghĩa - cảm ơn bạn.
DW

Đừng lo lắng - tôi nên xem xét nó trước; Khi tôi về nhà, tôi sẽ thử và chỉnh sửa câu hỏi để sử dụng thông số 'truyền thống' hơn.
Steven Stadnicki
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.