Apakah secara optimal menyelesaikan kubus NP-hard n × n × n Rubik?


38

Pertimbangkan jelas generalisasi dari Rubik Cube . Apakah NP-sulit untuk menghitung urutan gerakan terpendek yang memecahkan kubus yang diacak, atau apakah ada algoritma waktu polinomial?n×n×n

[Beberapa hasil terkait dijelaskan dalam posting blog terakhir saya .]


5
Saya kira input diberikan sebagai enam n × n kisi-kisi yang terbuat dari {1,…, 6}. Apakah masalah dalam NP? Apakah ada batas atas polinomial yang mudah pada jumlah gerakan dalam versi kubus Rubik nxnx?
Tsuyoshi Ito

1
Terima kasih untuk informasi. Apakah ada referensi?
Tsuyoshi Ito

1
Apakah masalah menjadi lebih mudah jika santai untuk "Mengingat konfigurasi, menghasilkan solusi yang paling banyak mengambil Nomor Tuhan (n, n, n) bergerak"? Itulah yang dilakukan oleh algoritma solusi Rubik. Mereka tidak mencari yang terpendek karena itu akan memakan waktu terlalu lama.
Aaron Sterling

1
Apakah kita tahu bahwa diameter ruang konfigurasi yang dapat dijangkau adalah ? Θ(n2)
Andy Drucker

1
@Andy: Pertanyaan bagus! ("Apa fungsi Allah dari n?")
Jeffε

Jawaban:



21

Sebuah makalah baru oleh Demaine, Demaine, Eisenstat, Lubiw, dan Winslow membuat kemajuan parsial pada pertanyaan ini --- ia memberikan algoritma waktu polinomial untuk secara optimal memecahkan kubus, dan menunjukkan N P -Kekuatan untuk memecahkan secara optimal apa yang Anda sebut kubus "sebagian berwarna". Ini juga menunjukkan bahwa ruang konfigurasi n × n × n kubus memiliki diameter Θ ( n 2 / log n ) .n×O(1)×O(1)NPn×n×nΘ(n2/logn)

Manis!

Satu pertanyaan berikutnya yang mungkin diajukan oleh karya mereka: apakah ada keluarga tetap dari kubus yang diwarnai sebagian , satu untuk setiap nilai n , sedemikian sehingga penyelesaian optimal dari konfigurasi yang diberikan adalah N P -hard?n×n×nnNP


1
OK, dan satu pertanyaan lagi: apa kompleksitas menentukan apakah dua pewarna tidak standar dari kubus yang setara? (Dua kasus untuk dipertimbangkan: pewarnaan lengkap atau sebagian.)n×n×n
Andy Drucker

Baiklah, satu pertanyaan lagi dan kemudian saya akan berhenti: apakah ada urutan konfigurasi eksplisit yang memerlukan bergerak untuk menyelesaikannya? (Makalah ini menggunakan argumen penghitungan untuk batas bawahnya.)Ω(n2/logn)
Andy Drucker

9

Mungkin ada bug dalam hal ini, jadi tolong beri tahu saya jika Anda menemukannya.

Tampaknya jawabannya adalah tidak, atau setidaknya bahwa masalah ini terkandung dalam NP. Alasan di balik ini sangat sederhana. Idenya adalah untuk membangun dari pertanyaan lain: "Bisakah Anda mendapatkan antara konfigurasi A dan konfigurasi B dalam langkah S atau kurang?"

Jelas pertanyaan baru ini ada di NP, karena ada algoritma untuk menyelesaikan cube dari setiap konfigurasi yang dapat diselesaikan, dan dengan demikian melalui keadaan yang telah dipecahkan, hanya dibutuhkan O ( n 2 ) untuk berpindah di antara dua konfigurasi. Karena hanya ada sejumlah polinomial gerakan, rangkaian gerakan untuk pergi antara dua konfigurasi dapat digunakan sebagai saksi untuk pertanyaan baru ini.O(n2)O(n2)

Sekarang, pertama-tama, jika kita memilih konfigurasi B menjadi keadaan terselesaikan, kita memiliki masalah yang menanyakan apakah mungkin untuk menyelesaikan kubus dalam langkah atau kurang, yang terkandung dalam NP.S

Sekarang mari kita pilih konfigurasi yang berbeda untuk B, yang saya sebut yang membutuhkan n h a r dn 2 langkah untuk diselesaikan. Sekarang jika kita bertanya apakah mungkin untuk mendapatkan antara konfigurasi A dan B h a r d di S ' langkah-langkah atau kurang, kita lagi punya masalah dalam NP dengan urutan langkah sebagai saksi. Namun, karena kita tahu B h a r d membutuhkan n h a r dBhardnhardn2BhardSBhardnhardlangkah-langkah untuk memecahkan, kita tahu bahwa jika ada kemungkinan untuk pergi antara A dan di S ' langkah, maka membutuhkan setidaknya n h a r d - S ' langkah-langkah untuk memecahkan n × n × n kubus dari konfigurasi A.BhardSnhardSn×n×n

