An Integer Programming Model for the Sudoku Problem

Sudoku is the recent craze in logic puzzles. Players must fill in an n × n matrix, which contains some given entries, so that each row, column, and m × m submatrix contains each integer 1 through n exactly once. Two issues associated with these puzzles interest us mathematically: puzzle solution and puzzle creation. A Sudoku puzzle can be solved by creating a feasibility problem where the goal is to find at least one feasible solution to the puzzle. We present a binary integer linear program to solve this feasibility problem. Further, such an approach is extended to variations on the traditional Sudoku puzzle. In addition, we speculate as to how Sudoku puzzles are created, and provide several theorems for generating many new puzzles from one given original puzzle. Exercises and challenges problems that use principles from optimization, combinatorics, linear algebra, and computer science are presented for students.

[1]  Stanley E. Bammel,et al.  The number of 9 × 9 latin squares , 1975, Discrete Mathematics.