Presentation is loading. Please wait.

Presentation is loading. Please wait.

How to Play Sudoku & Win Integer Programming Formulation of a Popular Game Sven LeyfferSven Leyffer, Argonne, Feb. 15, 2005 (windoze powerpoint sumi painting.

Similar presentations


Presentation on theme: "How to Play Sudoku & Win Integer Programming Formulation of a Popular Game Sven LeyfferSven Leyffer, Argonne, Feb. 15, 2005 (windoze powerpoint sumi painting."— Presentation transcript:

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


Download ppt "How to Play Sudoku & Win Integer Programming Formulation of a Popular Game Sven LeyfferSven Leyffer, Argonne, Feb. 15, 2005 (windoze powerpoint sumi painting."

Similar presentations


Ads by Google