Ⅰ. 서론
전형적인 스도쿠 퍼즐(sudoku puzzle)은 9×9의 81개 빈칸을 3×3의 9개 블록으로 분할한 형태로 1부터 9까지의 9개 아라비아 숫자를 각각 9개 씩 빈칸에 넣을 수 있으며, 사전에 빈칸을 채운 실마리(clue)가 주어진 상태에서 각 행, 열과 블록에 [1, 2, ⋯, 9]의 숫자가 중복되지 않아야 하는 규칙을 충족하도록 나머지 빈칸을 채우는 퍼즐문제이다.[1] 이를 숫자 실마리 스도쿠(number clue sudoku, NC-Sudoku)라 하자. 반면에 살인자 스도쿠(killer sudoku)는 실마리가 합(sum)으로 주어지며, 적용 규칙은 NC-Sudoku와 동일하다.[3] 이를 합 실마리 스도쿠(sum clue sudoku, SC-Sudoku)라 하자. 이와 유사한 개념을 적용한 퍼즐로 수지코 퍼즐(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)라 하자. 수지코는 FSC와 VSC의 합 조건을 충족시키도록 3×3의 9개 빈 셀에 사전에 들어 있는 숫자 실마리 숫자(ㅊ)들을 제외한 1에서 9까지의 아라비아 숫자들을 넣는 퍼즐이다.[6]
본 논문은 NC-Sujiko(NCSP)에 초점을 맞춘다. NCSP를 푸는 방법은 9-C개의 빈 셀에 (9-C)!의 지수시간이 소요되는 가능한 경우 수 모두를 대입해 보는 전수탐색 법(brute-force)이외에는 푸는 방법이 없을 정도로 NP-완전(NP-complete)라 할 수 있다.
본 논문에서는 FSC를 충족하는 빈 셀에 들어갈 수 있는 숫자 조합들의 교집합을 이용하는 다항시간 복잡도의 정확한 해를 구하는 알고리즘을 제안한다. 2장에서는 스도쿠와 수지코 퍼즐에 관한 개념을 유사성과 상이성을 고찰해 본다. 3장에서는 숫자 조합들의 교집합을 이용하는 알고리즘을 제안한다. 4장에서는 벤치마킹 실험 데이터를 대상으로 제안된 알고리즘의 적합성을 검증한다.
Ⅱ. 관련 연구와 문제점
그림 1에서는 스도쿠와 수지코의 차이를 사례 문제들을 대상으로 보여주고 있다. (a)는 전형적인 9×9의 스도쿠 퍼즐 기판에 3×3 블록 9개가 있는 형태로 셀에 표기된 숫자들은 실마리(clue)를 의미한다. 여기서는 23개의 실마리(23-Clue)가 주어져 있으며 81-23=58개의 빈칸에 행, 열과 블록 내에 아라비아 숫자 [1,9]가 정확히 한번 씩만 존재하도록 퍼즐을 푼 결과는 우측 그림과 같다.
그림 1. 스도쿠와 수지코 퍼즐 문제
Fig. 1. Problems of Sudoku and Sujiko puzzle
(b)는 살인자 스도쿠로 전형적인 스도쿠의 9×9의 스도쿠 퍼즐 기판에 3×3의 9개 블록을 동일하게 취한다. 다만 차이점은 실마리가 숫자가 아닌 합(sum)으로 표기되어 있다는 점이다. (c)는 숫자 실마리 수지코 퍼즐을 보여주고 있다. 이는 3×3 기판에 아라비아 숫자 [1,9]를 넣는데 있어 4개 셀의 중앙에 위치한 원에 있는 합을 충족해야만 한다. 또한, 셀에는 숫자 실마리 C개가 존재하여 (9-C)!의 가능한 경우 수가 존재한다. (d)는 숫자 실마리 수지코와 동일한 형태의 기판에 고정된 원의 합 실마리가 주어지며, 차이점은 실마리 숫자 대신 가변 크기의 블록에 대한 합 실마리가 주어진다는 점이다. 직관적으로 볼 때 NC-Sujiko와 더불어 SC-Sujiko는 단지 9개 셀을 채우는 문제로 스도쿠에 비해 퍼즐을 푸는 것이 단순해 보이지만 실제로는 보다 어려운 점이 있다. 왜냐하면 최악의 경우 NC-Sujiko는 (9-C)!, SC-Sujiko는 9!의 가능한 경우 수가 존재하기 때문이다. 따라서 지금까지는 이와 관련한 연구 결과가 거의 없는 실정이다.
Ⅲ. 실마리 숫자 조합 교집합 알고리즘
본 장에서는 그림 2와 같이 각 빈 셀에 들어 갈 수 있는 4셀 합의 숫자 조합들 중에서 Ⅰ∩Ⅱ, Ⅰ∩Ⅲ, Ⅱ∩Ⅳ, Ⅲ∩Ⅳ, Ⅰ∩Ⅱ∩Ⅲ∩Ⅳ의 교집합을 충족하는 공통 숫자들을 가지고 있으며, 독립집합인 a,c,g,i의 별개의 숫자들을 갖는 숫자조합들을 선정하는 알고리즘이다. 또한 빈 셀에 들어갈 숫자 조합(combination of numbers)은 SC인 Ⅰ, Ⅱ, Ⅲ, Ⅳ의 합이 커버하는 4개 셀 블록에 대해 표로 제시하였다.
그림 2. 실마리 숫자 조합의 교집합 충족 알고리즘 개념
Fig. 2. Concept of Clue combination number intersection algorithm
본 장에서 제안되는 알고리즘은 빈 셀에 [1,9]의 아라비아 숫자를 넣고, 숫자 실마리의 행과 열에서 해당 숫자를 삭제한다. 또한, 숫SC의 가능한 숫자 조합의 합집합 숫자들(Ci)을 제외한 숫자들을 해당 블록에서 삭제하여 각 빈 셀에 후보 숫자들을 최소화 시킨 초기 해를 얻는다. 초기 해에 대해 스도쿠의 행, 열과 블록에 관한 후보 숫자 축소 방법을 수지코에서는 블록에 대해 Naked Single(NS), Hidden Single(HS), Naked Pair(NP), Naked Triple(NT), Naked Quad(NQ)가 존재하면 이 블록과 독립인 셀들에서 해당 숫자들을 삭제한다. 만약 유일 숫자 셀이 존재하면 해당 셀의 실마리 숫자를 확정한다. 만약 유일 숫자 셀이 존재하지 않으면 모든 SC들을 충족시키는 교집합 숫자조합을 선택한다.
제안된 알고리즘을 실마리 숫자 조합 교집합 알고리즘(clue combination number intersection algorithm, CCNIA)라 하며, 그림 3과 같이 수행된다.
그림 3. 실마리 숫자 조합 교집합 알고리즘
Fig. 3. Clue combination number intersection algorithm
제안된 CCNIA를 그림 1 (c)의 NCSP-1에 적용한 결과는 그림 4에 제시하였다.
그림 4. NCSP-1에 관한 CCNIA
Fig. 4. CCNIA for NCSP-1
숫자 실마리와 고정 합 실마리를 충족하는 숫자들을 빈 셀에 표기한 결과 {12,12}의 드러난 쌍(naked Pair)이 존재하여 다른 셀들에서 ‘12’ 숫자 조합을 삭제하여 d=8, f=3이 확정되었다. 여기서 합 실마리 17과 15는 유일 숫자 조합을 가져 해당 숫자 조합을 다른 빈 셀들에서 삭제하였다. 그 결과 D=8, F=3의 Naked single(NS)가 존재하였으며, 18 합 실마리의 경우 가능한 숫자 조합은 1458로 유일하게 존재하는 후보 실마리가 존재하여 f=1, h=4가 확정되었다. 이로 인해 b=2, I=7이 확정되었다.
Ⅳ. 실험 결과 및 분석
본 장에서는 그림 5와 그림 6의 실험 데이터들을 대상으로 3장에서 제안된 CCNIA를 적용하여 본다.
그림 5. 실험 데이터-1
Fig. 5. Experimental data-1
그림 6. 실험 데이터-2
Fig. 6. Experimental data-2
그림 5와 6의 실험 데이터들을 대상으로 제안된 CCNIA를 적용한 결과는 그림 7에 제시하였다.
그림 7. 실험 데이터에 관한 CCNIA
Fig. 7. CCNIA for Experimental data
본 논문에서 거론된 52개의 실험 데이터 모두에서 CCNIA는 퍼즐을 푸는데 성공하였다.
세부적으로는 NCSP-1을 비롯하여 44개 데이터에서 유일 숫자 셀이 존재하여 퍼즐을 풀 수 있었으며, NCSP-3, -9, -13, -14, -15, -25, -33과 –34의 8개 데이터에 대해서는 유일 숫자 셀이 더 이상 존재하지 않아 (9-C)!의 시행착오 법 경우 수 대신에 단 1회의 SC 숫자 조합들 간의 교집합으로 퍼즐을 풀 수 있었다.
Ⅴ. 결론 및 추후 연구과제
본 논문에서는 (9-C)!의 시행착오 법 이외에는 퍼즐을 풀 수 없는 수지코 퍼즐을 다항시간으로 풀 수 있는 알고리즘을 제안하였다.
제안된 방법은 빈 셀에 들어갈 수 있는 후보 숫자 조합을 표기하고, 스도쿠에 적용된 방법인 NS, HS, NP, NT와 NQ가 존재하는 SC 블록 이외의 셀들에서 해당 숫자들을 삭제하여 후보 숫자들을 단순화 시켰다. 52개 데이터 중에서 44개(84.61%)가 이 방법으로 퍼즐을 풀 수 있었다. 나머지 8개 데이터(15.38%)는 더 이상 후보 숫자들을 축소할 수 없어 시행착오 법 대신에 SC의 교집합 숫자 조합을 선택하는 방법으로 단 1회로 해를 구하였다.
본 논문은 숫자 실마리 수지코 퍼즐 문제에 특화된 알고리즘을 제안하였다. 추후 숫자 실마리가 주어지지 않고 고정 합 실마리와 가변 합 실마리가 주어진 합 실마리 수지코 퍼즐을 다항시간으로 풀 수 있는 알고리즘을 연구할 예정이다.
참고문헌
- 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/puzzlesa-z/sujiko, Retrieved Aug. 2023.
- Gistofthegrist, "Puzzles III | gistofthegrist - WordPress.com," https://gistofthegrist.wordpress.com/2014/02/07/puzzles-iii/, Retrieved Aug. 2023.
- Wikipedia, "Sujiko," https://en.wikipedia.org/wiki/Sujiko, Retrieved Aug. 2023.
- O. L. C. S. Magalhaes, "Sujiko 50 copias fv," https://es.slideshare.net/OtvioSales/sujiko-50-cpias-fv?ref=&smtNoRedir=1, Retrieved Aug. 2023.
- T. Muneer and S. Ivanova, "From Solving Mathematical Puzzles to Analysing Complex Engineering Problems: Games and Puzzles," Excel-VBA, pp. 15-32, May. 2022, https://doi.org/10.1007/978-3-030-94085-0_2
- T. Muneer and J. Usher, "Teaching Computer Programming Skills: A Stimulating Approach," Scottish Mathematical Council Journal, 45-52, 1991.
- Keston Primary School, "Higher Maths Stars," https://www.kestonprimary.org.uk/wp-content/uploads/2020/05/Maths-higher-maths-stars.pdf, Retrieved Aug. 2023.
- Quizpump, "Time for Some Sujiko," https://m.facebook.com/quizbump/photos/a.312638672650542/731348834112855/?type=3&_rdr, Retrieved Aug. 2023.
- Recursos Educativos, "Generar puzzles Matematicos, sujiko, sujico y suko en pdf," https://olesur.com/recursos/generar-puzzles-matematicos-sujiko-sujicoy-suko-en-pdf/, Oct. 2018.
- MATEMOCION, "Rompecabezas matematicos con numeros," https://culturacientifica.com/2020/10/21/rompecabezas-matematicos-con-numeros/, Retrieved Aug. 2023.
- CEMC Waterloo, "Grade 6 Math Circles - Logic Puzzles, Brain Teasers and Math Games," Centre for Education in Mathematics and Computing, University of Waterloo, Oct. 2017.