Ⅰ. 서론
전형적인 스도쿠 퍼즐(sudoku puzzle)은 9×9의 81개 빈칸을 3×3의 9개 블록으로 분할한 형태로 주어지며, 특정 셀에 존재하는 숫자를 실마리(clue)라 한다. 퍼즐을 푸는 규칙은 [1,9]의 아라비아 숫자가 행․열과 블록에 중복되지 않아야 한다.[1] 이를 숫자 실마리 스도쿠(number clue sudoku, NC-Sudoku)라 하자. NC-Sudoku의 파생 버전 중 하나인 살인자 스도쿠(killer sudoku puzzle, KS)는 실마리가 합(sum)으로 주어지며, 적용 규칙은 NC-Sudoku와 동일하다.[3] 이를 합 실마리 스도쿠(sum clue sudoku, SC-Sudoku) 또는 KS 라 하자. 이와 유사한 개념을 적용한 퍼즐로 수지코(연어알젓) 퍼즐(Sujiko puzzle)이 있다.
수지코 퍼즐은 3×3의 9개 빈 셀(a,b,c,d,e,f,g,h,i) 형태를 취하며, 기본적으로 주어지는 실마리는 4개 셀에 대한 합 실마리(Ⅰ,Ⅱ,Ⅲ,Ⅳ)가 중앙에 원으로 위치하며, 원 내부에 합의 숫자가 표기되어 있다. 즉, Ⅰ=a+b+d+e, Ⅱ=b+c+e+f, Ⅲ=d+ e+g+h, Ⅳ=e+f+h+i로 합 실마리 블록들 간의 교집합은Ⅰ∩Ⅱ={b,e}, Ⅰ∩Ⅲ={d,e}, Ⅱ∩Ⅳ={e,f}, Ⅲ∩Ⅳ={e,h}로 e는 모든 블록의 교집합(Ⅰ∩Ⅱ∩Ⅲ∩Ⅳ) 형태를 취한다. 추가적으로 주어지는 실마리는 숫자 실마리가 주어지는 경우의 NC-Sujiko와 상이한 크기의 블록에 대한 합 실마리가 주어지는 SC-Sujiko 형태로 구분된다.[4,5] 4개 셀 중앙에 원의 합 실마리를 고정된 합 실마리(fixed sum clue, FSC)라 하며, 가변적 크기의 블록에 관한 합 실마리를 가변적 합 실마리(variable sum clue, VSC)라 하자.
본 논문은 SC-Sujiko 퍼즐에 초점을 둔다. SC-수지코 퍼즐은 FSC와 VSC의 합 조건을 충족시키도록 3×3의 9개 빈 셀에 사전에 들어 있는 숫자 실마리 숫자(C)들을 제외한 아라비아 숫자들 [1,9]를 빈 셀에 넣는 퍼즐문제이다.[6]
NC-수지코 퍼즐(SCSP)은 9-C개의 빈 셀에 (9-C)!의 지수시간이 소요되는 가능한 경우 수 모두를 대입해보는 전수탐색 법(brute-force)이외에는 푸는 방법이 없을 정도로 NP-완전(NP-complete)라 할 수 있다. 반면에 SCSP는 숫자 실마리가 주어진 경우는 NCSP와 동일한 경우수가 존재하지만, 숫자 실마리가 없는 경우는 9!의 가능한 경우수가 존재한다. 따라서 NCSP에 비해 보다 풀기 어려운 문제가 SCSP라 할 수 있다.
본 논문에서는 SCSP를 다항시간 복잡도로 풀 수 있는 알고리즘을 제안한다. 2장에서는 스도쿠와 수지코 퍼즐에 관한 개념을 유사성과 상이성을 고찰해 본다. 3장에서는 공통 조합 숫자 알고리즘을 제안한다. 4장에서는 벤치마킹 실험 데이터를 대상으로 제안된 알고리즘의 적합성을 검증한다.
Ⅱ. 관련 연구와 문제점
그림 1에서는 스도쿠와 수지코의 차이를 사례 문제들을 대상으로 보여주고 있다. 수지코를 간략하게 설명하면 9×9 스도쿠를 3×3 스도쿠로 만든 스도쿠의 축소판이라 할 수 있다. (a)는 전형적인 9×9의 스도쿠 퍼즐 기판에 3×3 블록 9개가 있는 형태로 셀에 표기된 숫자들은 실마리(clue)를 의미한다. 여기서는 23개의 실마리(23-Clue)가 주어져 있으며 81-23=58개의 빈칸에 행, 열과 블록 내에 아라비아 숫자 [1,9]가 정확히 한번 씩만 존재하도록 퍼즐을 푼 결과는 우측 그림과 같다. (b)는 살인자 스도쿠로 전형적인 스도쿠의 9×9의 스도쿠 퍼즐 기판에 3×3의 9개 블록을 동일하게 취한다. 다만 차이점은 실마리가 숫자가 아닌 합(sum)으로 표기되어 있다는 점이다. (c)는 숫자 실마리 수지코 퍼즐을 보여주고 있다. 이는 3×3 기판에 아라비아 숫자 [1,9]를 넣는데 있어 4개 셀의 중앙에 위치한 원에 있는 합을 충족해야만 한다. 또한, 셀에는 숫자 실마리 C개가 존재하여 (9-C)!의 가능한 경우 수가 존재한다. (d)는 숫자 실마리 수지코와 동일한 형태의 기판에 고정된 원의 합 실마리가 주어지며, 차이점은 실마리 숫자 대신 가변 크기의 블록에 대한 합 실마리가 주어진다는 점이다. 직관적으로 볼 때 NCSujiko(NCSP)와 더불어 SC-Sujiko(SCSP)는 단지 9개 셀을 채우는 문제로 스도쿠에 비해 퍼즐을 푸는 것이 단순해 보이지만 실제로는 보다 어려운 점이 있다. 왜냐하면 최악의 경우 NCSP는 (9-C)!, SCSP는 9!의 가능한 경우 수가 존재하기 때문이다. 본 논문은 SCSP를 논한다. 지금까지는 SCSP와 관련한 연구 결과가 전무한 실정이다.
그림 1. 스도쿠와 수지코 퍼즐 문제
Fig. 1. Problems of Sudoku and Sujiko puzzle
Ⅲ. 공통 숫자 망 알고리즘
본 장에서 제안하는 알고리즘은 그림 2의 (a)와 (b)의 좌측과 같이 고정 합 실마리(FSC)의 각 빈 셀에 들어 갈 수 있는 4셀 합의 숫자 조합들 중에서 Ⅰ∩Ⅱ, Ⅰ∩Ⅲ, Ⅱ∩Ⅳ, Ⅲ∩Ⅳ, Ⅰ∩Ⅱ∩Ⅲ∩Ⅳ의 교집합 셀을 충족하는 공통 숫자들과 (b)의 우측과 같이 가변 합 실마리(VSC)와 의 교집합 셀의 공통 숫자를 충족하는 숫자 조합들을 선택하는 개념이다. 각 셀에 들어갈 수 있는 숫자 조합은 (c)와 같다. FSC는 셀 수가 ‘4’인 경우이며, VSC는 셀 수가 2,3,4 모두 적용될 수 있으며, 해당 셀 수와 합에 해당되는 숫자 조합이 빈 셀에 들어간다. 빈 셀에는 이들 숫자 조합 모두가 들어가는 것이 아니라 해당 숫자 조합의 합집합의 숫자 조합이 들어간다.
그림 2. 공통 숫자 망 알고리즘 개념
Fig. 2. Concept of Common combination number algorithm
실제로 수행되는 알고리즘 과정은 먼저, 빈 셀에 그림 2의 (b)를 충족하는 (c)의 숫자 조합만을 넣는 방식을 지양하고, 반대로 먼저 빈 셀에 [1,9] 아라비아 숫자 모두를 넣고, FSC, VSC의 가능한 숫자 조합의 합집합 숫자들(Ci)을 제외한 숫자들을 해당 블록에서 삭제하는 방법을 적용하였다. 즉, 하나의 셀에는 Ci∩Cj 만 남기며, FSC, VSC의 가능한 숫자 조합의 합집합 숫자들(Ci)은 FSC, VSC 블록의 Number Clue(NC)이면 포함(Inclusion, +), 블록 밖의 NC, Naked Pair(NP), Triple(NT), Quad(NQ)이면 제외(Exclusion, -)를 적용하였다. 다음으로 셀 후보 실마리를 축소하면서 단일 실마리 숫자가 들어있는 셀은 실마리를 확정하였다. 이를 위해 Naked Single(NS), Hidden Single(HS), NP, NT, NQ 존재 시 해당 숫자들을 다른 셀에서 삭제하고, 단일 숫자 조합 SC 존재 시 해당 숫자들을 다른 셀에서 삭제하였다. 만약 NP, NT만 존재하거나 더 이상 후보 숫자들을 단축시킬 수 없으면 그림 2의 (b)의 FSC+VSC의 교집합 셀의 숫자들이 들어가는 숫자 조합을 선택하는 공통숫자 망을 형성하였다. 제안된 알고리즘을 공통 숫자 망 알고리즘(common number network algorithm, CNNA)라 하며, 그림 3과 같이 수행된다.
그림 3. 공통 숫자 망 알고리즘
Fig. 3. Common number network algorithm
제안된 CNNA를 그림 1 (d)의 SCSP-1과 SCSP-2에 적용한 결과는 그림 4에 제시하였다.
그림 4. SCSP-1과 SCSP-2에 관한 CNNA
Fig. 4. CNNA for SCSP-1 and SCSP-2
SCSP-1과 SCSP-2는 CNNA의 Step 3의 유일(단일) 숫자가 존재하여 마지막의 FSC+VSC의 교집합 셀의 숫자가 들어 있는 숫자 조합 망을 형성하지 않고도 퍼즐을 풀 수 있었다.
Ⅳ. 실험 결과 및 분석
본 장에서는 그림 5의 실험 데이터들을 대상으로 3장에서 제안된 CNNA를 적용하여 본다.
그림 5. 실험 데이터
Fig. 5. Experimental data
그림 5의 실험 데이터들을 대상으로 제안된 CNNA를 적용한 결과는 그림 6에 제시하였다.
그림 6. 실험 데이터에 관한 CNNA
Fig. 6. CNNA for Experimental data
SCSP-9를 제외한 SCSP-3 ~ SCSP-8 모두 유일 숫자 셀이 더 이상 존재하지 않아 FSC+VSC의 교집합 셀의 숫자가 들어 있는 숫자 조합 망을 형성하는 교집합 셀의 숫자가 있는 숫자조합들을 선택하여 퍼즐을 풀 수 있었다.
Ⅴ. 결론
본 논문에서는 9!의 시행착오 법 이외에는 퍼즐을 푸는 방법이 알려져 있지 않은 합 실마리 수지코 퍼즐을 다항시간으로 풀 수 있는 알고리즘을 제안하였다. 합 실마리 수지코 퍼즐 문제는 숫자 실마리가 없는 경우가 전형적인 퍼즐 형태이다. 따라서 빈 셀에 들어갈 수 있는 후보 숫자 조합은 [1,9]의 아라비아 숫자 전체이다. 따라서 9개의 빈셀 모두에 [1,9]의 숫자를 넣는다. 다음으로 FSC의 합 숫자에 해당하는 4개 셀의 숫자 조합에 해당하는 숫자 조합의 합집합 숫자만을 남긴다. 다음으로 VSC에 대해서도 이를 적용한다. 이 시점에서 단일 숫자조합만을 가진 FSC 또는 VSC가 존재하면 해당 합 실마리 블록의 빈 셀에 들어갈 수 있는 후보 숫자들이 크게 단축될 수 있고, 이들 블록의 숫자를 다른 셀들에서 삭제한다. 더 이상 후보 숫자들을 줄일 수 없는 경우 마지막 방법으로 FSC+VSC의 교집합 셀의 숫자가 들어 있는 숫자 조합 망을 형성하였다.
References
- J. F. Crook, "A Pencil-and-Paper Algorithm for Solving Sudoku Puzzles," Notices of the American Mathematical Society, Vol. 56, No. 4, pp. 460-468, Apr. 2009.
- SureSolv, "Very Hard Sudoku Expert Level 5 Game 8 Easy Solution," https://suresolv.com/sudoku/very-hard-sudoku-expert-level-5-game-8-easy-solution, Retrieved Aug. 2023.
- Wikipedia, "Killer Sudoku," https://en.wikipedia.org/wiki/Killer_sudoku, Retrieved Aug. 2023.
- Solve Sujiko, "How to Solve Sujiko Puzzles," https://simetric.co.uk/sujiko/tips.htm, Retrieved Aug. 2023.
- Suko Sujiko, "Suko Sujiko," https://www.transum.org/software/Puzzles/Suko.asp, Retrieved Aug. 2023.
- Puzzler, "Sujiko," https://www.puzzler.com/puzzles-a-z/sujiko, Retrieved Aug. 2023.
- PuzzleMadness, "Daily Medium Suko Puzzle," https://puzzlemadness.co.uk/suko/medium, Aug. 2023.
- C. Vorderman, "Counting down to the launch of the Mail's Puzzles and Prizes pull-out, quiz queen Carol Vorderman shows you how to crack the game Suko," https://www.dailymail.co.uk/news/article-6926163/Quiz-queen-Carol-Vorderman-shows-crack-game-Suko.html, Apr. 2019.
- Olesure, "Generar puzzles Matematicos, sujiko, sujicoy suko en pdf.," https://olesur.com/recursos/generar-puzzles-matematicos-sujiko-sujico-y-suko-en-pdf/, Oct. 2018.