컴퓨터로 풀이하는 페그 솔리테어 전략
초록
본 논문은 33구 교차형 보드와 15구 삼각형 보드에서 시작하는 페그 솔리테어를 컴퓨터로 해결하는 방법을 제시한다. 승리 가능한 보드 상태를 빠르게 판별하기 위한 키 보드 집합을 정의하고, 이를 이용해 중앙 게임의 전체 해답 수를 40,861,647,040,079,968가지로 계산한다. 또한, 죽음 보드(더 이상 한 개의 페그로 끝낼 수 없는 상태)에 도달하는 최소 단계도 분석한다.
상세 분석
이 논문은 페그 솔리테어를 그래프 이론과 비트 연산을 활용해 효율적으로 탐색하는 방법을 체계적으로 제시한다. 먼저 보드의 각 구멍을 비트 하나에 매핑하여 전체 보드 상태를 32비트(33구 보드) 혹은 16비트(15구 보드) 정수로 표현한다. 이렇게 하면 한 번의 정수 연산으로 이동 가능 여부와 점프 결과를 빠르게 계산할 수 있다. 논문은 두 단계의 탐색 알고리즘을 구분한다. 첫 번째는 전통적인 깊이 우선 탐색(DFS)으로, 모든 가능한 점프 시퀀스를 재귀적으로 탐색해 목표 상태(한 개의 페그)까지 도달하는 경로를 찾는다. 이때 백트래킹을 통해 이미 방문한 상태를 재방문하지 않도록 하여 탐색 공간을 크게 줄인다. 두 번째는 “승리 보드 집합”(winning board set)을 미리 계산해 두는 방법이다. 이는 역방향 탐색으로, 목표 상태에서 역점프를 적용해 가능한 이전 상태들을 모두 생성하고, 이를 해시 테이블에 저장한다. 결과적으로 15구 삼각형 보드에서는 437개의 핵심 상태만을 저장하면 모든 시작 공백(한 구멍이 비어 있는 경우)에서 승리 가능 여부를 O(1) 시간에 판단할 수 있다. 반면 33구 교차형 보드에서는 839,536개의 핵심 상태가 필요하지만, 이 역시 메모리 상에 적재하면 실시간으로 플레이어의 선택이 죽음 보드로 이어지는지를 즉시 경고할 수 있다.
또한 논문은 승리 보드들을 정점으로, 가능한 점프를 방향성 간선으로 하는 유향 그래프를 구성한다. 이 그래프는 DAG(Directed Acyclic Graph) 형태이며, 각 정점의 진입 차수와 출입 차수를 분석해 전체 해답 수를 동적 계획법(DP)으로 누적한다. 구체적으로, 위상 정렬 후 각 정점에 대해 “이 정점까지 도달하는 경로 수”를 저장하고, 최종적으로 시작 상태(전체 구멍이 채워진 상태에서 하나만 비어진 경우)에서 목표 상태까지의 경로 수를 합산한다. 이 과정에서 모듈러 연산 없이 64비트 정수만으로도 4×10^16 규모의 해답을 정확히 계산할 수 있음을 보여준다.
마지막으로 논문은 “죽음 보드”(dead board)의 정의와 탐지 방법을 제시한다. 죽음 보드는 현재 상태에서 가능한 모든 점프를 수행해도 결국 한 개의 페그로 끝낼 수 없는 상태를 의미한다. 이를 판별하기 위해서는 현재 상태가 승리 보드 집합에 포함되는지 여부만 확인하면 된다. 또한, 특정 점프가 죽음 보드로 이어지는 최소 단계 수를 BFS(너비 우선 탐색)로 역방향 탐색해 미리 계산함으로써, 플레이어에게 위험한 움직임을 사전에 경고할 수 있다. 이러한 기술은 실시간 인터랙티브 게임 구현에 직접 적용 가능하며, 기존의 수작업 풀이보다 수백 배 빠른 응답 속도를 제공한다.
댓글 및 학술 토론
Loading comments...
의견 남기기