Download presentation
Presentation is loading. Please wait.
Published byQuentin O’Neal’ Modified over 9 years ago
1
How to Play Sudoku & Win Integer Programming Formulation of a Popular Game Sven LeyfferSven Leyffer, Argonne, Feb. 15, 2005 (windoze powerpoint sumi painting style)
2
Sudoku Rules Given initial data Fill digits 1-9 into boxes such that Every digit 1-9 appears in every row, column, and 3x3 box. Works for letters, names etc. 1 6 3 8 2 3 9 7 1 6 7 8 9 4 2 4 9 9 2 5 1 4 6 2 9 4 7 6 5 7 6 3
3
Solving Sudoku Eliminate rows & cols from 3x3 box E.g. eliminate 2 from 3x3 box: 1 6 3 8 2 3 9 7 1 6 7 8 9 4 2 4 9 9 2 5 1 4 6 2 9 4 7 6 5 7 6 3
4
Solving Sudoku Eliminate rows & cols from 3x3 box E.g. eliminate 2 from 3x3 box: Gives new 2 1 6 3 8 2 3 9 7 1 6 7 8 9 4 2 2 4 9 9 2 5 1 4 6 2 9 4 7 6 5 7 6 3
5
Solving Sudoku Eliminate rows & cols from 3x3 box E.g. eliminate 2 from 3x3 box: Gives new 2 Continue … 1 6 3 2 8 2 3 9 7 1 6 7 8 9 4 2 2 4 9 9 2 5 1 4 6 2 9 4 7 6 5 7 6 3
6
Solving Sudoku Eliminate rows & cols from 3x3 box E.g. eliminate 2 from 3x3 box: Gives new 2 Continue … … fill other digits 1 6 3 2 8 2 3 9 2 7 1 6 7 8 9 4 2 2 4 9 9 2 5 1 4 6 2 9 4 2 7 6 5 7 6 2 3
7
Solving Sudoku Eliminate rows & cols from 3x3 box E.g. eliminate 2 from 3x3 box: Gives new 2 Continue … … fill other digits Fill 3x3 boxes 1 6 3 2 8 2 3 4 9 5 2 7 1 6 7 8 9 4 2 2 4 9 9 2 5 1 4 6 2 9 4 2 7 6 5 7 6 2 3
8
Solving Sudoku by Integer Optimization 0-1 variables model digit assignment & linear equations model rules … gives integer linear program (ILP) NP-complete (graph coloring) problem (6,670,903,752,021,072,936,960 sols) Solve using ILP solvers: CPLEX, MINTO See ~leyffer/sudoku/ for AMPL models
9
Branch-and-Bound Solver Solve continuous relaxation: [0,1] Branch on non- integral variable: Two new probs: Set y=1 or y=0 Continue until all nodes explored
10
Solution to Simple Example Solver: CPLEX Simple Problem: Time: 0 Nodes: 0 … AMPL presolve Challenging Problem Time: 0.03 seconds Nodes: 0 … integral LP soln 1 7 5 4 9 6 3 2 8 8 6 2 3 7 1 4 9 5 4 9 3 8 5 2 7 1 6 7 1 8 9 4 3 5 6 2 2 5 4 1 6 8 9 3 7 9 3 6 7 2 5 1 8 4 6 2 9 5 3 4 8 7 1 3 4 1 2 8 7 6 5 9 5 8 7 6 1 9 2 4 3
11
Sudokus Without Solutions No solution AMPL/CPLEX: Infeasible constraints by presolve Proof of non- existence of solution 1 6 3 8 2 3 8 9 7 1 6 7 8 9 4 2 4 9 9 2 5 1 4 6 2 9 4 7 6 5 7 6 3
12
Sudokus With Multiple Solutions Many solution AMPL/MINTO: Find first solution Integer cuts to remove solution Resolve to find new solution Stop when infeasible Soln at root node what ’ s the secret? 1 6 3 2 6 7 9 2 9 5 1 4 6 9 7 6 7 3
13
AMPL ’ s Primal Presolve Transform problem to smaller/easier equivalent problem Remove fixed variables Remove constraints that express variable bounds Iteratively tighten bounds on variables, using Gauss-Seidel Todd has experience with NCP presolve!
14
MINTO ’ s Primal Heuristics Find solution early … reduce tree-search Probing: tentatively set binaries to 0 or 1 Rounding & feasibility pump LP relaxation: solution x … round to r(x) Solve LP min dist(y,r(x)) subject to Ax=b LP solution y … round to r(y) & repeat Heuristics: genetic algorithms, et al.
15
Integer Optimization Applications Crew scheduling Machine scheduling Reactor core reload: Max fuel efficiency Subject to safety & diffusion PDE Find reloading schedule … integer & nonlinear
16
Constrained Logic Programming CLP origins: AI & logic CLP: declarative language to formulate logical problems, scheduling etc CLP: combines constraints with logic & constraint satisfaction CLP allows tailored solutions/rules CHIP, ECLiPSe, GNU Prolog, IF/Prolog, ILOG, Koalog, MOzart, and SICStus
17
References: Wikipedia: en.wikipedia.org/wiki/Sudoku Th. Koch: How to Solve Sudoku … M.J. Chlond: IP Modeling: Su Doku (05) W. Shortz: Sudoku – 100 wordless puzzles Fourer & Gay: AMPL ’ s Primal Presolve (93) Sudoku Programmers Forum
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.