0% found this document useful (0 votes)
10 views27 pages

Unit 3 Constraint Satisfaction Problems

Constraint Satisfaction Problems (CSPs) are defined by variables with specific domains and constraints that dictate allowable combinations of values. Various problem types, including map coloring and cryptarithmetic, can be modeled as CSPs, which can be efficiently solved using specialized algorithms like backtracking and heuristics. Techniques such as forward checking and conflict-directed backjumping enhance the efficiency of CSP solutions by reducing search space and intelligently managing backtracking.

Uploaded by

pandyaga
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
10 views27 pages

Unit 3 Constraint Satisfaction Problems

Constraint Satisfaction Problems (CSPs) are defined by variables with specific domains and constraints that dictate allowable combinations of values. Various problem types, including map coloring and cryptarithmetic, can be modeled as CSPs, which can be efficiently solved using specialized algorithms like backtracking and heuristics. Techniques such as forward checking and conflict-directed backjumping enhance the efficiency of CSP solutions by reducing search space and intelligently managing backtracking.

Uploaded by

pandyaga
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 27

Unit-3

Constraint Satisfaction Problems

Chapter 6

Book: Artificial Intelligence (Stuart Russel and Peter Norvig)


4th edition

Artificial Intelligence Slides-- Aparna Gurjar


CSE(AIML)
Introduction to CSP
• CSP is defined by a set of variables, X1, X2, ....Xn, and
a set of constraints C1, C2,...Cm.
• Each variable Xi has a non-empty domain Di of
possible values.
• Each constraint Ci involves some subset of the
variables and specifies the allowable combination 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,...}

Artificial Intelligence Slides-- Aparna Gurjar


CSE(AIML)
Introduction to CSP (terminology)
• An assignment that does not violate any constraint is
called a consistent or a legal assignment.
• A complete assignment is one in which every
variable is mentioned and a solution to CSP is a
complete assignment that satisfies all the
constraints.
• Some CSPs also require a solution that maximizes the
objective function.
• Constraint satisfaction problems (CSPs) consist of
variables with constraints on them. The structure of
a CSP can be represented by a constraint graph.
Artificial Intelligence Slides-- Aparna Gurjar
CSE(AIML)
The map colouring problem

Artificial Intelligence Slides-- Aparna Gurjar


CSE(AIML)
The map colouring problem as a CSP

Artificial Intelligence Slides-- Aparna Gurjar


CSE(AIML)
Varied types of problems as a CSP
• Many kinds of design and scheduling problems can be
expressed as CSPs, so they form a very important subclass.
CSPs can be solved by general-purpose search algorithms, but
because of their special structure, algorithms designed
specifically for CSPs generally perform much better.
• For example, the 8-queens problem can be viewed as a CSP in
which the variables are the locations of each of the eight
queens; the possible values are squares on the board; and the
constraints state that no two queens can be in the same row,
column or diagonal.
• A solution to a CSP specifies values for all the variables such
that the constraints are satisfied.
• Cryptarithmetic and VLSI layout can also be described as CSPs
. Artificial Intelligence Slides-- Aparna Gurjar
CSE(AIML)
Approaches to solving CSPs
• Every solution of CSP must be a complete assignment
and therefore appears at depth n, if there are n
variables. The search tree also extends till depth n.
• Therefore, depth first search algorithms are popular
for solving CSPs.
• Moreover, the path by which the solution is reached
is irrelevant. Due to this local search methods are
also suitable for solving CSPs. These methods use
complete-state formulation in which every state is a
complete assignment that might or might not satisfy
the constraints.

Artificial Intelligence Slides-- Aparna Gurjar


CSE(AIML)
CSP variables, domains and constraints
• CSP variables can be discrete and have finite
domains.
– Map coloring problems
• If the maximum domain size of any variable is d, then
the number of possible complete assignments is
O(dn). Here n is the number of variables
• Finite domain CSPs include Boolean CSPs, whose
variables can be either true or false.
• Discrete variables can also have infinite domains.
– Set of integers
– infinite domains require a constraint language to describe
constraints
Artificial Intelligence Slides-- Aparna Gurjar
CSE(AIML)
Type of constraints

• Unary constraints: They restrict the value of a single


variable
• Binary constraints: They relate two variables
– WA ≠ NT
• Higher order constraints involves three or more
variables.

Artificial Intelligence Slides-- Aparna Gurjar


CSE(AIML)
A cryptarithmetic problem
• Each letter stands for a distinct digit.
• The aim is to find a substitution of digits for letters
such that the resulting sum is arithmetically correct.
• No leading zeros are allowed.
– a) Puzzle b) Constraint Graph for the puzzle

Artificial Intelligence Slides-- Aparna Gurjar


