이 문제를 해결하는 이론적 방법은 보드의 모든 구성을 그래프의 정점으로 상상해 놓은 다음 보드의 Manhatten Distance와 같은 것을 기반으로 한 브리닝 첫 번째 검색을 사용하여 가장 짧은 시작 구성에서 솔루션으로의 경로
n x n
보드의 경우 게임 공간이 너무 커져서 방문한 정점을 효율적으로 표시하는 방법이 명확하지 않은 경우가 있습니다. 즉, 보드의 현재 구성이 다른 경로를 통과하여 이전에 발견 된 것과 동일한 지 평가하는 분명한 방법은 없습니다. 또 다른 문제점은 n
(약 (n^2)!
)으로 그래프 크기가 너무 빨리 커지므로 경로 수가 계산적으로 트래버스 할 수 없으므로 Brue-Force 공격에 적합하지 않다는 것입니다.
이 논문의 저자 Ian Parberry A Real-Time Algorithm for the (n^2 − 1)
- Puzzle은 첫 번째 행, 첫 번째 열, 두 번째 행을 완료함으로써 반복적으로 솔루션에 도달하는 간단한 욕심 많은 알고리즘을 설명합니다. 그러나 솔루션에 즉시 도착하지만 솔루션 최적에서 멀다. 본질적으로 그것은 컴퓨터 근육을 이용하지 않고 인간이하는 것처럼 문제를 해결합니다.
이 문제는 루빅 큐브를 해결할 때와 밀접한 관련이 있습니다. 모든 게임의 그래프는 너무 커서 brue force로 풀지는 못하지만, 매우 단순한 7 단계 방법이 있습니다.이 방법을 사용하면 딱딱한 인간이 약 1 ~ 2 분 안에 큐브를 풀 수 있습니다. 물론이 경로는 최적이 아닙니다. 이동 순서를 정의하는 패턴을 인식하여 속도를 17 seconds으로 낮출 수 있습니다. 그러나 Jiri의 이런 위업은 다소 초인적입니다!
Parberry 메서드는 한 번에 하나의 타일 만 이동하는 것으로 설명합니다. 하나는 Jiri의 손재주를 사용하고 한 번에 여러 타일을 움직여 알고리즘을 개선 할 수 있다고 상상해보십시오. 이것은 Parberry가 증명했듯이 경로 길이를 n^3
에서 줄이지는 않지만 선행 항의 계수를 줄입니다.
이것은 compsci 숙제와 같은 냄새를 풍깁니다! –
꽤 일반적인 CompSci 숙제 문제 – monksy