Problem Solved! Using Logic Programming to Find Answers
summary
Logic programming claims to let a program declare relations and let the engine infer missing values; the demo shows Ruby options (miniKanren/kanren gems, Prolog bindings) and a homebrew Russell prototype that takes Sudoku and n‑Queens as constraints and finds solutions instead of hand‑coding search. Under the hood is constraint propagation plus unification substitution list (a hash of variable bindings). Complexity still explodes (rows ≈ 9! choices) but the prototype solver does produce correct Sudoku solutions.
AI-written summary · about
chapters (24)
- 0:00Intro
- 1:22Law School Admissions Test
- 2:07Bridge
- 3:11Programming
- 4:11Creative Machines
- 6:03Atbash Cipher
- 6:54Function Chaining
- 8:07Hiding Process
- 10:40Functional thinking
- 10:51Relational thinking
- 12:35n Queens
- 16:06Brute Force
- 16:44Constraint Procedure
- 20:24Declarative Sudoku
- 22:18Sudoku - Core
- 23:07Functional Completeness
- 24:05has_unique_contents(collection)
- 27:33Substitution List
- 28:26Unification - the algorithm
- 29:34Constraint Propagation in Ruby
- 30:36Unification in Ruby
- 32:56Disjunction
- 40:02Expert Systems
- 41:03Music Exercises
related talks
01h 24mIntroduction to Constraint Logic Programming
34mConstraint Logic Propagation Conflict Spreadsheets
41mIntroduction to Constraint Programming
43m4 Programming Paradigms in 45 Minutes
23mFrom SMT to ASP: Solver-Based Approaches to Solving Datalog Synthesis-as-Rule-Se...
41mOptimizing Relational Programs I
41m4 Programming Paradigms in 45 minutes
13mGeocode/R
