การแก้ n × n × n Rubik's Cube NP-hard อย่างเหมาะสมหรือไม่


38

พิจารณาเห็นได้ชัดทั่วไปของRubik 's Cube มันเป็นเรื่องยากไหมที่จะคำนวณลำดับการเคลื่อนที่ที่สั้นที่สุดที่แก้ปัญหาสัญญาณรบกวนที่กำหนดหรือมีอัลกอริธึมเวลาพหุนามหรือไม่?n×n×n

[ผลลัพธ์ที่เกี่ยวข้องบางอย่างมีการอธิบายไว้ในโพสต์บล็อกล่าสุดของฉัน ]


5
ฉันเดาว่าอินพุตจะได้รับเป็นกริดหก n × n ที่ทำจาก {1, …, 6} เป็นปัญหาใน NP หรือไม่ มีขอบเขตพหุนามง่าย ๆ กับจำนวนการเคลื่อนที่ในคิวบ์ Rubik's n × n × n หรือไม่?
Tsuyoshi Ito

1
ขอบคุณสำหรับข้อมูล. มีการอ้างอิงใด ๆ ?
Tsuyoshi Ito

1
ปัญหาจะง่ายขึ้นไหมถ้ามันสบายใจที่จะ "ให้การตั้งค่าสร้างวิธีแก้ปัญหาที่ใช้จำนวนการเคลื่อนไหวของพระเจ้า (n, n, n)"? นั่นคือสิ่งที่อัลกอริทึมการแก้ปัญหาของรูบิคทำ พวกเขาไม่ได้มองหาที่สั้นที่สุดเพราะอาจใช้เวลานานเกินไป
Aaron Sterling

1
เรารู้หรือไม่ว่าเส้นผ่านศูนย์กลางของพื้นที่กำหนดค่าที่สามารถเข้าถึงได้คือ ? Θ(n2)
Andy Drucker

1
@Andy: คำถามที่ดี! ("หน้าที่ของพระเจ้าคืออะไร?")
Jeff n

คำตอบ:



21

กระดาษใหม่โดย Demaine, Demaine, Eisenstat, Lubiw และพระพุทธเจ้าทำให้ความคืบหน้าบางส่วนสำหรับคำถามนี้ --- มันให้อัลกอริทึมพหุนามเวลาสำหรับการแก้ปัญหาก้อนอย่างเหมาะสมและแสดงN P - ความทนทานสำหรับการแก้ไขสิ่งที่คุณอาจเรียกว่าคิวบ์ "สีบางส่วน" อย่างเหมาะสมที่สุด นอกจากนี้ยังแสดงให้เห็นว่าn × n × nกำหนดพื้นที่ก้อนมีขนาดเส้นผ่าศูนย์กลางΘ ( n 2 / log n )n×O(1)×O(1)NPn×n×nΘ(n2/logn)

หวาน!

หนึ่งคำถามต่อไปเป็นไปได้ว่าการทำงานของพวกเขาดูเหมือนว่าจะแนะนำ: จะมีการแก้ไขในครอบครัวบางส่วนสีก้อนหนึ่งสำหรับค่าของแต่ละnเช่นที่ดีที่สุดในการแก้จากการกำหนดค่าให้เป็นN P -hard?n×n×nnNP


1
ตกลงและอีกหนึ่งคำถาม: มีอะไรซับซ้อนของการพิจารณาว่าสองสีที่ไม่เป็นมาตรฐานของก้อนเทียบเท่า? (สองกรณีที่ต้องพิจารณา: การระบายสีที่สมบูรณ์หรือบางส่วน)n×n×n
Andy Drucker

เอาล่ะคำถามอีกข้อหนึ่งแล้วฉันจะหยุด: มีลำดับการกำหนดค่าที่ชัดเจนซึ่งต้องใช้การย้ายเพื่อแก้ปัญหาหรือไม่ (กระดาษใช้อาร์กิวเมนต์การนับสำหรับขอบเขตล่าง)Ω(n2/logn)
Andy Drucker

9

อาจมีข้อผิดพลาดในเรื่องนี้ได้อย่างง่ายดายดังนั้นโปรดแจ้งให้เราทราบหากคุณพบจุดใดจุดหนึ่ง

ดูเหมือนว่าคำตอบคือไม่หรืออย่างน้อยก็มีปัญหานี้อยู่ใน NP เหตุผลที่อยู่เบื้องหลังนี้ง่ายมาก แนวคิดคือการสร้างขึ้นจากคำถามอื่น: "คุณจะได้รับระหว่างการกำหนดค่า A และการกำหนดค่า B ในขั้นตอน S หรือน้อยกว่า"

เห็นได้ชัดว่าคำถามใหม่นี้อยู่ใน NP เพราะมีอัลกอริทึมเพื่อแก้ปัญหาคิวบ์จากการกำหนดค่าที่แก้ไขได้และเพื่อให้ผ่านสถานะที่แก้ไขแล้วจะใช้เวลาเพียงO ( n 2 )ระหว่างสองการกำหนดค่า เนื่องจากมีจำนวนการเคลื่อนไหวพหุนามเพียงจำนวนชุดการเคลื่อนที่ที่จะไประหว่างการกำหนดค่าสองแบบจึงสามารถใช้เป็นพยานสำหรับคำถามใหม่นี้ได้O(n2)O(n2)

