1 / 17

How to Play Sudoku & Win

How to Play Sudoku & Win. Integer Programming Formulation of a Popular Game Sven Leyffer , Argonne, Feb. 15, 2005. (windoze powerpoint sumi painting style). 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.

paul2
Download Presentation

How to Play Sudoku & Win

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. How to Play Sudoku & Win Integer Programming Formulation of a Popular Game Sven 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.

  3. Solving Sudoku • Eliminate rows & cols from 3x3 box • E.g. eliminate 2 from 3x3 box:

  4. Solving Sudoku • Eliminate rows & cols from 3x3 box • E.g. eliminate 2 from 3x3 box: • Gives new 2

  5. Solving Sudoku • Eliminate rows & cols from 3x3 box • E.g. eliminate 2 from 3x3 box: • Gives new 2 • Continue …

  6. Solving Sudoku • Eliminate rows & cols from 3x3 box • E.g. eliminate 2 from 3x3 box: • Gives new 2 • Continue … • … fill other digits

  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

  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

  11. Sudokus Without Solutions • No solution • AMPL/CPLEX: • Infeasible constraints by presolve • Proof of non-existence of solution

  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?

  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 Thanks and Enjoy the Puzzles!

More Related