ฉันสนใจการเรียงต่อกันเล็กน้อยจิ๊กซอว์ 'จิ๊กซอว์': ขอบของแผ่นสี่เหลี่ยม (สี่เหลี่ยม) แต่ละป้ายมีสัญลักษณ์จากและสามารถวางแผ่นกระเบื้องสองแผ่นติดกันถ้าสัญลักษณ์บนขอบกระเบื้องหันหน้าไปทางหนึ่งคือและสัญลักษณ์บนแผ่นหันหน้าของกระเบื้องอีกอันคือ , สำหรับ\} จากนั้นให้ชุดไพ่สามารถวางลงใน (หมุน แต่ไม่พลิกกระเบื้อง) โดยการจับคู่ขอบทั้งหมดถูกต้องหรือไม่? (นอกจากนี้ยังมีตัวแปรในการแก้ปัญหานี้ในที่ที่สี่ 'กรอบ' ขอบที่มีให้และชิ้นส่วนที่ต้องพอดีอย่างถูกต้องลงในกรอบที่)k ˉ k k ∈ { 1 … n } m 2 m × m
ฉันรู้ว่าปัญหานี้เป็นปัญหา NP-complete สำหรับมีขนาดใหญ่พอแต่ขอบเขตที่ฉันเห็นในดูเหมือนจะค่อนข้างใหญ่ ฉันสนใจปัญหาสำหรับค่าเล็ก ๆ ของและโดยเฉพาะสำหรับ , กรณี 'zero-one' (ที่ทุก ๆ ขอบถูกระบุว่าเป็นหรือและขอบที่มีต้องตรงกับขอบด้วย a ) ที่นี่มี (ที่มีการหมุนสมมาตร) เพียงหกประเภทกระเบื้อง (กระเบื้อง all-zeroes, all-ones tile, กระเบื้องที่มีสามศูนย์และหนึ่ง, กระเบื้องที่มีสามคนและศูนย์และสองกระเบื้องที่แตกต่างกันสองศูนย์ และสองอันคือ '0011' และ '0101') ดังนั้นตัวอย่างปัญหาจึงเป็นเพียงสเปคของn n n = 1 0 1 0mและชุดของห้าหมายเลข , , , ,และ (แทนจำนวนกระเบื้องแต่ละประเภท) ด้วย 2 ปัญหานี้เห็นได้ชัดใน NP (กับให้เป็นเอกภาพ) เนื่องจากวิธีการแก้ปัญหาสามารถถูกแสดงและตรวจสอบแล้วในพหุนาม (เป็น) เวลา แต่เป็นที่รู้กันว่า NP-complete หรือมีอัลกอริทึมการเขียนโปรแกรมแบบไดนามิกที่สามารถใช้ที่นี่ได้หรือไม่ สิ่งที่เกี่ยวกับกรณี 'กรอบ' ที่สเปคปัญหายังรวมถึงสี่ขอบของสี่เหลี่ยมที่จะจับคู่? (เห็นได้ชัดว่าถ้ากรณี unframed เป็นแบบ NP-Complete กรณีกรอบเกือบจะแน่นอนเช่นกัน)