ทีนี้ก่อนอื่นถ้าเราเลือกการตั้งค่า B ให้เป็นสถานะที่แก้ไขแล้วเรามีปัญหาที่ถามว่ามันเป็นไปได้ที่จะแก้ปัญหาลูกบาศก์ในขั้นตอนหรือน้อยกว่าซึ่งมีอยู่ใน NPS

ตอนนี้ให้เลือกการกำหนดค่าที่แตกต่างกันสำหรับ B ซึ่งผมจะเรียกซึ่งจะใช้เวลาn ชั่วโมงR dn 2ขั้นตอนในการแก้ปัญหา ตอนนี้ถ้าเราถามว่ามันเป็นไปได้ที่จะได้รับระหว่างการกำหนดค่า A และB ชั่วโมงR dในS 'ขั้นตอนหรือน้อยกว่าเราอีกครั้งมีปัญหาใน NP กับลำดับของการเคลื่อนไหวเป็นพยานได้ แต่เนื่องจากเรารู้ว่าบีเอชR dใช้เวลาn ชั่วโมงR dBhardnhardn2BhardSBhardnhardขั้นตอนในการแก้ปัญหาเรารู้ว่าถ้ามันเป็นไปได้ที่จะไประหว่าง A และในS 'ขั้นตอนแล้วมันต้องมีอย่างน้อยn ชั่วโมงR d - S 'ขั้นตอนในการแก้n × n × nก้อนจาก การกำหนดค่า A.BhardSnhardSn×n×n

ดังนั้นเรามีพยานสำหรับทั้งขอบเขตล่างของ steps และขอบเขตล่างของขั้นตอนSเพื่อแก้ไขจากการตั้งค่า A ถ้าเราเลือกS 0เป็นจำนวนขั้นต่ำของการย้ายที่จำเป็นในการแก้ปัญหาการเริ่มลูกบาศก์ ด้วยการกำหนดค่า A ดังนั้นถ้าเราเลือกขอบเขตล่างและบนให้เท่ากัน (เช่นS = n h a r d - S 0และS = S 0nhardSSS0S=nhardS0S=S0) จากนั้นเรามีพยานหลักฐานว่าวิธีนี้เหมาะสมที่สุด (ประกอบด้วยพยานของปัญหาสองปัญหาที่เกี่ยวข้องกับขอบเขต)

สุดท้ายเราต้องมีวิธีการสร้าง d เราอาจต้องการการกำหนดค่าที่ยากที่สุด แต่เนื่องจากฉันไม่รู้ว่าจะหาได้อย่างไรฉันขอแนะนำให้หมุนระนาบที่สองทุกครั้งหนึ่งครั้งเกี่ยวกับแกน x จากนั้นทุกระนาบที่สี่ (ทำให้ระนาบกลางคงที่) หนึ่งครั้งเกี่ยวกับ แกน z ฉันเชื่อว่าสิ่งนี้นำไปสู่รัฐที่ต้องใช้ขั้นตอนO ( n 2 )เพื่อแก้ไขBhardO(n2)

ดังนั้นผมไม่ได้มีหลักฐานที่สร้างสรรค์เต็ม แต่ทางออกที่ดีที่สุดการใด ๆ ที่น้อยกว่าชัดเจนมีพยาน แต่น่าเสียดายที่แน่นอนในการจับภาพการกำหนดค่าที่เป็นไปได้ทั้งหมดที่คุณจะต้องn ชั่วโมงR d = จำนวนของพระเจ้า ( n )nhardnhard=God's number(n)

แก้ไข: ความสม่ำเสมอของการกำหนดค่า Superflip ทำให้ดูเหมือนว่าการสร้างสำหรับn h a r d = หมายเลขของพระเจ้า ( n )อาจจะค่อนข้างง่าย (เช่นใน P)Bhardnhard=God's number(n)


ไอเดียเรียบร้อย อย่างไรก็ตามนี่ไม่ได้สมมติว่าเส้นทางที่สั้นที่สุดระหว่างสองจุดที่อยู่ห่างกันสามารถนำไปผ่านจุดอื่นได้ นั่นเป็นความจริงที่ชัดเจนสำหรับจุดบนทรงกลม (หากคุณกำลังบินจากขั้วโลกเหนือไปยังขั้วโลกใต้คุณอาจบินด้วยวิธีของตาฮิติ) แต่มีเหตุผลใดที่ควรเป็นจริงสำหรับการกำหนดค่าลูกบาศก์ของรูบิค?
Peter Shor

BhardnhardBhardABhard

BhardnhardBhardBhardnhardnhardSS0nhard+SS0S0

2
hard

2
@ โจ: ไม่ต้องกังวลกับการโพสต์คำตอบที่คิดครึ่ง ฉันทำสิ่งเดียวกัน (และฉันไม่ใช่คนเดียว) และฉันไม่มั่นใจว่าวิธีการนี้ไร้ค่าอย่างสมบูรณ์ ฉันคาดหวังว่ามันจะไม่ทำงานเพื่อแสดงการคำนวณระยะทางที่แน่นอนไม่ใช่ปัญหา NP-hard แต่บางทีมันอาจพูดอะไรบางอย่างเกี่ยวกับการประมาณมัน
Peter Shor
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.