Constraint Satisfaction Problems: Section 1 - 3
Constraint Satisfaction Problems: Section 1 - 3
Problems
Chapter 5
Section 1 – 3
1
Constraint satisfaction problems (CSPs)
CSP:
Allows useful general-purpose algorithms with more power than standard
search algorithms
A Constraint Satisfaction Problem(or CSP) is defined by a set of
variables ,X1,X2,….Xn,and a set of constraints C1,C2,…,Cm. Each variable Xi has a
nonempty domain D,of possible values. Each constraint Ci involves some
subset of variables and specifies the allowable combinations of values for that
subset.
A State of the problem is defined by an assignment of values to some or all
of the variables,{Xi = vi,Xj = vj,…}. An assignment that does not violate any
constraints is called a consistent or legal assignment. A complete
assignment is one in which every variable is mentioned,and a solution to a
CSP is a complete assignment that satisfies all the constraints.
Some CSPs also require a solution that maximizes an objective function.
2
Example: Map-Coloring
Domains Di = {red,green,blue}
3
Example: Map-Coloring
4
Constraint graph
Binary CSP: each constraint relates two variables
Constraint graph: nodes are variables, arcs are constraints
5
Varieties of CSPs
Discrete variables
finite domains:
n variables, domain size d O(d n) complete assignments
e.g., 3-SAT (NP-complete)
infinite domains:
integers, strings, etc.
e.g., job scheduling, variables are start/end days for each job:
StartJob1 + 5 ≤ StartJob3
Continuous variables
linear objective & constraints solvable in polynomial time by linear
programming
There are very good, off-the-shelves, methods for convex
optimization problems.
6
Varieties of constraints
Unary constraints involve a single variable,
e.g., SA ≠ green
7
Example: Cryptarithmetic
Variables: F T U W R O X1 X2 X3
Domains: {0,1,2,3,4,5,6,7,8,9} {0,1}
Constraints: Alldiff (F,T,U,W,R,O)
O + O = R + 10 · X1
X1 + W + W = U + 10 · X2
X2 + T + T = O + 10 · X3
X3 = F, T ≠ 0, F ≠ 0
8
Backtracking (Depth-First) search
• Special property of CSPs: They are commutative:
NT = WA
This means: the order in which we assign variables
WA NT
does not matter.
• Search tree: First order variables, then assign them values one-by-one.
D
WA WA WA
WA
NT D^2
WA WA
NT NT
D^N
9
Backtracking example
10
Backtracking example
11
Backtracking example
12
Backtracking example
13
Backtracking -CSP
Figure 2.17 A simple backtracking algorithm for constraint satisfaction problem. The algorithm is
modeled on the recursive depth-first search
14
Improving backtracking efficiency
General-purpose methods can give huge
gains in speed:
Which variable should be assigned next?
In what order should its values be tried?
Can we detect inevitable failure early?
15
Which variable should be assigned next?
minimum remaining values heuristic
Most constrained variable:
choose the variable with the fewest legal values
16
Which variable should be assigned next?
degree heuristic
Tie-breaker among most constrained
variables
17
In what order should its values be tried?
least constraining value heuristic
19
Can we detect inevitable failure early?
forward checking
Idea:
Keep track of remaining legal values for unassigned variables
that are connected to current variable.
Terminate search when any variable has no legal values
20
Forward checking
Idea:
Keep track of remaining legal values for unassigned variables
Terminate search when any variable has no legal values
21
Forward checking
Idea:
Keep track of remaining legal values for unassigned variables
Terminate search when any variable has no legal values
22
Forward checking
Idea:
Keep track of remaining legal values for unassigned variables
Terminate search when any variable has no legal values
23
2) Consider the constraint graph on the right.
The domain for every variable is [1,2,3,4].
There are 2 unary constraints:
- variable “a” cannot take values 3 and 4.
- variable “b” cannot take value 4.
There are 8 binary constraints stating that variables
connected by an edge cannot have the same value.
b
Find a solution for this CSP by using the following
heuristics: minimum value heuristic, degree heuristic,
forward checking. Explain each step of your answer.
a c e
CONSTRAINT GRAPH
24
2) Consider the constraint graph on the right.
The domain for every variable is [1,2,3,4].
There are 2 unary constraints:
- variable “a” cannot take values 3 and 4.
- variable “b” cannot take value 4.
There are 8 binary constraints stating that variables
connected by an edge cannot have the same value.
b
Find a solution for this CSP by using the following
heuristics: minimum value heuristic, degree heuristic,
forward checking. Explain each step of your answer.
a c e
MVH a=1 (for example)
FC+MVH b=2
FC+MVH c=3
FC+MVH d=4
d
FC e=1
CONSTRAINT GRAPH
25
Constraint propagation
Forward checking only checks consistency between assigned
and non-assigned states. How about constraints
between two unassigned states?
26
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 of Y
consistent arc.
inconsistent arc.
remove blue from source consistent arc.
28
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
thisneighbors
If X loses a value, arc just became inconsistent
of X need to be rechecked:
i.e. incoming arcs can become inconsistent again
(outgoing arcs will stay consistent).
29
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
Since we only remove values from domains when they can never be
part of a solution, an empty domain means no solution possible at all
back out of that branch.
[R]
[R,B,G] [R,B,G]
33
34
B G R R G B
B a priori
B B R G B
R constrained
G R
G G
nodes
35
36
Junction Tree Decompositions
37
Local search for CSPs
Note: The path to the solution is unimportant, so we can
apply local search!
To apply to CSPs:
allow states with unsatisfied constraints
operators reassign variable values
38
Example: 4-Queens
States: 4 queens in 4 columns (44 = 256 states)
Actions: move queen in column
Goal test: no attacks
Evaluation: h(n) = number of attacks
39
40
Hard satisfiability problems
44