Lec 5_Constraint Satisfaction

Download as pdf or txt
Download as pdf or txt
You are on page 1of 39

Constraint Satisfaction

Problems

Dr. Sonam Mittal


BKBIET, Pilani

1
Constraint satisfaction problems (CSPs)

■ One of the standard search problem


■ State is defined by values and variables (example –
Ram is a variable, Shyam is variable and their
values can be their age)
■ CSP: state is defined by variables Xi with values
from Domain Di.
■ It includes real life examples like Sudoku, graph
colouring, map colouring etc.

2
■ CSP consists of 3 components V,D,C
■ V is set of variables (finite) {V1, V2, …Vn}
■ D is a set of domains {D1, D2,… Dn} one for each
variable
■ C is a set of constraints that specify allowable
combination of values
Ci = (Scope, relation)
Where scope is a set of variables that
participate in constraint
relation (rel) defines the values that variable can take

Example: Lets say 2 variables are there V1 and V2 and Domain – A, B


respectively.
Constraint C1 which says value of V1 is not equal to V2
Scope = V1, V2 (variables participating in constraint)
C = ((V1, V2), (V1=V2))
3
Constraint satisfaction problems (CSPs)

■ Also known as Crypt Arithmetic Problem


■ 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

■ Allows useful general-purpose algorithms with more power


than standard search algorithms

4
Example: Map-Coloring

■ Variables WA, NT, Q, NSW, V, SA, T

■ Domains Di = {red,green,blue}

■ Constraints: adjacent regions must have different colors


■ e.g., WA ≠ NT
5
Example: Map-Coloring

■ Solutions are complete and consistent assignments,


e.g., WA = red, NT = green,Q = red,NSW =
green,V = red,SA = blue,T = green

6
Constraint graph
■ Binary CSP: each constraint relates two variables
■ Constraint graph: nodes are variables, arcs are constraints

7
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

8
Varieties of constraints
■ Unary constraints involve a single variable,
■ e.g., SA ≠ green

■ Binary constraints involve pairs of variables,


■ e.g., SA ≠ WA

■ Higher-order constraints involve 3 or more


variables,
■ e.g., SA ≠ WA ≠ NT

9
Example: Cryptarithmetic

■ Variables: F T U W R O X 1 X 2 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
10
Example

Every letter should have a unique value and between 0-9


11
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

■ Notice that many real-world problems involve


real-valued variables

12
Standard search formulation

Let’s try the 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
13
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
14
Backtracking example

15
Backtracking example

16
Backtracking example

17
Backtracking example

18
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?

19
Most constrained variable
■ Most constrained variable:
choose the variable with the fewest legal values

■ a.k.a. minimum remaining values (MRV)


heuristic
■ Picks a variable which will cause failure as
soon as possible, allowing the tree to be
pruned.
20
Most constraining variable
■ Tie-breaker among most constrained
variables

■ Most constraining variable:


■ choose the variable with the most constraints on
remaining variables (most edges in graph)

21
Least constraining value
■ Given a variable, choose the least
constraining value:
■ the one that rules out the fewest values in the
remaining variables

■ Leaves maximal flexibility for a solution.


■ Combining these heuristics makes 1000
queens feasible 22
Forward checking
■ Idea:
■ Keep track of remaining legal values for unassigned variables
■ Terminate search when any variable has no legal values

23
Forward checking
■ Idea:
■ Keep track of remaining legal values for unassigned variables
■ Terminate search when any variable has no legal values

24
Forward checking
■ Idea:
■ Keep track of remaining legal values for unassigned variables
■ Terminate search when any variable has no legal values

25
Forward checking
■ Idea:
■ Keep track of remaining legal values for unassigned variables
■ Terminate search when any variable has no legal values

26
Constraint propagation
■ Forward checking propagates information from assigned to
unassigned variables, but doesn't provide early detection for
all failures:

■ NT and SA cannot both be blue!


■ Constraint propagation repeatedly enforces constraints
locally

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

constraint propagation propagates arc consistency on the graph.


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

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

■ If X loses a value, neighbors of X need to be rechecked

30
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

■ If X loses a value, neighbors of X need to be rechecked


■ Arc consistency detects failure earlier than forward checking
■ Can be run as a preprocessor or after each assignment
■ Time complexity: O(n2d3) 31
32
B G R R G B

B a priori
B B R G B
R constrained
G R
G G
nodes

Note: After the backward pass, there is guaranteed


to be a legal choice for a child note for any of its
leftover values.
This removes any inconsistent values from Parent(Xj),
it applies arc-consistency moving backwards.

33
34
Junction Tree Decompositions

35
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

■ Variable selection: randomly select any conflicted variable

■ Value selection by min-conflicts heuristic:


■ choose value that violates the fewest constraints
■ i.e., hill-climb with h(n) = total number of violated constraints

36
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

37
38
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

■ Backtracking = depth-first search with one variable assigned per node


■ Variable ordering and value selection heuristics help significantly
■ Forward checking prevents assignments that guarantee later failure
■ Constraint propagation (e.g., arc consistency) does additional work to
constrain values and detect inconsistencies
■ Iterative min-conflicts is usually effective in practice

39

You might also like