Rubik 's Cube 의 명백한 일반화를 고려하십시오 . 주어진 스크램블 큐브를 해결하는 최단 이동 시퀀스 를 계산하는 것은 NP-hard입니까 , 아니면 다항식 알고리즘이 있습니까?
[일부 관련 결과는 최근 블로그 게시물에 설명되어 있습니다.]
Rubik 's Cube 의 명백한 일반화를 고려하십시오 . 주어진 스크램블 큐브를 해결하는 최단 이동 시퀀스 를 계산하는 것은 NP-hard입니까 , 아니면 다항식 알고리즘이 있습니까?
[일부 관련 결과는 최근 블로그 게시물에 설명되어 있습니다.]
답변:
Demaine, Demaine, Eisenstat, Lubiw 및 Winslow 의 새로운 논문 은이 질문에 부분적인 진전을 이룹니다. 그것은 큐브 를 최적으로 푸는 다항식 시간 알고리즘을 보여줍니다. - "부분 색상"큐브라고 부르는 것을 최적으로 해결하기위한 경도. 또한 큐브의 구성 공간의 직경은 입니다.N P n × n × n Θ ( n 2 / log n )
단!
자신의 작품이 제시하는 것 같은 한 가지 가능한 다음 질문은 : 거기입니다 고정 부분적으로 색의 가족 큐브의 각 값에 대해 하나 최적으로 주어진 구성에서 해결하는 것이되도록, -단단한?n N P
이것에 쉽게 버그가있을 수 있으므로 발견하면 알려주십시오.
대답은 '아니오'이거나 적어도이 문제가 NP에 포함되어있는 것 같습니다. 이것에 대한 추론은 매우 간단합니다. 아이디어는 또 다른 질문으로부터 구축하는 것입니다. "S 단계 이하로 구성 A와 구성 B 사이를 얻을 수 있습니까?"
이 새로운 질문은 분명히 NP에 있습니다. 왜냐하면 모든 해결 가능한 구성에서 큐브를 해결 하는 알고리즘이 있기 때문에 해결 된 상태를 거치면 두 구성 사이를 이동 하는 데 만 걸립니다. . 다항식 수의 이동 만 있기 때문에 두 구성간에 이동하는 이동 세트를이 새로운 질문에 대한 증인으로 사용할 수 있습니다.O ( N 2 )
먼저, 구성 B를 해결 된 상태로 선택하면 NP 내에 포함 된 단계 이하로 큐브를 해결할 수 있는지 묻는 문제가 있습니다 .
이제 B에 대해 다른 구성을 선택하겠습니다. 라고 부르겠습니다. 여기서 단계를 거쳐 해결할 수 있습니다. 이제 우리는 그것을 구성 A와 사이에 얻을 수 있는지 요청하면 에 단계 이하로, 우리는 다시 증인으로 이동의 순서로 NP에 문제가 있습니다. 그러나 우리는 가 해결하기 위해 단계를 취 한다는 것을 알고 있으므로 , 단계 에서 A와 사이를 이동할 수 있다면 적어도 필요 하다는 것을 알고 있습니다 단계를 해결하기 위해 구성 A.에서 큐브를
따라서 우리는 구성 A에서 풀어야 할 단계의 하한과 단계 의 하한에 대한 증인이 있습니다. 이제 구성부터 시작하여 큐브를 해결하는 데 필요한 최소 이동 수로 을 선택 합니다. A, 그렇다면 하한과 상한을 동일하게 선택하면 (즉, 및 )이 솔루션이 최적이라는 증거가 있습니다 (두 NP의 증인으로 구성됨) 경계와 관련된 문제).
마지막으로 를 생성하는 방법이 필요합니다 . 우리는 아마도 가장 어려운 구성이 필요할지 모르지만 그것을 찾는 방법을 모르기 때문에 x 축에 대해 두 번째 평면을 한 번만 회전 한 다음 모든 네 번째 평면 (중앙 평면을 고정 상태로 유지)을 한 번만 회전하는 것이 좋습니다. z 축. 나는 이것이 해결하기 위해 단계가 필요한 상태로 이어진다 고 생각합니다 .
따라서, 나는 완전한 건설적인 증거는 없지만 보다 적은 최적의 솔루션 은 분명한 증거가 있습니다. 불행히도, 가능한 모든 구성을 캡처하려면 합니다.
편집 : Superflip 구성의 규칙 성으로 인해 대해 를 생성하는 것이 상대적으로 쉬울 수 있습니다 (예 : P).