Constraint Satisfaction Problems
Constraint Satisfaction Problems
• Continuous variables
– e.g., start/end times for Hubble Space Telescope observations
– linear constraints solvable in polynomial time by LP
Varieties of constraints
• Unary constraints involve a single variable,
– e.g., SA ≠ green
–
•
Arc consistency
• Simplest form of propagation makes each arc consistent
• X Y is consistent iff
for every value x of X there is some allowed y
–
•
Arc consistency
• Simplest form of propagation makes each arc consistent
• X Y is consistent iff
for every value x of X there is some allowed y
•
Arc consistency algorithm AC-3
• Symmetry breaking
Structured CSPs
Tree-structured CSPs
Algorithm for tree-structured CSPs
Nearly tree-structured CSPs
• Algorithm: solve for all solutions of each subproblem. Then, use the tree-
structured algorithm, treating the subproblem solutions as variables for those
subproblems.
• O(ndw+1) where w is the treewidth (= one less than size of largest subproblem)
• Finding a tree decomposition of smallest treewidth is NP-complete, but good
heuristic methods exists
An example CSP application:
satisfiability
Davis-Putnam-Logemann-Loveland
(DPLL) tree search algorithm
clause
E.g. for 3SAT
p1
? p s.t. (p1p3p4) (p1p2p3) …
p2T F
T F
p3
p4 Complete
Backtrack when some clause becomes empty
Assume the theory is Horn, and that unit propagation has completed
(without contradiction). We can remove all the clauses that were
satisfied by the assignments that unit propagation made. From the
unsatisfied clauses, we remove the variables that were assigned values by
unit propagation. The remaining theory has the following two types of
clauses that contain unassigned variables only:
P1 P2 … Pn Q and
P1 P2 … Pn
Each remaining clause has at least two variables (otherwise unit
propagation would have applied to the clause). Therefore, each
remaining clause has at least one negated variable. Therefore, we can
satisfy all remaining clauses by assigning each remaining variable to
False.
Variable ordering heuristic for DPLL [Crawford & Auton AAAI-93]
Heuristic: Pick a non-negated variable that occurs in a non-Horn (more than
1 non-negated variable) clause with a minimal number of non-negated
variables.
Motivation: This is effectively a “most constrained first” heuristic if we view
each non-Horn clause as a “variable” that has to be satisfied by setting
one of its non-negated variables to True. In that view, the branching
factor is the number of non-negated variables the clause contains.
Q: Why is branching constrained to non-negated variables?
A: We can ignore any negated variables in the non-Horn clauses because
– whenever any one of the non-negated variables is set to True the clause becomes
redundant (satisfied), and
– whenever all but one of the non-negated variables is set to False the clause becomes
Horn.
Variable ordering heuristics can make several orders of magnitude
difference in speed.
Constraint learning aka nogood learning aka clause learning
used by state-of-the-art SAT solvers (and CSP more generally)
Conflict graph
• Nodes are literals
• Number in parens shows the search tree level
where that node got decided or implied
x7=0
• = #clauses / # variables
• This predicts
– satisfiability
– hardness of finding a model
How would you capitalize on the
phase transition in an algorithm?
Generality of the order parameter