n × n × n Rubik의 Cube NP-hard를 최적으로 풀고 있습니까?


38

Rubik 's Cube 의 명백한 일반화를 고려하십시오 . 주어진 스크램블 큐브를 해결하는 최단 이동 시퀀스 를 계산하는 것은 NP-hard입니까 , 아니면 다항식 알고리즘이 있습니까?n×n×n

[일부 관련 결과는 최근 블로그 게시물에 설명되어 있습니다.]


5
입력은 {1,…, 6}으로 만들어진 6 개의 nxn 그리드로 제공되는 것 같습니다. NP에 문제가 있습니까? Rubik 큐브의 n × n × n 버전에서 이동 횟수에 쉽게 다항식 상한이 있습니까?
Ito Tsuyoshi

1
정보 주셔서 감사합니다. 참조가 있습니까?
Ito Tsuyoshi

1
"구성을 제공하고, 최대 하나님의 수 (n, n, n)의 이동을 취하는 솔루션을 생성"하는 것이 편 해지면 문제가 더 쉬워 집니까? 그것이 Rubik의 솔루션 알고리즘이 한 일입니다. 너무 오래 걸리기 때문에 가장 짧게 찾지 않았습니다.
Aaron Sterling

1
도달 가능한 구성 공간의 직경이 라는 것을 알고 있습니까? Θ(n2)
Andy Drucker

1
@ 앤디 : 좋은 질문입니다! ( "n의 하나님의 기능은 무엇입니까?")
Jeffε

답변:



21

Demaine, Demaine, Eisenstat, Lubiw 및 Winslow 의 새로운 논문 은이 질문에 부분적인 진전을 이룹니다. 그것은 큐브 를 최적으로 푸는 다항식 시간 알고리즘을 보여줍니다. - "부분 색상"큐브라고 부르는 것을 최적으로 해결하기위한 경도. 또한 큐브의 구성 공간의 직경은 입니다.N P n × n × n Θ ( n 2 / log n )n×O(1)×O(1)NPn×n×nΘ(n2/logn)

단!

자신의 작품이 제시하는 것 같은 한 가지 가능한 다음 질문은 : 거기입니다 고정 부분적으로 색의 가족 큐브의 각 값에 대해 하나 최적으로 주어진 구성에서 해결하는 것이되도록, -단단한?n N Pn×n×nnNP


1
OK, 그리고 하나 더 질문 : 큐브 의 두 가지 비표준 채색이 동일한 지 여부를 결정하는 복잡성은 무엇 입니까? (두 가지 경우 : 완전 또는 부분 착색)n×n×n
Andy Drucker

좋아, 한 번 더 질문하고 내가 중단됩니다 :가 명시 적으로 요구하는 구성의 순서 해결하기 위해 이동? (이 논문은 하한에 대한 계산 인수를 사용합니다.)Ω(n2/logn)
Andy Drucker

9

이것에 쉽게 버그가있을 수 있으므로 발견하면 알려주십시오.

대답은 '아니오'이거나 적어도이 문제가 NP에 포함되어있는 것 같습니다. 이것에 대한 추론은 매우 간단합니다. 아이디어는 또 다른 질문으로부터 구축하는 것입니다. "S 단계 이하로 구성 A와 구성 B 사이를 얻을 수 있습니까?"

이 새로운 질문은 분명히 NP에 있습니다. 왜냐하면 모든 해결 가능한 구성에서 큐브를 해결 하는 알고리즘이 있기 때문에 해결 된 상태를 거치면 두 구성 사이를 이동 하는 데 만 걸립니다. . 다항식 수의 이동 만 있기 때문에 두 구성간에 이동하는 이동 세트를이 새로운 질문에 대한 증인으로 사용할 수 있습니다.O ( N 2 )O(n2)O(n2)

먼저, 구성 B를 해결 된 상태로 선택하면 NP 내에 포함 된 단계 이하로 큐브를 해결할 수 있는지 묻는 문제가 있습니다 .S

이제 B에 대해 다른 구성을 선택하겠습니다. 라고 부르겠습니다. 여기서 단계를 거쳐 해결할 수 있습니다. 이제 우리는 그것을 구성 A와 사이에 얻을 수 있는지 요청하면 에 단계 이하로, 우리는 다시 증인으로 이동의 순서로 NP에 문제가 있습니다. 그러나 우리는 가 해결하기 위해 단계를 취 한다는 것을 알고 있으므로 , 단계 에서 A와 사이를 이동할 수 있다면 적어도 필요 하다는 것을 알고 있습니다 단계를 해결하기 위해 구성 A.에서 큐브를Bhardnhardn2BhardSBhardnhardBhardSnhardSn×n×n

