geoff gordon - carnegie mellon school of computer science · the waltz algorithm one of the...
TRANSCRIPT
![Page 1: Geoff Gordon - Carnegie Mellon School of Computer Science · The Waltz algorithm One of the earliest examples of a computation posed as a CSP. The Waltz algorithm is for interpreting](https://reader033.vdocuments.us/reader033/viewer/2022041806/5e54df9b0a1eaf6a12403cdd/html5/thumbnails/1.jpg)
Planning and roboticsGeoff Gordon
![Page 2: Geoff Gordon - Carnegie Mellon School of Computer Science · The Waltz algorithm One of the earliest examples of a computation posed as a CSP. The Waltz algorithm is for interpreting](https://reader033.vdocuments.us/reader033/viewer/2022041806/5e54df9b0a1eaf6a12403cdd/html5/thumbnails/2.jpg)
A search problem
• 3-coloring
![Page 3: Geoff Gordon - Carnegie Mellon School of Computer Science · The Waltz algorithm One of the earliest examples of a computation posed as a CSP. The Waltz algorithm is for interpreting](https://reader033.vdocuments.us/reader033/viewer/2022041806/5e54df9b0a1eaf6a12403cdd/html5/thumbnails/3.jpg)
Other important search problems
• Minesweeper (image courtesy Andrew Moore)
“Minesweeper” CSP
V = { v1 , v2 , v3 , v4 , v5 , v6 , v7 , v8 }, D = { B (bomb) , S (space) }
C = { (v1,v2) : { (B , S) , (S,B) } ,(v1,v2,v3) : { (B,S,S) , (S,B,S) , (S,S,B)},...}
0 0
0 0
0 0
1
1
1
211
v1
v2
v3
v4
v5v6v7v8
v1
v2
v3
v4
v5v6
v7
v8
The Waltz algorithm
One of the earliest examples of a computation posed as a CSP.
The Waltz algorithm is for interpreting line drawings of solid polyhedra.
Adjacent intersections impose constraints on each other. Use CSP to find a unique set of labelings. Important step to “understanding” the image.
Look at all intersections.
What kind of intersection could thisbe? A concave intersection of three
faces? Or an external convex intersection?
Waltz Alg. on simple scenes
Assume all objects:
• Have no shadows or cracks• Three-faced vertices• “General position”: no junctions change with small
movements of the eye.
Then each line on image is one of the following:
• Boundary line (edge of an object) (<) with right hand of arrow denoting “solid” and left hand denoting “space”
• Interior convex edge (+)• Interior concave edge (-)
+
+++
18 legal kinds of junctions
Given a representation of the diagram, label each junction in one of the above manners.
The junctions must be labelled so that lines are labelled consistently at both ends.
Can you formulate that as a CSP? FUN FACT : Constra int Propagat ion a lways works perfec t ly .
+
+
+
++
+
+
+
++
-
---
--
-
---
-
-
![Page 4: Geoff Gordon - Carnegie Mellon School of Computer Science · The Waltz algorithm One of the earliest examples of a computation posed as a CSP. The Waltz algorithm is for interpreting](https://reader033.vdocuments.us/reader033/viewer/2022041806/5e54df9b0a1eaf6a12403cdd/html5/thumbnails/4.jpg)
• Sudoku
http://www.cs.qub.ac.uk/~I.Spence/SuDoku/SuDoku.html
Other important search problems
![Page 5: Geoff Gordon - Carnegie Mellon School of Computer Science · The Waltz algorithm One of the earliest examples of a computation posed as a CSP. The Waltz algorithm is for interpreting](https://reader033.vdocuments.us/reader033/viewer/2022041806/5e54df9b0a1eaf6a12403cdd/html5/thumbnails/5.jpg)
Other important search problems
![Page 6: Geoff Gordon - Carnegie Mellon School of Computer Science · The Waltz algorithm One of the earliest examples of a computation posed as a CSP. The Waltz algorithm is for interpreting](https://reader033.vdocuments.us/reader033/viewer/2022041806/5e54df9b0a1eaf6a12403cdd/html5/thumbnails/6.jpg)
• Scheduling (e.g., of factory production)
• Facility location
• Circuit layout
• Multi-robot planning
Other important search problems
![Page 7: Geoff Gordon - Carnegie Mellon School of Computer Science · The Waltz algorithm One of the earliest examples of a computation posed as a CSP. The Waltz algorithm is for interpreting](https://reader033.vdocuments.us/reader033/viewer/2022041806/5e54df9b0a1eaf6a12403cdd/html5/thumbnails/7.jpg)
Propositional logic
George Boole1815–1864
![Page 8: Geoff Gordon - Carnegie Mellon School of Computer Science · The Waltz algorithm One of the earliest examples of a computation posed as a CSP. The Waltz algorithm is for interpreting](https://reader033.vdocuments.us/reader033/viewer/2022041806/5e54df9b0a1eaf6a12403cdd/html5/thumbnails/8.jpg)
The meaning of truth
• Model:
• Valid:
• Satisfiable (SAT):
(a ∨ b ∨ c) ∧ (b ∨ -d)(a ∨ -a)
![Page 9: Geoff Gordon - Carnegie Mellon School of Computer Science · The Waltz algorithm One of the earliest examples of a computation posed as a CSP. The Waltz algorithm is for interpreting](https://reader033.vdocuments.us/reader033/viewer/2022041806/5e54df9b0a1eaf6a12403cdd/html5/thumbnails/9.jpg)
Ex: planninginit: have(cake)
goal: have(cake), eaten(cake)
eat(cake):
pre: have(cake)
eff: -have(cake), eaten(cake)
bake(cake):
pre: -have(cake)
eff: have(cake)
![Page 10: Geoff Gordon - Carnegie Mellon School of Computer Science · The Waltz algorithm One of the earliest examples of a computation posed as a CSP. The Waltz algorithm is for interpreting](https://reader033.vdocuments.us/reader033/viewer/2022041806/5e54df9b0a1eaf6a12403cdd/html5/thumbnails/10.jpg)
have
¬eaten
eat
have
¬eateneaten
¬haveeat
have
¬eateneaten
¬have
bake
Plan graph
![Page 11: Geoff Gordon - Carnegie Mellon School of Computer Science · The Waltz algorithm One of the earliest examples of a computation posed as a CSP. The Waltz algorithm is for interpreting](https://reader033.vdocuments.us/reader033/viewer/2022041806/5e54df9b0a1eaf6a12403cdd/html5/thumbnails/11.jpg)
Planning as logic
![Page 12: Geoff Gordon - Carnegie Mellon School of Computer Science · The Waltz algorithm One of the earliest examples of a computation posed as a CSP. The Waltz algorithm is for interpreting](https://reader033.vdocuments.us/reader033/viewer/2022041806/5e54df9b0a1eaf6a12403cdd/html5/thumbnails/12.jpg)
have
¬eaten
eat
have
¬eateneaten
¬haveeat
have
¬eateneaten
¬have
bake
Plan search
![Page 13: Geoff Gordon - Carnegie Mellon School of Computer Science · The Waltz algorithm One of the earliest examples of a computation posed as a CSP. The Waltz algorithm is for interpreting](https://reader033.vdocuments.us/reader033/viewer/2022041806/5e54df9b0a1eaf6a12403cdd/html5/thumbnails/13.jpg)
have
¬eaten
eat
have
¬eateneaten
¬haveeat
have
¬eateneaten
¬have
bake
Plan search
![Page 14: Geoff Gordon - Carnegie Mellon School of Computer Science · The Waltz algorithm One of the earliest examples of a computation posed as a CSP. The Waltz algorithm is for interpreting](https://reader033.vdocuments.us/reader033/viewer/2022041806/5e54df9b0a1eaf6a12403cdd/html5/thumbnails/14.jpg)
have
¬eaten
eat
have
¬eateneaten
¬haveeat
have
¬eateneaten
¬have
bake
Plan search
![Page 15: Geoff Gordon - Carnegie Mellon School of Computer Science · The Waltz algorithm One of the earliest examples of a computation posed as a CSP. The Waltz algorithm is for interpreting](https://reader033.vdocuments.us/reader033/viewer/2022041806/5e54df9b0a1eaf6a12403cdd/html5/thumbnails/15.jpg)
have
¬eaten
eat
have
¬eateneaten
¬haveeat
have
¬eateneaten
¬have
bake
Plan search
![Page 16: Geoff Gordon - Carnegie Mellon School of Computer Science · The Waltz algorithm One of the earliest examples of a computation posed as a CSP. The Waltz algorithm is for interpreting](https://reader033.vdocuments.us/reader033/viewer/2022041806/5e54df9b0a1eaf6a12403cdd/html5/thumbnails/16.jpg)
have
¬eaten
eat
have
¬eateneaten
¬haveeat
have
¬eateneaten
¬have
bake
Plan search
![Page 17: Geoff Gordon - Carnegie Mellon School of Computer Science · The Waltz algorithm One of the earliest examples of a computation posed as a CSP. The Waltz algorithm is for interpreting](https://reader033.vdocuments.us/reader033/viewer/2022041806/5e54df9b0a1eaf6a12403cdd/html5/thumbnails/17.jpg)
have
¬eaten
eat
have
¬eateneaten
¬haveeat
have
¬eateneaten
¬have
bake
Plan search
![Page 18: Geoff Gordon - Carnegie Mellon School of Computer Science · The Waltz algorithm One of the earliest examples of a computation posed as a CSP. The Waltz algorithm is for interpreting](https://reader033.vdocuments.us/reader033/viewer/2022041806/5e54df9b0a1eaf6a12403cdd/html5/thumbnails/18.jpg)
have
¬eaten
eat
have
¬eateneaten
¬haveeat
have
¬eateneaten
¬have
bake
Plan search
![Page 19: Geoff Gordon - Carnegie Mellon School of Computer Science · The Waltz algorithm One of the earliest examples of a computation posed as a CSP. The Waltz algorithm is for interpreting](https://reader033.vdocuments.us/reader033/viewer/2022041806/5e54df9b0a1eaf6a12403cdd/html5/thumbnails/19.jpg)
SAT is general
• S. A. Cook (1971) proved that many useful search problems are “equivalent” to SAT
• showed how to simulate a computer running “guess & check” search w/ (very complicated, but still poly-size) SAT problem
• Equivalently, SAT is exactly as hard (in theory) as other search problems
• In practice: SAT & MILP (below) go a long way
![Page 20: Geoff Gordon - Carnegie Mellon School of Computer Science · The Waltz algorithm One of the earliest examples of a computation posed as a CSP. The Waltz algorithm is for interpreting](https://reader033.vdocuments.us/reader033/viewer/2022041806/5e54df9b0a1eaf6a12403cdd/html5/thumbnails/20.jpg)
Working with logic210 Chapter 7. Logical Agents
(! ! ") " (" ! !) commutativity of !(! # ") " (" # !) commutativity of #
((! ! ") ! #) " (! ! (" ! #)) associativity of !((! # ") # #) " (! # (" # #)) associativity of #
¬(¬!) " ! double-negation elimination
(! $ ") " (¬" $ ¬!) contraposition
(! $ ") " (¬! # ") implication elimination
(! % ") " ((! $ ") ! (" $ !)) biconditional elimination
¬(! ! ") " (¬! # ¬") de Morgan
¬(! # ") " (¬! ! ¬") de Morgan
(! ! (" # #)) " ((! ! ") # (! ! #)) distributivity of ! over #(! # (" ! #)) " ((! # ") ! (! # #)) distributivity of # over !
Figure 7.11 Standard logical equivalences. The symbols !, ", and # stand for arbitrarysentences of propositional logic.
chapter, we will see algorithms that are much more efficient in practice. Unfortunately, every
known inference algorithm for propositional logic has a worst-case complexity that is expo-
nential in the size of the input. We do not expect to do better than this because propositional
entailment is co-NP-complete. (See Appendix A.)
Equivalence, validity, and satisfiability
Before we plunge into the details of logical inference algorithms, we will need some addi-
tional concepts related to entailment. Like entailment, these concepts apply to all forms of
logic, but they are best illustrated for a particular logic, such as propositional logic.
The first concept is logical equivalence: two sentences ! and " are logically equivalentLOGICALEQUIVALENCE
if they are true in the same set of models. We write this as ! % ". For example, wecan easily show (using truth tables) that P ! Q and Q ! P are logically equivalent; other
equivalences are shown in Figure 7.11. They play much the same role in logic as arithmetic
identities do in ordinary mathematics. An alternative definition of equivalence is as follows:
for any two sentences ! and ",
! " " if and only if ! |= " and " |= ! .
(Recall that |= means entailment.)
The second concept we will need is validity. A sentence is valid if it is true in allVALIDITY
models. For example, the sentence P # ¬P is valid. Valid sentences are also known as
tautologies—they are necessarily true and hence vacuous. Because the sentence True is trueTAUTOLOGY
in all models, every valid sentence is logically equivalent to True.What good are valid sentences? From our definition of entailment, we can derive the
deduction theorem, which was known to the ancient Greeks:DEDUCTIONTHEOREM
For any sentences ! and ", ! |= " if and only if the sentence (! $ ") is valid.
(Exercise 7.4 asks for a proof.) We can think of the inference algorithm in Figure 7.10 as
α, β, γ are arbitrary formulas
210 Chapter 7. Logical Agents
(! ! ") " (" ! !) commutativity of !(! # ") " (" # !) commutativity of #
((! ! ") ! #) " (! ! (" ! #)) associativity of !((! # ") # #) " (! # (" # #)) associativity of #
¬(¬!) " ! double-negation elimination
(! $ ") " (¬" $ ¬!) contraposition
(! $ ") " (¬! # ") implication elimination
(! % ") " ((! $ ") ! (" $ !)) biconditional elimination
¬(! ! ") " (¬! # ¬") de Morgan
¬(! # ") " (¬! ! ¬") de Morgan
(! ! (" # #)) " ((! ! ") # (! ! #)) distributivity of ! over #(! # (" ! #)) " ((! # ") ! (! # #)) distributivity of # over !
Figure 7.11 Standard logical equivalences. The symbols !, ", and # stand for arbitrarysentences of propositional logic.
chapter, we will see algorithms that are much more efficient in practice. Unfortunately, every
known inference algorithm for propositional logic has a worst-case complexity that is expo-
nential in the size of the input. We do not expect to do better than this because propositional
entailment is co-NP-complete. (See Appendix A.)
Equivalence, validity, and satisfiability
Before we plunge into the details of logical inference algorithms, we will need some addi-
tional concepts related to entailment. Like entailment, these concepts apply to all forms of
logic, but they are best illustrated for a particular logic, such as propositional logic.
The first concept is logical equivalence: two sentences ! and " are logically equivalentLOGICALEQUIVALENCE
if they are true in the same set of models. We write this as ! % ". For example, wecan easily show (using truth tables) that P ! Q and Q ! P are logically equivalent; other
equivalences are shown in Figure 7.11. They play much the same role in logic as arithmetic
identities do in ordinary mathematics. An alternative definition of equivalence is as follows:
for any two sentences ! and ",
! " " if and only if ! |= " and " |= ! .
(Recall that |= means entailment.)
The second concept we will need is validity. A sentence is valid if it is true in allVALIDITY
models. For example, the sentence P # ¬P is valid. Valid sentences are also known as
tautologies—they are necessarily true and hence vacuous. Because the sentence True is trueTAUTOLOGY
in all models, every valid sentence is logically equivalent to True.What good are valid sentences? From our definition of entailment, we can derive the
deduction theorem, which was known to the ancient Greeks:DEDUCTIONTHEOREM
For any sentences ! and ", ! |= " if and only if the sentence (! $ ") is valid.
(Exercise 7.4 asks for a proof.) We can think of the inference algorithm in Figure 7.10 as
210 Chapter 7. Logical Agents
(! ! ") " (" ! !) commutativity of !(! # ") " (" # !) commutativity of #
((! ! ") ! #) " (! ! (" ! #)) associativity of !((! # ") # #) " (! # (" # #)) associativity of #
¬(¬!) " ! double-negation elimination
(! $ ") " (¬" $ ¬!) contraposition
(! $ ") " (¬! # ") implication elimination
(! % ") " ((! $ ") ! (" $ !)) biconditional elimination
¬(! ! ") " (¬! # ¬") de Morgan
¬(! # ") " (¬! ! ¬") de Morgan
(! ! (" # #)) " ((! ! ") # (! ! #)) distributivity of ! over #(! # (" ! #)) " ((! # ") ! (! # #)) distributivity of # over !
Figure 7.11 Standard logical equivalences. The symbols !, ", and # stand for arbitrarysentences of propositional logic.
chapter, we will see algorithms that are much more efficient in practice. Unfortunately, every
known inference algorithm for propositional logic has a worst-case complexity that is expo-
nential in the size of the input. We do not expect to do better than this because propositional
entailment is co-NP-complete. (See Appendix A.)
Equivalence, validity, and satisfiability
Before we plunge into the details of logical inference algorithms, we will need some addi-
tional concepts related to entailment. Like entailment, these concepts apply to all forms of
logic, but they are best illustrated for a particular logic, such as propositional logic.
The first concept is logical equivalence: two sentences ! and " are logically equivalentLOGICALEQUIVALENCE
if they are true in the same set of models. We write this as ! % ". For example, wecan easily show (using truth tables) that P ! Q and Q ! P are logically equivalent; other
equivalences are shown in Figure 7.11. They play much the same role in logic as arithmetic
identities do in ordinary mathematics. An alternative definition of equivalence is as follows:
for any two sentences ! and ",
! " " if and only if ! |= " and " |= ! .
(Recall that |= means entailment.)
The second concept we will need is validity. A sentence is valid if it is true in allVALIDITY
models. For example, the sentence P # ¬P is valid. Valid sentences are also known as
tautologies—they are necessarily true and hence vacuous. Because the sentence True is trueTAUTOLOGY
in all models, every valid sentence is logically equivalent to True.What good are valid sentences? From our definition of entailment, we can derive the
deduction theorem, which was known to the ancient Greeks:DEDUCTIONTHEOREM
For any sentences ! and ", ! |= " if and only if the sentence (! $ ") is valid.
(Exercise 7.4 asks for a proof.) We can think of the inference algorithm in Figure 7.10 as
![Page 21: Geoff Gordon - Carnegie Mellon School of Computer Science · The Waltz algorithm One of the earliest examples of a computation posed as a CSP. The Waltz algorithm is for interpreting](https://reader033.vdocuments.us/reader033/viewer/2022041806/5e54df9b0a1eaf6a12403cdd/html5/thumbnails/21.jpg)
Proofs
![Page 22: Geoff Gordon - Carnegie Mellon School of Computer Science · The Waltz algorithm One of the earliest examples of a computation posed as a CSP. The Waltz algorithm is for interpreting](https://reader033.vdocuments.us/reader033/viewer/2022041806/5e54df9b0a1eaf6a12403cdd/html5/thumbnails/22.jpg)
Modus ponens
d
(a ∧ b ∧ c ⇒ d) a b c
![Page 23: Geoff Gordon - Carnegie Mellon School of Computer Science · The Waltz algorithm One of the earliest examples of a computation posed as a CSP. The Waltz algorithm is for interpreting](https://reader033.vdocuments.us/reader033/viewer/2022041806/5e54df9b0a1eaf6a12403cdd/html5/thumbnails/23.jpg)
Modus tollens
• If it’s raining the grass is wet; the grass is not wet; so, it’s not raining
¬a
(a ⇒ b) ¬b
![Page 24: Geoff Gordon - Carnegie Mellon School of Computer Science · The Waltz algorithm One of the earliest examples of a computation posed as a CSP. The Waltz algorithm is for interpreting](https://reader033.vdocuments.us/reader033/viewer/2022041806/5e54df9b0a1eaf6a12403cdd/html5/thumbnails/24.jpg)
Resolution
(a ∨ b ∨ c) (¬c ∨ d ∨ e)
a ∨ b ∨ d ∨ e
![Page 25: Geoff Gordon - Carnegie Mellon School of Computer Science · The Waltz algorithm One of the earliest examples of a computation posed as a CSP. The Waltz algorithm is for interpreting](https://reader033.vdocuments.us/reader033/viewer/2022041806/5e54df9b0a1eaf6a12403cdd/html5/thumbnails/25.jpg)
Proof of Resolution
(a ∨ b ∨ c) ∧ (¬c ∨ d ∨ e)
![Page 26: Geoff Gordon - Carnegie Mellon School of Computer Science · The Waltz algorithm One of the earliest examples of a computation posed as a CSP. The Waltz algorithm is for interpreting](https://reader033.vdocuments.us/reader033/viewer/2022041806/5e54df9b0a1eaf6a12403cdd/html5/thumbnails/26.jpg)
Solving SAT
• SAT-solvers routinely handle instances w/ 1,000,000 variables
• How? Depth-first search + optimizations.
• search heuristics
• constraint propagation
• clause learning
• randomization
![Page 27: Geoff Gordon - Carnegie Mellon School of Computer Science · The Waltz algorithm One of the earliest examples of a computation posed as a CSP. The Waltz algorithm is for interpreting](https://reader033.vdocuments.us/reader033/viewer/2022041806/5e54df9b0a1eaf6a12403cdd/html5/thumbnails/27.jpg)
Example: 3-coloring
![Page 28: Geoff Gordon - Carnegie Mellon School of Computer Science · The Waltz algorithm One of the earliest examples of a computation posed as a CSP. The Waltz algorithm is for interpreting](https://reader033.vdocuments.us/reader033/viewer/2022041806/5e54df9b0a1eaf6a12403cdd/html5/thumbnails/28.jpg)
Clause learning
![Page 29: Geoff Gordon - Carnegie Mellon School of Computer Science · The Waltz algorithm One of the earliest examples of a computation posed as a CSP. The Waltz algorithm is for interpreting](https://reader033.vdocuments.us/reader033/viewer/2022041806/5e54df9b0a1eaf6a12403cdd/html5/thumbnails/29.jpg)
Randomness
• Standard SAT solvers are randomized
• Result is a significant variance in solution times for same formula (Chaff authors report seconds vs. days)
![Page 30: Geoff Gordon - Carnegie Mellon School of Computer Science · The Waltz algorithm One of the earliest examples of a computation posed as a CSP. The Waltz algorithm is for interpreting](https://reader033.vdocuments.us/reader033/viewer/2022041806/5e54df9b0a1eaf6a12403cdd/html5/thumbnails/30.jpg)
We can be very lucky or unlucky
![Page 31: Geoff Gordon - Carnegie Mellon School of Computer Science · The Waltz algorithm One of the earliest examples of a computation posed as a CSP. The Waltz algorithm is for interpreting](https://reader033.vdocuments.us/reader033/viewer/2022041806/5e54df9b0a1eaf6a12403cdd/html5/thumbnails/31.jpg)
“I heard onst of a barque,” said Murphy.“Becalmed, that couldn’t get a breath,Till all the crowd was sick with scurvyAn’ the skipper drunk himself to death.”
Doldrums: One Of Murphy's Yarnshttp://oldpoetry.com/opoem/56157 Cicely Fox Smith
![Page 32: Geoff Gordon - Carnegie Mellon School of Computer Science · The Waltz algorithm One of the earliest examples of a computation posed as a CSP. The Waltz algorithm is for interpreting](https://reader033.vdocuments.us/reader033/viewer/2022041806/5e54df9b0a1eaf6a12403cdd/html5/thumbnails/32.jpg)
Exploiting variance
• Try multiple random seeds
• influences order of expanding neighbors (when ordering heuristics are tied)
• influences starting point in WalkSAT
• Interleave computation (or iterative lengthening)
• When does this work?
![Page 33: Geoff Gordon - Carnegie Mellon School of Computer Science · The Waltz algorithm One of the earliest examples of a computation posed as a CSP. The Waltz algorithm is for interpreting](https://reader033.vdocuments.us/reader033/viewer/2022041806/5e54df9b0a1eaf6a12403cdd/html5/thumbnails/33.jpg)
Randomization cont’d
• Randomization works well if search times are sometimes short but have heavy tail
![Page 34: Geoff Gordon - Carnegie Mellon School of Computer Science · The Waltz algorithm One of the earliest examples of a computation posed as a CSP. The Waltz algorithm is for interpreting](https://reader033.vdocuments.us/reader033/viewer/2022041806/5e54df9b0a1eaf6a12403cdd/html5/thumbnails/34.jpg)
Implementations
• This style of SAT-solver is “DPLL”
• Davis, Putnam, Logemann, and Loveland
• Free code: Chaff, MiniSAT
• Not-free: ILOG CP (CPLEX)
![Page 35: Geoff Gordon - Carnegie Mellon School of Computer Science · The Waltz algorithm One of the earliest examples of a computation posed as a CSP. The Waltz algorithm is for interpreting](https://reader033.vdocuments.us/reader033/viewer/2022041806/5e54df9b0a1eaf6a12403cdd/html5/thumbnails/35.jpg)
Optimization: w-MAXSAT
![Page 36: Geoff Gordon - Carnegie Mellon School of Computer Science · The Waltz algorithm One of the earliest examples of a computation posed as a CSP. The Waltz algorithm is for interpreting](https://reader033.vdocuments.us/reader033/viewer/2022041806/5e54df9b0a1eaf6a12403cdd/html5/thumbnails/36.jpg)
Weights on literals
![Page 37: Geoff Gordon - Carnegie Mellon School of Computer Science · The Waltz algorithm One of the earliest examples of a computation posed as a CSP. The Waltz algorithm is for interpreting](https://reader033.vdocuments.us/reader033/viewer/2022041806/5e54df9b0a1eaf6a12403cdd/html5/thumbnails/37.jpg)
Widgets →
Doo
dads
→w + d ≤ 4
2w + 5d ≤ 12
profit = w + 2d
Optimization: factory
![Page 38: Geoff Gordon - Carnegie Mellon School of Computer Science · The Waltz algorithm One of the earliest examples of a computation posed as a CSP. The Waltz algorithm is for interpreting](https://reader033.vdocuments.us/reader033/viewer/2022041806/5e54df9b0a1eaf6a12403cdd/html5/thumbnails/38.jpg)
• These are integer linear programs
• Interesting related problems:
• 0-1 ILP: all variables in {0, 1}
• SAT: 0-1 ILP, all constraints of form
x + (1-y) + (1-z) ≥ 1
• LP: no integer restrictions, all vars in ℝ
• MILP: some variables in ℝ, others ℤ
(M)ILP
![Page 39: Geoff Gordon - Carnegie Mellon School of Computer Science · The Waltz algorithm One of the earliest examples of a computation posed as a CSP. The Waltz algorithm is for interpreting](https://reader033.vdocuments.us/reader033/viewer/2022041806/5e54df9b0a1eaf6a12403cdd/html5/thumbnails/39.jpg)
Solving MILPs
• Search
• Bounds
• pessimistic: value of any feasible solution
• optimistic: relaxation
![Page 40: Geoff Gordon - Carnegie Mellon School of Computer Science · The Waltz algorithm One of the earliest examples of a computation posed as a CSP. The Waltz algorithm is for interpreting](https://reader033.vdocuments.us/reader033/viewer/2022041806/5e54df9b0a1eaf6a12403cdd/html5/thumbnails/40.jpg)
Bounds
0Feasible value ρ- Upper bound ρ+
Optimal value ρ*
Reward
ρ- ≤ ρ* ≤ ρ+
1 ≥ ρ-/ρ* ≥ ρ-/ρ+
![Page 41: Geoff Gordon - Carnegie Mellon School of Computer Science · The Waltz algorithm One of the earliest examples of a computation posed as a CSP. The Waltz algorithm is for interpreting](https://reader033.vdocuments.us/reader033/viewer/2022041806/5e54df9b0a1eaf6a12403cdd/html5/thumbnails/41.jpg)
Widgets →
Doo
dads
→w + d ≤ 4
2w + 5d ≤ 12
profit = w + 2d
Factory ILP
![Page 42: Geoff Gordon - Carnegie Mellon School of Computer Science · The Waltz algorithm One of the earliest examples of a computation posed as a CSP. The Waltz algorithm is for interpreting](https://reader033.vdocuments.us/reader033/viewer/2022041806/5e54df9b0a1eaf6a12403cdd/html5/thumbnails/42.jpg)
Widgets →
Doo
dads
→
feasible
w + d ≤ 4
2w + 5d ≤ 12
profit = w + 2d
Factory LP
![Page 43: Geoff Gordon - Carnegie Mellon School of Computer Science · The Waltz algorithm One of the earliest examples of a computation posed as a CSP. The Waltz algorithm is for interpreting](https://reader033.vdocuments.us/reader033/viewer/2022041806/5e54df9b0a1eaf6a12403cdd/html5/thumbnails/43.jpg)
Widgets →
Doo
dads
→
37
Unfortunately…
profit = w + 2d
![Page 44: Geoff Gordon - Carnegie Mellon School of Computer Science · The Waltz algorithm One of the earliest examples of a computation posed as a CSP. The Waltz algorithm is for interpreting](https://reader033.vdocuments.us/reader033/viewer/2022041806/5e54df9b0a1eaf6a12403cdd/html5/thumbnails/44.jpg)
![Page 45: Geoff Gordon - Carnegie Mellon School of Computer Science · The Waltz algorithm One of the earliest examples of a computation posed as a CSP. The Waltz algorithm is for interpreting](https://reader033.vdocuments.us/reader033/viewer/2022041806/5e54df9b0a1eaf6a12403cdd/html5/thumbnails/45.jpg)
![Page 46: Geoff Gordon - Carnegie Mellon School of Computer Science · The Waltz algorithm One of the earliest examples of a computation posed as a CSP. The Waltz algorithm is for interpreting](https://reader033.vdocuments.us/reader033/viewer/2022041806/5e54df9b0a1eaf6a12403cdd/html5/thumbnails/46.jpg)
![Page 47: Geoff Gordon - Carnegie Mellon School of Computer Science · The Waltz algorithm One of the earliest examples of a computation posed as a CSP. The Waltz algorithm is for interpreting](https://reader033.vdocuments.us/reader033/viewer/2022041806/5e54df9b0a1eaf6a12403cdd/html5/thumbnails/47.jpg)
Branch & bound
[schema, value] = bb(F, sch, bnd)
• [vrx, schrx] = relax(F, sch)
• if integer(schrx): return [schrx, vrx]
• if vrx ≥ bnd: return [sch, vrx]
• Pick variable xi
• [sch0, v0] = bb(F, sch/(xi: 0), bnd)
• [sch1, v1] = bb(F, sch/(xi: 1), min(bnd, v0))
• if (v0 ≤ v1): return [sch0, v0]
• else: return [sch1, v1]
![Page 48: Geoff Gordon - Carnegie Mellon School of Computer Science · The Waltz algorithm One of the earliest examples of a computation posed as a CSP. The Waltz algorithm is for interpreting](https://reader033.vdocuments.us/reader033/viewer/2022041806/5e54df9b0a1eaf6a12403cdd/html5/thumbnails/48.jpg)
A random 3-CNF
![Page 49: Geoff Gordon - Carnegie Mellon School of Computer Science · The Waltz algorithm One of the earliest examples of a computation posed as a CSP. The Waltz algorithm is for interpreting](https://reader033.vdocuments.us/reader033/viewer/2022041806/5e54df9b0a1eaf6a12403cdd/html5/thumbnails/49.jpg)
Branch & bound tree
![Page 50: Geoff Gordon - Carnegie Mellon School of Computer Science · The Waltz algorithm One of the earliest examples of a computation posed as a CSP. The Waltz algorithm is for interpreting](https://reader033.vdocuments.us/reader033/viewer/2022041806/5e54df9b0a1eaf6a12403cdd/html5/thumbnails/50.jpg)
Example: task allocation
![Page 51: Geoff Gordon - Carnegie Mellon School of Computer Science · The Waltz algorithm One of the earliest examples of a computation posed as a CSP. The Waltz algorithm is for interpreting](https://reader033.vdocuments.us/reader033/viewer/2022041806/5e54df9b0a1eaf6a12403cdd/html5/thumbnails/51.jpg)
Example: resource allocation
![Page 52: Geoff Gordon - Carnegie Mellon School of Computer Science · The Waltz algorithm One of the earliest examples of a computation posed as a CSP. The Waltz algorithm is for interpreting](https://reader033.vdocuments.us/reader033/viewer/2022041806/5e54df9b0a1eaf6a12403cdd/html5/thumbnails/52.jpg)
Problem setupn copies
![Page 53: Geoff Gordon - Carnegie Mellon School of Computer Science · The Waltz algorithm One of the earliest examples of a computation posed as a CSP. The Waltz algorithm is for interpreting](https://reader033.vdocuments.us/reader033/viewer/2022041806/5e54df9b0a1eaf6a12403cdd/html5/thumbnails/53.jpg)
Problem setup
passage region
n copies
![Page 54: Geoff Gordon - Carnegie Mellon School of Computer Science · The Waltz algorithm One of the earliest examples of a computation posed as a CSP. The Waltz algorithm is for interpreting](https://reader033.vdocuments.us/reader033/viewer/2022041806/5e54df9b0a1eaf6a12403cdd/html5/thumbnails/54.jpg)
Problem structure
Agent #1 variables
Agent #2 variables
Agent #3 variables
Agent #1 constraints
Agent #2 constraints
Agent #3 constraints
Coupling constraints
![Page 55: Geoff Gordon - Carnegie Mellon School of Computer Science · The Waltz algorithm One of the earliest examples of a computation posed as a CSP. The Waltz algorithm is for interpreting](https://reader033.vdocuments.us/reader033/viewer/2022041806/5e54df9b0a1eaf6a12403cdd/html5/thumbnails/55.jpg)
Smart cars
Bound: better than 93.7% of optimal