Dengan demikian kita memiliki saksi untuk kedua batas bawah langkah dan batas bawah langkah S untuk menyelesaikan dari konfigurasi A. Jika sekarang kita memilih S 0 sebagai jumlah minimum gerakan yang diperlukan untuk menyelesaikan awal kubus dengan konfigurasi A, maka jika kita memilih batas bawah dan atas menjadi sama (yaitu S = n h a r d - S 0 dan S = S 0nhardSSS0S=nhardS0S=S0), maka kami memiliki saksi bahwa solusi ini optimal (terdiri dari saksi dari dua masalah NP yang terkait dengan batas).

Terakhir, kita membutuhkan cara untuk menghasilkan . Kita mungkin memerlukan konfigurasi yang paling sulit, tetapi karena saya tidak tahu bagaimana menemukannya, saya sarankan hanya memutar setiap detik pesawat satu kali tentang sumbu x, dan kemudian setiap pesawat keempat (menjaga pesawat pusat tetap) satu kali tentang sumbu z. Saya percaya ini mengarah ke keadaan yang membutuhkan langkah O ( n 2 ) untuk menyelesaikannya.BhardO(n2)

Jadi, saya tidak memiliki bukti yang konstruktif penuh, tetapi solusi optimal mengambil kurang dari jelas memiliki saksi. Sayangnya, tentu saja, untuk menangkap semua konfigurasi yang mungkin Anda perlu n h a r d = Nomor Tuhan ( n ) .nhardnhard=God's number(n)

EDIT: Keteraturan konfigurasi Superflip membuatnya tampak mungkin bahwa menghasilkan untuk n h a r d = jumlah Allah ( n ) mungkin relatif mudah (yaitu dalam P).Bhardnhard=God's number(n)


Ide yang rapi. Namun, tidakkah ini berasumsi bahwa jalur terpendek antara dua titik yang berjauhan dapat ditempuh untuk melewati titik lainnya. Itu jelas benar untuk titik di bola (jika Anda terbang dari kutub Utara ke kutub Selatan, Anda mungkin juga terbang melalui Tahiti), tetapi apakah ada alasan mengapa hal itu benar untuk konfigurasi kubus Rubik?
Peter Shor

@ Peter Shor: Hi Peter, saya tidak bermaksud mengatakan bahwa akan melalui dari A ke solusinya adalah jalan terpendek. Sebenarnya pendekatan ini seharusnya tidak berhasil dalam kasus itu. Idenya adalah bahwa jika dibutuhkan setidaknya n h a r d langkah untuk pergi dari B h a r d ke konfigurasi yang diselesaikan, maka jika kita beralih dari A ke solusi melalui B h a r d kita harus melangkah lebih jauh dari konfigurasi yang dipecahkan, sebelum kembali. (lanjutan)BhardnhardBhardABhard
Joe Fitzsimons

(lanjutan) Saya menganggap A lebih mudah untuk diselesaikan daripada (kurang langkah). Karena kita tahu bahwa dibutuhkan setidaknya n h a r d langkah untuk menyelesaikan dari B h a r d , dan kita tahu kita bisa sampai ke B h a r d di paling banyak n h a r d langkah dari A, maka kita harus n h a r d - S S 0n h a r dBhardnhardBhardBhardnhard . Saya menggunakan ini untuk mendapatkan batas yang lebih rendah pada S 0 , sementara penyelesaian langsung memberikan batas atas pada S 0 . nhardSS0nhard+SS0S0
Joe Fitzsimons

2
@ Jo: Kau salah paham denganku. Saya pikir pendekatan Anda hanya bekerja dengan baik jika ada jalan yang relatif pendek dari B h a r d ke solusi yang melewati A. Saya tidak tahu apakah ini benar untuk kubus Rubik (jadi saya tidak mengatakan pendekatan Anda tidak berfungsi, hanya saja ada lebih banyak hal yang perlu dibuktikan). hard
Peter Shor

2
@ Jo: jangan khawatir tentang memposting jawaban yang setengah hati-hati. Saya telah melakukan hal yang sama (dan saya bukan satu-satunya). Dan saya tidak yakin pendekatan ini sama sekali tidak berharga. Saya berharap itu tidak akan berfungsi untuk menunjukkan menghitung jarak yang tepat bukan NP-keras, tapi mungkin bisa mengatakan sesuatu tentang perkiraan itu.
Peter Shor
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.