따라서 우리는 구성 A에서 풀어야 할 단계의 하한과 단계 의 하한에 대한 증인이 있습니다. 이제 구성부터 시작하여 큐브를 해결하는 데 필요한 최소 이동 수로 을 선택 합니다. A, 그렇다면 하한과 상한을 동일하게 선택하면 (즉, 및 )이 솔루션이 최적이라는 증거가 있습니다 (두 NP의 증인으로 구성됨) 경계와 관련된 문제).nhardSSS0S=nhardS0S=S0

마지막으로 를 생성하는 방법이 필요합니다 . 우리는 아마도 가장 어려운 구성이 필요할지 모르지만 그것을 찾는 방법을 모르기 때문에 x 축에 대해 두 번째 평면을 한 번만 회전 한 다음 모든 네 번째 평면 (중앙 평면을 고정 상태로 유지)을 한 번만 회전하는 것이 좋습니다. z 축. 나는 이것이 해결하기 위해 단계가 필요한 상태로 이어진다 고 생각합니다 .BhardO(n2)

따라서, 나는 완전한 건설적인 증거는 없지만 보다 적은 최적의 솔루션 은 분명한 증거가 있습니다. 불행히도, 가능한 모든 구성을 캡처하려면 합니다.nhardnhard=God's number(n)

편집 : Superflip 구성의 규칙 성으로 인해 대해 를 생성하는 것이 상대적으로 쉬울 수 있습니다 (예 : P).Bhardnhard=God's number(n)


깔끔한 아이디어. 그러나 이것은 멀리 떨어진 두 지점 사이의 최단 경로가 다른 지점을 통과하기 위해 취할 수 있다고 가정하지 않습니다. 구체의 점에 대해서는 분명히 사실입니다 (북극에서 남극으로 비행하는 경우 타히티를 통해 비행 할 수도 있습니다).하지만 Rubik 큐브의 구성에 해당 해야하는 이유가 있습니까?
피터 쇼어

@Peter Shor : 안녕하세요. Peter, 저는 A에서 솔루션으로 를 통과하는 것이 최단 경로 라는 것을 암시하지 않았습니다 . 실제로이 방법은 작동하지 않아야합니다. 아이디어는 적어도 걸리는 경우이다 단계에서 얻을 수 우리가에서 이동 한 후 경우 해결 구성에 를 통해 솔루션에 우리가 해결 구성에서 멀리 더 가야 돌아 가기 전에 (계속)BhardnhardBhardABhard
Joe Fitzsimons

(계속) (보다 적은 단계) 보다 A가 해결하기 쉽다고 가정 합니다. 우리 는 에서 해결 하는 데 적어도 단계 가 필요하다는 것을 알고 있으며 A 에서 최대 단계 로 에 도달 할 수 있다는 것을 알고 있으므로 입니다. 나는 이것을 사용하여 에서 하한을 얻었 지만, 직접 해결하면 에서 상한 을 얻습니다 . N의 H R의 개발 B의 H R의 개발 B의 H R에 D N H R에 D N H R에 D - S 'S 0N H R의 D + S ' S 0 S 0BhardnhardBhardBhardnhardnhardSS0nhard+SS0S0
Joe Fitzsimons

2
@ 조 : 당신은 나를 오해했습니다. 나는 당신의 접근 방식이 B 에서 A를 통과하는 솔루션 으로 비교적 짧은 경로가있는 경우에만 잘 작동한다고 생각합니다 . 나는 이것이 Rubik의 큐브에 해당되는지 여부를 알지 못합니다. 당신의 접근 방식이 효과가 없으며, 입증해야 할 것이 더 많습니다.) hard
피터 쇼어

2
@ 조 : 반 생각 답변 게시에 대해 걱정하지 마십시오. 나는 똑같은 일을했습니다 (그리고 나는 유일한 사람이 아닙니다). 그리고 나는이 접근법이 완전히 가치가 없다고 확신하지 않습니다. 정확한 거리를 계산하는 것이 효과가 없을 것으로 예상하지만 NP-hard가 아니지만 근사치에 대해 말할 수 있습니다.
피터 쇼어
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.