CSE(AIML)
Solving cryptarithmetic puzzle as a CSP
TWO + TWO = FOUR
• Identifying the variables and domain
Variables: T, W, O, F, U, R, These variables belong to the
domain {0,1,2,3,4,5,6,7,8,9}
• Identifying the constraints:
– F ≠ T, F ≠ W and so on (for all variables)
– Addition constraints on the four columns:
• O+O=R+10*X1
• X1+W+W=U+10*X2
• X2+T+T=O+10*X3
• X3=F
• X1,X2,X3 are auxiliary variables representing the digits(0 or 1,
carried over to the next column)

Artificial Intelligence Slides-- Aparna Gurjar


CSE(AIML)
Cryptarithmetic Solution
X3 can be (0,1), leading digits cannot be zero, so X3=1, and hence F=1.
X2+T+T=O+10*X3, X3=1, X2=(0,1), assume X2=0 for some solution
Therefore T+T=O+10.
Starting from T=(0,1,….9), T=1,2,3,4 not possible, 5 not possible as O will be
zero and O+O=R is violated. Therefore legal values of T= [6,7,8,9]
Let T=6, O=2, O+O=2+2=4, therefore R=4, so X1=0, and X2=0 (already
assumed), so W can take the values (1,2,3,4) only.
But F=1, O=2, T=6(As W+W=U, 3+3=6, so U=6 not possible, so W=3 not
possible), R=4.
Thus, W cannot take the values (1,2,3,4), so no legal values available hence
backtrack to T=6 and choose a new value for T, choose T=7
Therefore 7+7=O+10, O=4, O+O=R+10*X1, so X1=0 and R=8, W=3, U=6
Thus, all variables are assigned, and all constraints are satisfied.
Solution: T=7, W=3, O=4, F=1, U=6, R=8, 7 3 4
7 3 4
1 4 6 8
Artificial Intelligence Slides-- Aparna Gurjar
CSE(AIML)
Backtracking search for CSPs
• Backtracking search is a kind of depth first search
which is commonly used for solving CSPs.
• It chooses values for one variable at a time and
backtracks when a variable has no legal values left to
assign.
• Plain backtracking is an uninformed algorithm.
• The search efficiency of the Backtracking search can
be improved by ordering of variables as well as
ordering of variable values in a specific way.
• This is called variable and value ordering in CSPs. It
acts as a kind of heuristics.
Artificial Intelligence Slides-- Aparna Gurjar
CSE(AIML)
Backtracking search for CSPs
(with heuristics)

• The minimum remaining values and degree


heuristics are methods for deciding which variable to
choose next in a backtracking search.
• The least constraining value heuristic helps in
ordering the variable values.

Artificial Intelligence Slides-- Aparna Gurjar


CSE(AIML)
Variable ordering (MRV)
Minimum remaining value (MRV)heuristic: It is also
called most constrained variable or fail first heuristic.
MRV chooses the variable with the fewest legal values.
It is called Fail first as it picks a variable that is most
likely to cause a failure.
Advantages:
– It prunes the search tree.
– If there is some variable X with zero legal values remaining,
MRV will pick it first and failure will be detected
immediately. This avoids pointless search through other
variables, as the search s bound to be a failure later-on
when X is selected.

Artificial Intelligence Slides-- Aparna Gurjar


CSE(AIML)
Variable ordering (degree heuristics)

• The degree heuristics attempts to reduce the


branching factor by selecting the variable that is
involved in largest number of constraints on other
unassigned variables.
• In the map coloring algorithm, the degree of SA is 5
(highest). Once SA is chosen by applying degree
heuristics, the problem can be solved without any
false steps and arrive at a solution without back
tracking.

Artificial Intelligence Slides-- Aparna Gurjar


CSE(AIML)
Least constraining value heuristic(value ordering)

• Once a variable has been selected, the algorithm


must decide on the order in which the values should
be examined.
• Least constraining value (LCV) heuristic prefers that
value of the variable which does not reduce the
choices of other constrained variables.
• For example: let the partial assignment be {WA=red,
NSW=green}, next choice is to be done for variable Q.
If Q is assigned blue, it would be a bad choice as it
eliminates the last legal value left for SA (SA cannot
be red or green). The LCV therefore prefers red
instead of blue.
Artificial Intelligence Slides-- Aparna Gurjar
CSE(AIML)
Propagating information through constraints
• If some constraints are looked at earlier in the
search, then it can reduce the search space
considerably.
• This can be done by forward checking process.
• Whenever a variable X is assigned, the forward
checking process looks at each unassigned variable Y
that is connected to X by a constraint. It deletes from
Y’s domain, any value that is inconsistent with the
value chosen for X.
• The forward checking can detect that the partial
assignment done till now is inconsistent.
Artificial Intelligence Slides-- Aparna Gurjar
CSE(AIML)
Applying forward checking process

Artificial Intelligence Slides-- Aparna Gurjar


CSE(AIML)
Forward checking process
• Consider the color assignment sequence as WA, Q, V, NT.
• After assigning WA = red and Q = green, and V= blue,the
domains of NT and SA are reduced to a single value; the
branching on these variables has been eliminated altogether
by propagating information from WA and Q.
• The MRV heuristic, which is used for forward checking, would
automatically select SA and NT next.
• A second point to notice is that, after V = blue, the domain of
SA is empty. Hence, forward checking has detected that the
partial assignment { WA = red, Q = green, V = blue) is
inconsistent with the constraints of the problem, and the
algorithm will therefore backtrack immediately.

