Một số vấn đề toán học ẩn chứa trong trò chơi SudokuMột số vấn đề toán học ẩn chứa trong trò chơi SudokuMột số vấn đề toán học ẩn chứa trong trò chơi SudokuMột số vấn đề toán học ẩn chứa trong trò chơi SudokuMột số vấn đề toán học ẩn chứa trong trò chơi SudokuMột số vấn đề toán học ẩn chứa trong trò chơi SudokuMột số vấn đề toán học ẩn chứa trong trò chơi SudokuMột số vấn đề toán học ẩn chứa trong trò chơi SudokuMột số vấn đề toán học ẩn chứa trong trò chơi SudokuMột số vấn đề toán học ẩn chứa trong trò chơi SudokuMột số vấn đề toán học ẩn chứa trong trò chơi SudokuMột số vấn đề toán học ẩn chứa trong trò chơi SudokuMột số vấn đề toán học ẩn chứa trong trò chơi SudokuMột số vấn đề toán học ẩn chứa trong trò chơi SudokuMột số vấn đề toán học ẩn chứa trong trò chơi Sudoku
MINISTRY OF EDUCATION AND TRAINING VIETNAM ACADEMY OF SCIENCE AND TECHNOLOGY GRADUATE UNIVERSITY OF SCIENCE AND TECHNOLOGY Nguyễn Thị Nga SOME MATHEMATICAL ISSUES BEHIND SUDOKU PUZZLES MASTER THESIS IN MATHEMATICS Hanoi - 2018 Confirmation This thesis was written on the basis of my research works carries out at Institute of Mathematics, Vietnam Academy of Science and Technology under the supervision of Dr Le Xuan Thanh All results of other authors that are used in this thesis are cited correctly September 12, 2018 The author Nguyen Thi Nga Acknowledgements This thesis was conducted and completed at the Institute of Mathematics, under the guidance of Dr Le Xuan Thanh By this occasion, I would like to express my gratitude and deep respect to Dr Le Xuan Thanh, the exemplary teacher who has spent a lot of time and effort to guide me through this thesis Thanks to conscientious guidance, my research skills have been growing up He introduced me to many seminars and conferences, as well as helped me a lot in enlarging my knowledge His clear and careful characteristics have a significant influence on me in conducting learning, researching, writing scientific documents He was the one who instilled on my passion for Applied Mathematics He is not only a master in advising students but also a very warm person in daily life I always receive sincere and effective advices from him on professional issues, as well as professional orientation in the future I sincerely thank Center for Postgraduate Training and Department of Numerical Analysis and Scientific Computing of Institute of Mathematics, Vietnam Academy of Science and Technology for creating favorable conditions for me to complete this thesis I express my gratitude to everyone from the Institute of Mathematics, who devoted themselves to teaching and creating favorable conditions for me to complete my master course I would also like to thank my friends for their companion and help I would like to say my heartfelt gratitude to my family for their understanding, patience, support during my time at the Institute of Mathematics Contents INTRODUCTION 2 SUDOKU ENUMERATION 2.1 Completing blocks B1 − B3 2.2 A simple heuristic enumeration method 2.3 An exact enumeration method 2.3.1 Lexicographical catalogue 2.3.2 Enumerating from catalogue 2.4 Conclusions 10 12 12 45 IP FORMULATIONS FOR SUDOKU 46 3.1 A binary linear programming formulation 47 3.2 An integer programming formulation 49 3.3 Conclusions 52 NUMERICAL EXPERIMENTS 4.1 Modeling by ZIMPL 4.1.1 ZIMPL model for (BLP ) 4.1.2 ZIMPL model for (N LIP ) 4.2 Numerical experiments 4.3 Conclusions CONCLUSIONS 53 54 54 57 59 61 62 Chapter INTRODUCTION Sudoku is a famous puzzle, which is original called Number Place In Japanese, Sudoku means “single number” In its well-known format, a Sudoku puzzle can be described as follows Give a grid consisting of × squares (cells), which can also be viewed as a composition of nine × blocks (so-called subgrids) The puzzle rules are: (1) each cell of grid must be filled by exactly one digit; (2) only digits from to can be filled in the grid; (3) each digit appears exactly once in each column, each row, and each × subgrid Usually, a Sudoku puzzle is provided with a partially complete grid, and the objective is to completely fill the grid A well-posed Sudoku puzzle, also called proper Sudoku, has exactly one solution Figure 1.1 gives an example of a standard × Sudoku puzzle and a solution for the puzzle 8 6 8 7 9 5 4 9 8 9 Figure 1.1: A Sudoku puzzle (left) and a solution for it (right) Howard Garns (March 2nd, 1905 - October 6th, 1989) is an American architect, is most likely considered as the father of the modern Sudoku He published the earliest known examples of modern Sudoku on Dell Magazines in 1979 In April 1984, the puzzle was introduced on the Japanese paper Monthly Nikolist The name of the puzzle in Japanese was Să uji wa dokushin ni Kagiru” (translated “the digits must be single”), and afterward was abbreviated to Sudoku by Maki Kaji - the president of Nikoli Co Ltd., a Japanese puzzle manufacturer Wayne Gould (born July 3rd 1945 in Hawera, New Zealand) devised a computer program to rapidly produce Sudoku puzzles Thanks to his efforts, Sudoku successfully appeared in a local US newspaper Then, in November 2004, The Times of London began featuring Sudoku The puzzle was rapidly spread to other newspapers as a regular feature Despite the simple rules, there are many non-trivial matters and challenging issues behind Sudoku puzzles These make Sudoku not only popular in daily life but also attractive to many mathematicians In [6], the authors proved a non-trivial result that the smallest number of clues in a proper × 9- Sudoku puzzle is 17 Concerning the complexity issue, it had been shown in [8] that solving Sudoku puzzles of general size n2 × n2 (with n ≥ 3) is NP-complete There are also a lots of variants of Sudoku with different sizes and/or additional constraints (see https://en.wikipedia.org/wiki/Glossary of Sudoku for more details) However, in this thesis we only consider Sudoku puzzles of the well-known form described above In addition to the theoretical issues, having efficient mathematical models as well as finding fast and accurate algorithms for solving Sudoku puzzles are also attractive topics of interest In many scheduling and timetabling problems, there are similar constraints to the ones of Sudoku So Sudoku is not only a typical problem in many mathematical specialities (such as combinatorics, complexity, combinatorial optimization, ) but also an important example in mathematical programming (in senses of both modelling and numerical solutions) The goal of thesis is to study some mathematical issues behind Sudoku puzzles We focus mainly on the problem of counting the number of Sudoku grids, and on how to model Sudoku puzzles as mathematical programs Apart from this chapter, this thesis is organized in more chapters Chapter is devoted to the problem of enumarating Sudoku In Chapter we present two integer programming models for solving Sudoku puzzles Chapter presents some numerical experiments of the mathematical models proposed in Chapter Chapter closes this thesis by some conclusions Chapter SUDOKU ENUMERATION The goal of this chapter is to compute the number, which is denoted by NS for convenience, of possible solutions for Sudoku Surprisingly, no general combinatorial formula for computing that number has been known until now In this chapter, based on the ideas in [2, 4], we give a complete enumeration method for computing NS For the sake of the enumeration method, we label the blocks of a Sudoku grid by B1 to B9 as shown in Figure 2.1 B1 B2 B3 B4 B5 B6 B7 B8 B9 Figure 2.1: Labels of blocks in Sudoku grid We first start with the number of ways to complete the first three blocks B1 − B3 Section 2.1 shows how to compute that number This gives the starting point for a simple heuristic method computing approximately the value of NS This method is presented in Section 2.2 Then in Section 2.3 we present an exact method to compute the number NS 2.1 Completing blocks B1 − B3 We say that a Sudoku grid is of canonical form if the top-left block B1 is filled as in Figure 2.2 Figure 2.2: Canonical block Let S9 be the group of permutations on the set of nine digits {1, , 9} We say that two completely filled Sudoku grids G1 and G2 are equivalent if G2 is obtained from G1 after applying a permutation f ∈ S9 , or shortly speaking, G2 = f (G1 ) Note that every non-canonical Sudoku grid is equivalent to a canonical Sudoku grid via some permutation in S9 Therefore, each canonical Sudoku grid is equivalent to |S9 | = 9! Sudoku grids In other words, if we denote by NC the number of canonical Sudoku grids, then NS = NC × 9! Now we concentrate on considering canonical Sudoku grids In the following, by {a, b, c} we indicate the elements a, b, c in any order, and (a, b, c) in the indicated order Since the top row of B1 is (1, 2, 3), there are two cases for the top row of block B2 • Case (Pure): It consists of either the second or the third row of B1 , i.e., either {4, 5, 6} or {7, 8, 9} • Case (Mixed): It consists of the three digits in the mixture of {4, 5, 6} and {7, 8, 9} More precisely, all possible top rows of blocks B2 and B3 are shown in Table 2.1 No Top row of B2 Top row of B3 {4, 5, 6} {7, 8, 9} {7, 8, 9} {4, 5, 6} {4, 5, 7} {6, 8, 9} {4, 5, 8} {6, 7, 9} {4, 5, 9} {6, 7, 8} {4, 6, 7} {5, 8, 9} {4, 6, 8} {5, 7, 9} {4, 6, 9} {5, 7, 8} {5, 6, 7} {4, 8, 9} 10 {5, 6, 8} {4, 7, 9} 11 {5, 6, 9} {4, 7, 8} 12 {6, 8, 9} {4, 5, 7} 13 {6, 7, 9} {4, 5, 8} 14 {6, 7, 8} {4, 5, 9} 15 {5, 8, 9} {4, 6, 7} 16 {5, 7, 9} {4, 6, 8} 17 {5, 7, 8} {4, 6, 9} 18 {4, 8, 9} {5, 6, 7} 19 {4, 7, 9} {5, 6, 8} 20 {4, 7, 8} {5, 6, 9} Case Pure Pure Mixed Mixed Mixed Mixed Mixed Mixed Mixed Mixed Mixed Mixed Mixed Mixed Mixed Mixed Mixed Mixed Mixed Mixed Table 2.1: Possible top rows of blocks B2 and B3 In the first pure case (No.1 in Table 2.1), blocks B2 and B3 can be completed together as in Figure 2.3 Since each set {a, b, c} corresponds to 3! = permutations of its elements and there are rows of blocks B2 , B3 , this leads to 66 different configurations of B2 , B3 The same result holds for the second pure case (No.2 in Table 2.1) 50 of these absolute terms are at most n2 − For the manner of solving Sudoku problems by using MIP solvers, the next step is to linearize these nonlinear constraints Note that each of such constraints is of the form |y| ≥ 1, and we know furthermore that y is an integer variable and |y| ≤ n2 − In order to linearize such constraint, we introduce two additional non-negative variables y + and y − to hold the positive and negative parts of y Furthermore, two additional binary variables a+ and a− are introduced as indicators for whether y is positive or negative Detail description of these additional variables is as follows y+ = y a+ = if y > 0, if y ≤ 0, y− = if y > 0, if y ≤ 0, −y a− = if y ≥ 0, if y < 0, if y < 0, if y ≥ Since |y| = y + + y − , our considering nonlinear constraint ≤ |y| ≤ n2 − 1, y ∈ Z can be linearized by the following integer program y+ − y− y+ + y− a+ ≤ y + a− ≤ y − a+ + a− y+, y− a+ , a− =y ≥1 ≤ (n2 − 1)a+ ≤ (n2 − 1)a− =1 ∈Z ∈ {0, 1} Thus, each nonlinear constraint in (3.10)-(3.12) can be linearized by using additional variables and linear constraints We come up with the following integer programming model for the Sudoku program: (SU DOKU − IP ) · xij i,j∈S (3.14) 51 subject to ∀ (i, j) ∈ F (3.15) ∀ i, j, k ∈ S, j < k (3.16) ∀ i, j, k ∈ S, j < k (3.17) ∀ i, j, k ∈ S, j < k (3.18) ∀ i, j, k ∈ S, j < k (3.19) ∀ i, j, k ∈ S, j < k (3.20) ∀ i, j, k ∈ S, j < k (3.21) =1 ∀ i, j, k ∈ S, j < k (3.22) ∈Z ∀ i, j, k ∈ S, j < k (3.23) ∈ {0, 1} ∀ i, j, k ∈ S, j < k (3.24) ∀ i, j, k ∈ S, i < k (3.25) ∀ i, j, k ∈ S, i < k (3.26) ∀ i, j, k ∈ S, i < k (3.27) ∀ i, j, k ∈ S, i < k (3.28) ∀ i, j, k ∈ S, i < k (3.29) ∀ i, j, k ∈ S, i < k (3.30) =1 ∀ i, j, k ∈ S, i < k (3.31) ∈Z ∀ i, j, k ∈ S, i < k (3.32) ∈ {0, 1} ∀ i, j, k ∈ S, i < k (3.33) xij = g(i, j) − xij − xik = u+ ijk − uijk + u− ijk + uijk u+ ijk u− ijk u− ijk + bijk + b− ijk + uijk , u− ijk + bijk , b− ijk u+ ijk ≥1 ≥ b+ ijk ≤ (n − 1)b+ ijk ≥ b− ijk ≤ (n − 1)b− ijk + − xij − xkj = vijk − vijk − + vijk + vijk + vijk − vijk − vijk − c+ ijk + cijk + − vijk , vijk − c+ ijk , cijk + vijk ≥1 ≥ c+ ijk ≤ (n − 1)c+ ijk ≥ c− ijk ≤ (n − 1)c− ijk + − xnp−n+i,nq−n+j − xnp−n+k,nq−n+l = wijkl − wijkl + − wijkl + wijkl ≥1 + wijkl ≥ d+ ijkl ∀ p, q, i, j ∈ N, ni + j < nk + l (3.34) ∀ p, q, i, j ∈ N, ni + j < nk + l (3.35) ∀ p, q, i, j ∈ N, ni + j < nk + l (3.36) + wijkl ≤ (n2 − 1)d+ ijkl ∀ p, q, i, j ∈ N, ni + j < nk + l (3.37) − wijkl ≥ d− ijkl ∀ p, q, i, j ∈ N, ni + j < nk + l (3.38) − wijkl ≤ (n2 − 1)d− ijkl ∀ p, q, i, j ∈ N, ni + j < nk + l (3.39) − d+ ijkl + dijkl = ∀ p, q, i, j ∈ N, ni + j < nk + l (3.40) 52 + − wijkl , wijkl ∈Z − d+ ijkl , dijkl ∈ {0, 1} xij ∈ S ∀ p, q, i, j ∈ N, ni + j < nk + l (3.41) ∀ p, q, i, j ∈ N, ni + j < nk + l (3.42) ∀ i, j ∈ S (3.43) Constraints (3.16)-(3.24) are for linearizing constraints (3.10) Similarly, constraints (3.25)-(3.33) correspond to constraints (3.11), while constraints (3.34)-(3.42) linearize constraints (3.12) In total, this model uses O(n6 ) variables and O(n6 ) constraints 3.3 Conclusions This chapter presents two integer linear programming formulations for solving Sudoku puzzles of general size n2 ×n2 The first formulation (BLP ) uses n6 three-index binary variables and O(n4 ) constraints The second formulation is a linearization version of a nonlinear integer program with a set of alldifferent constraints This formulation uses O(n6 ) two-index integer variables and O(n6 ) linear constraints 53 Chapter NUMERICAL EXPERIMENTS The main aim of this chapter is to have some numerical evaluation of the two mathematical formulations presented in Chapter For that purpose, we use ZIMPL (Zuse Institute Mathematical Programming Language, see [5] for details) to have mathematical programming models for these formulations Then we use SCIP (Solving Constraint Integer Programming, see [1] for details) as a solver for solving the numerical instances of the obtained models As shown in http://scip.zib.de/, SCIP is currently one of the fastest non-commercial solvers for mixed integer programming (MIP) and mixed integer nonlinear programming (MINLP) In Section 4.1 we show ZIMPL models for the two formulations The ZIMPL models help us to transform the problem of solving Sudoku puzzles into the ‘language’ of an IP solver Then, in Section 4.2, we present some numerical experiments of using these two ZIMPL models in solving different instances of Sudoku puzzles Based on the obtained numerical results, we compare and evaluate the performance (in sense of running time of the MIP solver) of the two models 54 4.1 Modeling by ZIMPL In this section, we present the two ZIMPL models corresponding the two mathematical formulations (BLP ) and (N LIP ) given in Chapter Section 4.1.1 is for ZIMPL model of (BLP ), while Section 4.1.2 is for the one corresponding to (N LIP ) 4.1.1 ZIMPL model for (BLP ) The formulation (BLP ), which is presented in Section 3.1, can be coded by ZIMPL as shown in Code Code 2: ZIMPL model for (BLP ) # A ZIMPL model to solve Sudoku using binary variables # based on the formulation ( BLP ) # Copyright @ Nguyen Thi Nga # Parameter defining the size of Sudoku puzzle ( n ^2 x n ^2) param n := 3; 10 # Auxiliary sets s e t N := {1 n }; s e t S := {1 n * n }; 11 12 13 14 # Import Sudoku clues from input data file # G := {( i , j , k ) | k is already filled in the cell (i , j ) } s e t G := { read " Clues dat " as " " comment " # "}; 15 16 17 18 19 # Variables # x [i , j , k ] = if k is filled in the cell (i , j ) , # = otherwise var x [ S * S * S ] binary ; 20 21 22 23 # # Modeling objective minimize objective : sum in S * S * S : * x [i , j , k ]; 55 24 # # Modeling constraints 25 26 27 28 29 # For the already - filled cells in the grid subto clues : f o r a l l in G x [i , j , k ] == 1; 30 31 32 33 34 # Each cell in the grid is filled by exactly one value of k in S subto cells : f o r a l l in S * S sum in S : x [i , j , k ] == 1; 35 36 37 38 39 40 # In each column of the grid , each value of k in S appears # exactly once subto columns : f o r a l l in S * S sum in S : x [i , j , k ] == 1; 41 42 43 44 45 # In each row of the grid , each value of k in S appears exactly # once subto rows : f o r a l l in S * S sum in S : x [i , j , k ] == 1; 46 47 48 49 50 51 # In each block of the grid , each value of k in S appears # exactly once subto blocks : f o r a l lin N * N * S sum in N * N : x [ n *p - n +i , n *q - n +j , k ] == 1; 56 8 6 Figure 4.1: A Sudoku puzzle Note that in this ZIMPL model, the input Sudoku clues are given in a separated data file named “Clues.dat” The data stored in this file is organized in tuples of form < i, j, k > ∈ S × S × S Each of such tuples is an ordered vector (i, j, k) encoding information of a cell with clue, in which i is the index of the cell’s row, j is the index of the cell’s columns, and k is the value already filled in the cell (i, j) In Code 3, we give an illustration of the data file, which corresponds to the instance of Sudoku puzzle given in Figure 4.1 Code 3: ZIMPL data file Clues.dat corresponds to the Sudoku instance in Figure 4.1 10 11 12 13 14 # This file clue ) # Row 1 2 3 3 4 encodes Sudoku clues in form of ( row , column , Column 8 6 Clue 1 57 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 5 6 7 7 8 9 4.1.2 9 9 8 ZIMPL model for (N LIP ) We now discuss the integer programming formulations proposed in Section 3.2 In principle, we can use ZIMPL to describe the integer linear program (SU DOKU − IP ) However, this would lead to a long and complicated ZIMPL code Fortunately, ZIMPL provides a special function named vabs that could be used to model the absolute value of a variable This helps us to obtain a much simpler ZIMPL code corresponding to the integer nonlinear program (N LIP ), as shown in Code The process of linearizing the related constraints is implicitly done by ZIMPL, and results explicitly in the output lp file Code 4: ZIMPL model for (N LIP ) # A ZIMPL model to solve Sudoku using integer variables # based on the formulation ( NILP ) # Copyright @ Nguyen Thi Nga # Parameter defining the size of Sudoku puzzle ( n ^2 x n ^2) param n := 3; # Auxiliary sets s e t N := {1 n }; 58 10 s e t S := {1 n * n }; 11 12 # # Import Sudoku clues from input data file 13 14 15 # F is the set of cells with clues s e t F := { read " Clues dat " as " " comment " # "}; 16 17 18 # given (i , j ) is the clue given in cell (i , j ) param given [ F ] := read " Clues dat " as " n " comment " # "; 19 20 21 22 # # Variables # x [i , j ] = the value filled in cell (i , j ) var x [ S * S ] i n t e g e r >= = 1; 39 40 41 42 43 44 # Different cells in the same column of the grid have different # assigned values subto columns : f o r a l l in S * S * S with i < k vabs ( x [i , j ] - x [k , j ]) >= 1; 45 46 47 # Different cells in the same block of the grid have different # assigned values 59 48 49 50 51 subto blocks : f o r a l l
in N * N f o r a l l in N * N * N * N with n * i + j < n * k + l vabs ( x [ n *p - n +i , n *q - n + j ] - x [ n *p - n +k , n *q - n + l ]) >= 1; 4.2 Numerical experiments To test the two ZIMPL models presented in Section 4.1, we created 10 sets of data files corresponding to different instances of Sudoku puzzle of usual size × The tested instances are chosen from app Sudoku version 4.0.3 (copyright DotFinger Games) on Google Play Each of such data sets consists of 10 tested instances having the same number of clues The number of clues varies from 17 to 26 Thus, each data set corresponds to a level of difficulty of Sudoku puzzles As an IP solver, we used SCIP We set a time limit of 30 minutes for solving each tested instances All tests were run on a computer with Dual-Core × 2.0 GHz and GB RAM In all our experiments, feasible solutions could be found by SCIP within the given time limit For each tested Sudoku instance and each of the two ZIMPL models, we reported the running time (in seconds) of SCIP in solving the instance by using the model Then, for each proposed ZIMPL model and each choice of data set, we computed the average running time of SCIP on the 10 tested instances in the data set Table 4.1 reports the average running times of SCIP corresponding to different data sets and different ZIMPL models Note that each data set is distinguished by the common number of clues in its instance The second column (resp., the third column) of the table show the average running times of SCIP corresponding to the use of (BLP ) formulation (resp., (N LIP ) formulation) 60 Number of Clues (BLP ) (N LIP ) 17 0.066 469.968 18 0.078 244.203 19 0.068 220.08 20 0.078 182.422 21 0.116 207.19 22 0.057 169.933 23 0.049 110.296 24 0.073 103.989 25 0.05 54.813 26 0.063 74.841 Table 4.1: Performance of the two IP formulations (in sense of SCIP running time in seconds) As shown in Table 4.1, (BLP ) formulation is extremely efficient in solving Sudoku puzzles By using this formulation, all chosen test instances were solved within less than second! The reported results also show that the efficiency of this formulation is independent of difficulty level of Sudoku puzzles In the opposite direction, it took much longer time for solving each tested instance by using (N LIP ) formulation than by using (BLP ) formulation This is perhaps due to the fact that the linearized version of (N LIP ) formulation has much more variables than (BLP ) formulation (the former formulation uses O(n6 ) variables and O(n6 ) constraints, while the latter formulation uses n6 variables and O(n4 ) constraints) Furthermore, the average running time of SCIP tends to increase when we increase the difficulty level of the puzzles (or equivalently, when we decrease the number of clues given in the puzzles) Thus, the efficiency of (N LIP ) formulation is depended on the difficulty level of Sudoku puzzles 61 4.3 Conclusions In this chapter, we present ZIMPL models for the two integer programming formulations (BLP ) and (N LIP ) discussed in Chapter We tested the models on different instances of Sudoku puzzles (of size × 9) It follows from our numerical experiments that the formulation (BLP ) is the better choice for solving Sudoku puzzles It outperforms the formulation (N LIP ) in sense of solver running time, and it is insensitive with the number of clues in the puzzles 62 Chapter CONCLUSIONS This chapter summarizes the main work in this thesis We also discuss some possibilities for our future work on the topic of Sudoku puzzles This thesis presents some mathematical issues behind Sudoku puzzles We focused on the problem of enumerating Sudoku grids of size × 9, gave two different integer programming formulations for the problem of solving Sudoku puzzles, and evaluated the performance of these two formulations In Chapter 2, we discussed the problem of counting the number of Sudoku grids of size × A heuristic method shown that this number is about 6657084616885512582463.488 with an error of 0.2% An exact method with the help of computer shown that the number of Sudoku grids is exactly 6670903752021072936960 In Chapter 3, we presented two integer programming formulations for the problem of solving Sudoku puzzles of general size n2 × n2 One formulation uses n6 three-index binary variables and O(n4 ) linear constraints The other formulation bases on a linearization technique applied on alldifferent constraints, which in turn has O(n6 ) two-index integer variables and O(n6 ) linear constraints Chapter presented two ZIMPL models of the formulations proposed in Chapter Numerical experiments on different instances of Sudoku puzzles of size × shown that the formulation with threeindex binary variables is very efficient in sense of solver running time, 63 and insensitive with the number of clues, while the other formulation is not For future work, we may focus on studying some variants of Sudoku puzzles How to generate proper Sudoku puzzles is also an interesting topic that we would like to study 64 Reference [1] T Achterberg Constraint Integer Programming PhD Dissertation, Technische Universităat Berlin, 2007 [2] B Felgenhauer and F Jarvis Mathematics of Sudoku I Technical report, January 25, 2006 [3] H Garns Number Place Dell Pencil Puzzles and Word Games, 16:6, 1979 [4] K Y Lin Number of Sudokus Journal of Recreational Mathematics, 33(2):120–124, 2004 [5] T Koch Rapid Mathematical Programming PhD Dissertation, Technische Universităat Berlin, 2004 [6] G McGuire, B Tugemann, and G Civario There Is No 16Clue Sudoku: Solving the Sudoku Minimum Number of Clues Problem via Hitting Set Enumeration Experimental Mathematics, 23(2):190–217, 2014 [7] A Schrijver Theory of Linear and Integer Programming John Wiley and Sons, 1998 [8] T Yato and T Seta Complexity and Completeness of Finding Another Solution and Its Application to Puzzles IEICE TRANSACTIONS on Fundamentals of Electronics, Communications and Computer Sciences, E86-A(5), 1052–1060, 2003 ... canonical Sudoku grid via some permutation in S9 Therefore, each canonical Sudoku grid is equivalent to |S9 | = 9! Sudoku grids In other words, if we denote by NC the number of canonical Sudoku. .. subgrid Usually, a Sudoku puzzle is provided with a partially complete grid, and the objective is to completely fill the grid A well-posed Sudoku puzzle, also called proper Sudoku, has exactly... variants of Sudoku with different sizes and/or additional constraints (see https://en.wikipedia.org/wiki/Glossary of Sudoku for more details) However, in this thesis we only consider Sudoku puzzles