Document 7934902

Download Report

Transcript Document 7934902

Searching
Previous searching focused on domainspecific heuristics and tested states to
see if they matched goal.
Can search based upon state structure
and use general-purpose heuristics.

Requires understanding the problem
structure and the difficulty of solving.
Constraint Satisfaction Problems
Constraint Satisfaction Problem (CSP)




Set of Variables: X1, X2, X3, … Xn
Set of Constraints: C1, C2, … Cn
Each Xi has a non-empty domain Di of possible
values, vi.
Each Ci has a subset of variables specifying the
valid combinations of vi’s.
Constraint Satisfaction Problems

A problem state or assignment is represented by:
 {Xi = vi, Xj = vj, ...}



An assignment is consistent if no constraints
are violated.
A solution is a complete assignment that
satisfies all the constraints.
Constraint Graph
 Nodes represent variables
 Arcs represent constraints
CSP Example
Graph coloring is a good example of a CSP.


Assume we can use the colors {red, blue, yellow}
Can we color the graph such that a each adjacent
node has a different color?
X1
X2
Does
matter
What
can
we
Nowitcolor
what
canwhat
we
What
if
we
connect
Let’s
choose
blue
X1
What
about
X
?
5 for
color
we
choose
for
choose
for
X
?
choose
for
X
?
X5 to X2? 2 3
X4?
X3
X4
X5
CSP Example
What happens if we only have two
colors {red, blue}?
Does adding the link between
X2 and X5 change the problem?
X1
X2
X3
X4
X5
Characteristics of CSP
Representation




Initial State: empty assignment { }.
Successor function: a value can be assigned
to any unassigned variable, as long as there
are no conflicts with the variables that already
have an assignment.
Goal test: the current assignment is
complete.
Path cost: a constant cost for every step.
Characteristics of CSP
Every problem must be a complete
assignment.


Assume n variables, then search tree only
goes to depth n.
Depth first search typically applied.
General CSP algorithms solve problems
significantly larger than those that can be
solved with general search algorithms.
Simplest CSPs
CSPs with discrete variables and finite
domains.



Map-coloring
8-Queens
Boolean CSPs – 3SAT (NP-Complete)
More complex CSPs
Discrete variables with infinite domains.


For example, a set of integers.
Characteristic of such problems
 Cannot enumerate all variable combinations.

Requires a constraint language.
Continuous Domains

Example, linear programming.
Types of Constraints
Unary Constraint

Constrains the value of a single variable.
Binary Constraint

Relates two variables.
Preference Constraint

Indicate preferred solutions.
Cryptarithmatic
FORTY
+ TEN
+ TEN
SIXTY
Y + N + N = Y + 10 * X1
X1 + T + E + E = T + 10 * X2
X2 + R + T + T = X + 10 * X3
X3 + O = I + 10 * X4
X4 + F = S
29786
+ 850
+ 850
31486
Commutativity
A problem is commutative if the order
of application of any given set of
actions has no effect on the outcome.
All CSP search algorithms generate
successors by considering possible
assignments for only a single variable at
each node in the search tree.
Backtracking
A depth-first search that chooses values
for one variable at a time and backtracks
when a variable has no legal values left to
assign is a backtracking search.

Plain backtracking is uninformed.
 Problems with backtracking…
Questions to address
1. What variable to assign next and what
order are the values to be tested?
2. What are the implications of the current
variable assignments on the other
unassigned variables?
3. When a path fails, how do we avoid
repeating the failure on subsequent
paths?
Which variable to assign?
Which variable to assign?

Standard backtracking simply assigns the next
available variable.
 It is rare that this is efficient.

Is there a way to chose the variable with the
fewest “legal” values?
Which variable to assign?
Minimum Remaining Values (MRV)





Simply select the variable with the fewest “legal”
values.
If a variable has no legal values, then MRV selects the
variable and the failure is immediately detected.
Can be implemented by changing the selection criteria
of backtracking search.
This technique only determines which variable is most
likely to cause a failure, in hopes of pruning nodes
from the search.
Also called, Most Constrained Value.
Which variable to assign?
MRV is useful if have already started the
search.
How is the first variable chosen?

Degree Heuristic
 Choose the variable involved with the largest
number of constraints with other unassigned
variables.
 Intended to reduce the branching factor.
 Can also be used as a tie-breaker in all other
situations.
Which variable to assign?
Degree Heuristic
X1
X2
X3
X5
Which Variable has the
largest number of
constraints?
X4
How does the algorithm know the order in which to
examine values?
Least-Constraining-Value
Chose the value that rules out the fewest
choices for the neighboring variables in the
constraint graph.

Attempts to provide maximum flexibility for
remaining variable assignments.
What are the implications of an
assignment?
Can we reduce the search space by
looking at constraints earlier in the search
process?
•Forward Checking
•Constraint Propagation
Forward Checking
When variable X is assigned, check each
unassigned variable Y connected to X by a
constraint.
Delete from Y’s domain any value that is
inconsistent with the value assigned to X.

Problem: Does not catch all inconsistencies.
 Why?
Constraint Propagation
Propagate the implications of a constraint
on one variable onto other variables.


Must be able to do this quickly.
Why?
Arc Consistency
Requires a directed arc in the consistency
graph.
Provides early detection of inconsistencies.

Must be applied repeatedly to detect ALL
constraints.
Arc Consistency
X1
X2
{R,Y,Y}
{R,
B}
{Y, B}
{R,
Y, B}
X3
X5
{Y,{B}
B}
{R, Y, B}
X4
{R, Y}
Still may not find all inconsistencies.
{R, Y, B}
K-Consistency
A CSP is k-consistent if for any set of k – 1
variables and for any constraint
assignment to those variables, a consistent
value can always be assigned to any kth
value.
K-Consistency

Node Consistency (1-Consistency)
 Each individual variable is consistent.

2-Consistency = arc consistency

Path Consistency (3-Consistency)
 Any pair of adjacent variables can always be
extended to a third neighboring variable.

Stronger consistency checks require more
processing time but reduce the branching
factor and detection of inconsistencies.
Special Constraints
AllDiff – All variables must have distinct values.

To satisfy this constraint for m variables and n values,
n >= m. Why?
Resource (atmost) constraint


Define an atmost constraint value and then add the
minimum values of the current domains.
The sum must be less than or equal to the constraint
value.
How are repeating failures avoided?
Chronological backtracking

Backs up to the most recent decision point and
tries a different value for it.
Chronological Backtracking
X1
X2
X3
X5
Simple backtracking takes
us to X5. What happens?
X4
Back up to the conflict set


The variables that caused the problem.
Typically the set for X is the set of previously
assigned variables connected to X by constraints.
Backjumping
Backtracks to the most recent variable in
the conflict set.

Every branch pruned by backjumping is also
pruned by forward checking.
Conflict-directed backjumping
Modify backjumping to use conflict sets
that include not only the variables with
a direct conflict but also any
subsequent variables with no consistent
solution.

Look backwards and expand the conflict
set.
Conflict-Directed Backjumping
Let Xj be the current variable, and let
conf(Xj) be its conflict set. If every possible
value for Xj fails, backjump to the most
recent variable Xi in conf (Xj), and set
conf (Xi)  conf(Xi)  conf(Xj) – {Xi}.

 Does this stop us from making the same mistake
in another branch of the same tree?
Local Search
Section 4.3 discussed local search
algorithms.

Can be quite effective for CSP.
 Fairly efficient
 Can be used on-line when a problem changes.
Min-conflicts heuristic

Choose the variable with the fewest conflicts
with other variables.