☰
↑
←
→
🔍
TOC
Constraint Logic Programming
»
Table of Contents
ON THIS PAGE
Part I — What constraints are, and why we want them
Slide 2 — Constraints
Where this came from
Slides 3–5 — A comparison with classic LP
Herbrand: you have been doing constraint programming all along
Prolog arithmetic: where it breaks
Constraint arithmetic
Why bother — and what it costs
Slides 6–10 — Search space reduction, by example
(a) Generate and test in Prolog
(b) The same program, with constraints — and no smarts
(c) and (d) Constrain and generate
What it is actually worth
Exercises
Slide 11 — Constraint systems: CLP(𝒳)
The formal statement
Slides 12–14 — Constraint domains
Slide 15 — CLP(𝒳) programs
Part II — CLP(ℛ) in practice
Slide 16 — A case study: CLP(ℛ)
Exercises
Slide 17 — Linear equations
Slide 18 — Systems of linear equations
Exercises
Slide 19 — Non-linear equations
Slide 20 — Fibonacci revisited (standard Prolog)
Slide 21 — Fibonacci revisited (CLP(ℛ))
Exercises
Slides 22–23 — Mortgage calculation
Exercises
Slides 24–28 — Analog RLC circuits
Part III — Puzzles, search, and finite domains
Slide 29 — The N queens problem
Slide 30 — The N queens problem in Prolog
Slide 31 — Search space in Prolog
Slides 32–33 — The N queens problem in CLP(ℛ)
Slides 34–36 — What the constraints actually look like
Slide 37 — Finite domains (I)
Slide 38 — Finite domains (II)
Slide 39 — Finite domains (III): domain, labeling and minimize
Slide 40 — A classic: SEND + MORE = MONEY
Exercises
Slides 41–42 — A project management problem
Slides 43–45 — Two variants
Exercises
Slide 46 — N queens with finite domains
Exercises
Part IV — Other domains, and the wider picture
Slide 47 — CLP(𝓕𝓣), otherwise known as logic programming
Slides 48–49 — CLP(𝓦𝓔) and CLP(𝓦𝓔, 𝒬)
Slide 50 — Summarizing
Slide 51 — Complex constraints
Slide 52 — Other primitives
Slide 53 — Implementation: satisfiability
Slide 54 — Implementation: backtracking
Slides 55–56 — Implementation: extensibility, and attributed variables
Slide 57 — Programming tips
Slide 58 — CLP systems
Slides 59–60 — The original systems, and the current ones
Slide 61 — Origins, and other instances
Table of Contents