Artificial Intelligence Slides-- Aparna Gurjar


CSE(AIML)
Intelligent Backtracking Search for CSP
Intelligent backtracking: looking backwards
• In simple backtracking, when a branch of search fails, the
algorithm backs up to the preceding variable and try a
different value for it. This is called chronological backtracking.
– Backtracking goes back one level in the search tree at a time.
– Not rational in cases where the previous step is not involved with the
conflict
• Consider fixed variable ordering Q, NSW, V, T, SA, WA, NT.
Suppose partial assignment is as follows:
• {Q= red, NSW= green, V= blue, T=red}
• When next variable SA is taken up for assignment, no valid
colour is available(). Backtracking to T does not help as T’s
value does not affect other nodes’ constraint.

Artificial Intelligence Slides-- Aparna Gurjar


CSE(AIML)
Backjumping
• Backtracking needs to be done till one arrives at a set
of variables from which one variable caused the
failure. This set is called the conflict set. In this case
conflict set is {Q, NSW, V}.
• Definition: Conflict set for a variable X is the set of
previously assigned variables that are connected to
X by constraints.
• The backjumping method backtracks to the most
recent variables in the conflict set.
• In this case backjumping jumps over T and tries a
new value for V.

Artificial Intelligence Slides-- Aparna Gurjar


CSE(AIML)
Backjumping contd..
• To enable backjumping the conflict set needs to be
maintained while checking for a legal value to assign. If
no legal value is found the most recent element of the
conflict set is returned with failure indicator.
• Simple backjumping detects when every value in domain
is in conflict with current assignment. But if forward
checking mechanism is used then such a state is never
reached at all. Every branch pruned by basic backjumping
is also pruned by forward checking
• Due to this simple backjumping becomes redundant.
Therefore conflict-directed backjumping is preferred.

Artificial Intelligence Slides-- Aparna Gurjar


CSE(AIML)
Conflict-directed backjumping
• Backjumping notices failure when a variable’s
domain becomes empty, but in many cases a branch
has failed long before actual failure occurs.
• Consider the partial assignment {WA=red, NSW=red}
• Suppose we set T=red next. Then we assign NT, Q, V
and SA. {WA, NSW, T, NT, Q, V, SA}
• No valid assignment can work for these. Due to this
we are left with no values to try out at NT. See figure
SA=Blue, conflicts with V
SA= Red or Green conflicts
with WA and Q.
• Where to backtrack now?
Artificial Intelligence Slides-- Aparna Gurjar
CSE(AIML)
Conflict-directed backjumping (CBJ) contd..
• It is a fact that NT, Q, V, SA, taken together, failed
because of a set of preceding variables. These must
be the variables that directly conflict with the
variables NT, Q, V, SA.
• Deeper notion of conflict set: It is the set of
preceding variables (WA and NSW) that caused NT,
together with any subsequent variables, to have no
consistent solution. As per CBJ the conflict set is {WA
and NSW}. The algorithm should backtrack to NSW
(as it is recent) and skip over Tasmania (T).
• A back-jumping algorithm that uses conflict sets in
this way is called as conflict-directed backjumping.
Artificial Intelligence Slides-- Aparna Gurjar
CSE(AIML)
CBJ definition
• Conflict-directed backjumping (CBJ):
– Let Xj be the current variable, and conf(Xj) its
conflict set. If every possible value for Xj fails,
backjump to the most recently assigned variable
in conf(Xj), denoted by Xi.
– Set conflict set of Xi to
conf(Xi) = conf(Xi)  conf(Xj) – {Xi}
– If we need to backjump from Xi, repeat this
process.
View example in next slide

Artificial Intelligence Slides-- Aparna Gurjar


CSE(AIML)
Conflict-directed backjumping example
SA fails, SA conflict set is {WA, NT, Q}, we back-jump to Q and Q
absorbs the conflict set from SA into its own conflict set. Q
conflict set is {NT, NSW}. Q absorbs the conflict set from SA
minus itself.
{WA, NT, Q} U {NT, NSW} – {Q}. The new conflict set of Q is {WA,
NT, NSW} and so on.
Now Q fails(as there is no solution from Q onwards), therefore
backjump to NT (which is most recent in Q’s conflict set). NT
absorbs {WA, NT, NSW} from Q. Its own conflict set is {WA}.
{WA} U {WA, NT, NSW} – {NT}. The new conflict set of NT
becomes {WA, NSW}.
NT still fails, back-jump to NSW (which is most recent in NT’s
conflict set). Thus, from SA the algorithm finally backtracks to
NSW, skipping over Tasmania (T). {WA, NSW, T, NT, Q, V, SA}

Artificial Intelligence Slides-- Aparna Gurjar


CSE(AIML)

You might also like