~/talk

Solving Problems Declaratively

links:none on file
slides:none on file

Models a Y-pentomino cover as an exact-cover matrix and runs three Java engines from Clojure: Tarantella using dancing links, Rolling Stones on SAT4J, and Loco on Choco. Dancing links finds the 10x10 (20 pieces) and a 15x15 (45 pieces) cover and enumerates all solutions (15x15 in ~10 minutes versus a naive Clojure backtracker still running after 24+ hours). SAT solver finds one solution faster on 15x15 and handles “exactly N” and symmetry constraints; constraint solver enables coloring and optimization but runs slower.

AI-written summary · about

  1. 0:00Intro
  2. 0:39The Puzzle
  3. 3:15Exact Cover Problem
  4. 4:02Doubly-Linked List
  5. 4:54Exact Cover Example (Knuth, 2000)
  6. 5:07Dancing Links Knuth
  7. 6:05Implementation
  8. 7:13Introducing Tarantella
  9. 8:16Using Tarantella
  10. 10:24Solving Y Cover with Dancing Links
  11. 12:07Declarative Model 41: Exact Cover
  12. 12:49Our Next Model: Boolean Satisfiability
  13. 14:33Introducing Rolling Stones
  14. 15:38How do SAT solvers like SAT4j work?
  15. 15:58Rolling Stones example
  16. 16:53Encoding constraints on number of true variables
  17. 18:02Solving Y Cover with Rolling Stones
  18. 19:18Timing Tests
  19. 21:05Rotational symmetry
  20. 21:49Exactly half the pieces have reflective symmetry
  21. 22:50Declarative Model #2: Boolean Satisfiability
  22. 23:22Interlude
  23. 24:33Our Next Model: Constraint Programming
  24. 25:19Introducing Loco
  25. 26:13How do constraint programming solvers work?
  26. 26:37Solving SAT problems in Loco
  27. 27:20Solving Y Cover in Loco
  28. 29:49Three-color Y Cover
  29. 31:47Declarative Model #3: Constraint Programming
  30. 32:18Conclusion
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.