Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Problems
Chapter 5
Section 1 – 3
Grand Challenge:
http://www.grandchallenge.org/
1
Constraint satisfaction problems (CSPs)
CSP:
state is defined by variables Xi with values from domain Di
goal test is a set of constraints specifying allowable combinations of
values for subsets of variables
2
Example: Map-Coloring
Domains Di = {red,green,blue}
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
need a constraint language, e.g., StartJob1 + 5 ≤ StartJob3
Continuous variables
e.g., start/end times for Hubble Space Telescope observations
linear constraints solvable in polynomial time by linear programming
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
Real-world CSPs
Assignment problems
e.g., who teaches what class
Timetabling problems
e.g., which class is offered when and where?
Transportation scheduling
Factory scheduling
9
Standard search formulation
We need:
• Initial state: none of the variables has a value (color)
• Successor state: one of the variables without a value will get some value.
• Goal: all variables have a value and none of the constraints is violated.
NxD
N layers
WA WA WA NT T
[NxD]x[(N-1)xD]
WA WA WA NT
NT NT NT WA
Equal! N! x D^N
10
There are N! x D^N nodes in the tree but only D^N distinct states??
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.
• Better 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
11
Backtracking example
12
Backtracking example
13
Backtracking example
14
Backtracking example
15
Improving backtracking efficiency
16
Most constrained variable
Most constrained variable:
choose the variable with the fewest legal values
18
Least constraining value
Given a variable, choose the least
constraining value:
the one that rules out the fewest values in the
remaining variables
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
Constraint propagation
Forward checking propagates information from assigned to
unassigned variables, but doesn't provide early detection for
all failures:
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
27
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
B a priori
B B G
R R B constrained
G R
G G
nodes
30
31
Junction Tree Decompositions
32
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
33
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
34
35
Summary
CSPs are a special kind of problem:
states defined by values of a fixed set of variables
goal test defined by constraints on variable values
36