크로스워드 풀이를 위한 가중 CSP 솔버 DrFill
초록
본 논문은 미국식 크로스워드 퍼즐을 가중 제약 만족 문제(Weighted CSP)로 변환하고, 변수·값 선택 휴리스틱, 제한 불일치 탐색(Limited Discrepancy Search) 변형, 사후 처리 및 파티셔닝 기법을 결합한 솔버 Dr.Fill을 소개한다. 브랜치‑앤‑바운드가 사후 처리와 충돌함을 확인하고 사용하지 않았으며, 실험 결과 Dr.Fill은 세계 상위 50여 팀 수준의 성능을 보였다.
상세 분석
Dr.Fill은 크로스워드 퍼즐을 “단일 가중 CSP”(Singly Weighted CSP) 형태로 모델링한다. 각 격자 셀은 변수이며, 가능한 알파벳 문자 집합이 도메인이 된다. 가중은 해당 단어가 사전·통계적 언어 모델에 얼마나 부합하는가에 따라 부여되며, 전체 퍼즐의 점수는 모든 변수에 할당된 가중의 합으로 정의된다. 이때 전통적인 제약 만족 문제와 달리 목표는 제약을 만족시키는 동시에 가중 합을 최대화하는 최적화 문제이다.
변수 선택 휴리스틱은 “가장 제한된 도메인”(MRV)과 “가장 높은 기대 가중”(Maximum Expected Weight)을 결합한다. 즉, 아직 할당되지 않은 셀 중에서 가능한 알파벳 수가 가장 적고, 동시에 해당 알파벳이 등장할 확률이 높은 셀을 우선적으로 선택한다. 값 선택 휴리스틱은 각 후보 알파벳에 대해 사전 빈도, 교차 단어와의 호환성, 그리고 전체 퍼즐에서의 가중 기여도를 종합한 점수를 계산해 내림차순으로 정렬한다.
검색 전략으로는 제한 불일치 탐색(LDS)의 변형을 사용한다. 기본적으로 가장 좋은 값 순서대로 탐색하되, 일정 깊이까지는 “불일치”(즉, 최선값이 아닌 선택)를 허용한다. 불일치 허용 횟수를 단계적으로 증가시키면서 탐색 범위를 넓히는 방식은 초기에는 고품질 해를 빠르게 찾고, 이후에는 더 넓은 해 공간을 탐색하도록 설계되었다.
Dr.Fill의 핵심 차별점은 사후 처리(post‑processing)와 파티셔닝(partitioning)이다. 사후 처리 단계에서는 현재 해에 대해 각 단어를 독립적으로 재배치하거나 교체하여 전체 가중을 향상시킬 수 있는지를 검사한다. 이는 로컬 최적해에 머무르는 것을 방지하고, 작은 변동만으로도 큰 점수 상승을 얻을 수 있게 한다. 파티셔닝은 퍼즐을 연결된 서브그리드(예: 독립적인 블록)로 분할해 각각을 별도 CSP로 해결한 뒤, 결과를 결합하는 방식이다. 이렇게 하면 탐색 공간이 크게 감소하고, 병렬 처리도 가능해진다.
브랜치‑앤‑바운드 기법은 전통적인 CSP 해결에 많이 쓰이지만, Dr.Fill에서는 사용되지 않았다. 실험적으로 바운드 계산이 사후 처리와 충돌하여 전체 성능을 저하시킨다는 것이 확인되었으며, 제한된 불일치 탐색과 사후 처리만으로도 충분히 높은 품질의 해를 얻을 수 있었다.
실험에서는 미국 크로스워드 퍼즐 토너먼트(ACPT)에서 제공된 실제 퍼즐을 사용했으며, Dr.Fill은 평균적으로 95% 이상의 정답률을 기록했다. 이는 당시 공개된 상위 50개의 솔버와 비교했을 때 비슷하거나 약간 높은 수준이며, 특히 제한된 시간(5분 이하) 내에 안정적인 결과를 도출한다는 점에서 실용성이 강조된다.
이 논문은 CSP 기반 퍼즐 해결에 가중 모델을 도입하고, 휴리스틱·탐색·사후 처리·분할을 통합한 프레임워크를 제시함으로써, 전통적인 제약 만족 기법이 최적화 문제와 결합될 때 얻을 수 있는 시너지 효과를 잘 보여준다.