젠 퍼즐 가든 문제의 NP 완전성 증명
초록
본 논문은 인기 퍼즐 게임인 Zen Puzzle Garden(ZPG)의 해답 존재 여부를 판단하는 문제가 NP‑complete임을 보인다. 먼저 문제를 다항식 시간 내에 검증할 수 있음을 보이고, 이후 Hamiltonian Path 문제로부터 다항식 시간 변환을 구성하여 NP‑hard임을 증명한다.
상세 분석
Zen Puzzle Garden은 격자판 위에 물, 돌, 잔디 등 다양한 타일이 배치된 퍼즐이다. 플레이어는 한 점에서 시작해 물 타일 위를 연속적으로 이동하면서 모든 잔디 타일을 한 번씩만 밟아야 한다. 이동은 직선 방향으로만 가능하고, 물 타일을 지나면 더 이상 뒤로 돌아갈 수 없으며, 돌 타일은 통과를 막는다. 이러한 규칙을 수학적으로 모델링하면, 주어진 격자와 시작점이 주어졌을 때 “모든 잔디 타일을 정확히 한 번 방문하는 경로가 존재하는가?”라는 결정 문제로 귀결된다.
먼저 이 문제는 NP에 속한다. 주어진 경로(즉, 이동 순서)를 다항식 길이의 문자열로 제시하면, 각 단계에서 현재 위치와 이동 방향을 검증함으로써 경로가 유효한지, 모든 잔디 타일을 정확히 한 번 방문했는지를 O(n) 시간에 확인할 수 있다. 따라서 해답이 주어졌을 때 다항식 시간 내에 검증이 가능하므로 NP에 포함된다.
NP‑hard성을 보이기 위해 저자들은 알려진 NP‑complete 문제인 Hamiltonian Path(또는 Hamiltonian Cycle) 문제를 ZPG로 변환한다. 변환 과정은 격자 내에 “게이트”, “곡선”, “분기” 등 네 종류의 기본 가젯을 설계하는데, 각각은 그래프의 정점과 간선을 모방한다. 예를 들어, 정점은 4방향으로 진입·출입이 가능한 ‘정점 가젯’으로 구현하고, 간선은 물 타일만으로 이루어진 ‘통로 가젯’으로 만든다. 각 가젯은 물 흐름(플레이어 이동)의 방향성을 강제하여, 플레이어가 한 번 지나간 뒤는 다시 돌아올 수 없게 만든다.
이러한 가젯들을 조합해 원래 그래프와 동형인 격자 구조를 만든 뒤, 시작점을 그래프의 임의의 정점에 대응시킨다. 이제 ZPG에서 모든 잔디 타일을 한 번씩 방문하는 경로가 존재한다는 것은, 원래 그래프에서 모든 정점을 한 번씩 방문하는 Hamiltonian Path가 존재한다는 것과 정확히 동치가 된다. 변환 과정은 정점과 간선 수에 비례하는 격자 크기로 수행되며, 다항식 시간 내에 이루어진다.
마지막으로, 가젯 설계가 올바르게 동작함을 보이기 위해 각 가젯 내부에서 가능한 이동 패턴을 exhaustive하게 분석한다. 특히, 정점 가젯에서는 진입 방향에 따라 출입 방향이 고정되며, 이는 그래프의 인접 관계를 정확히 재현한다. 또한, 물 타일이 연속된 경로는 뒤로 돌아갈 수 없으므로, 한 번 사용된 간선은 재사용되지 않아 Hamiltonian 경로의 “한 번만 방문” 제약을 만족한다. 이러한 논증을 통해 변환이 올바르고, ZPG가 NP‑hard임을 확정한다.
결과적으로 ZPG는 NP에 속하고 NP‑hard하므로 NP‑complete임이 증명된다. 이 결과는 퍼즐 설계자와 이론 컴퓨터 과학자 모두에게 중요한 의미를 가진다. 퍼즐 자체가 복잡도 이론의 대표적인 사례가 될 수 있음을 보여주며, 향후 유사한 격자 기반 퍼즐들의 복잡도 분석에 대한 토대를 제공한다.
댓글 및 학술 토론
Loading comments...
의견 남기기