Solving Constraint Satisfaction Problems:
Search and Forward Checking
Brian C. Williams
16.41013
Session 11
Slides draw from material from:
6.034 notes, by Tomas Lozano Perez
AIMA, by Stuart Russell & Peter Norvig
Constraint Processing, by Rina Dechter
1
1
Reading Assignments: Constraint Satisfaction
Readings:
• Lecture Slides (most material in slides only, READ ALL).
• AIMA Ch. 5 – Constraint Satisfaction Problems (CSPs)
• For more detail: Ch. 5 of Constraint Processing,  Dechter.
Problem Set #5:
• Covers search methods for solving constraints.
• Online.
• Out today, October 19
th
.
• Due next Wednesday, October 26
th
.
• Get started early!
MidTerm:
• Monday, October 31
st.
• No problem Set that week.
• Sample Midterm, distributed and posted.
2
To Solve CSPs we combine
arc consistency and search
1.
Arc consistency (Constraint propagation),
•
Eliminates values that are shown locally to not be a
part of any solution.
2.
Search
•
Explores consequences of committing to particular
assignments.
Methods That Incorporate Search:
•
Standard Search
•
Back Track Search (BT)
•
BT with Forward Checking (FC)
•
Dynamic Variable Ordering (DV)
(Appendix)
•
Iterative Repair (IR)
(Appendix)
•
Back Jumping (BJ)
(Appendix)
3
Solving CSPs with Standard Search
• State
• Variable assignments thus far
• Initial State
• No assignments
• Operator
• New assignment =
• Select any unassigned variable
• Select any one of its domain values
• Child extend assignments with new
• Goal Test
• All variables are assigned
• All constraints are satisfied
• Branching factor?
R, G
R, G
R, G, B
V
1
�
Sum of domain size of all variables
O(v*d)
V
2
V
3
• Performance?
�
Exponential of branching factor O([v*d]
n
)
4
Search Performance on N Queens
1
2
Q
Q
3
Q
4
Q
•
Standard Search
• A handful of queens
•
Backtracking
5
Solving CSPs with Standard Search
Standard Search:
•
Children select any value to any variable [O(v*d)]
•
Test complete assignments against CSP
Observations:
1.
The order in which variables are assigned does not change the so lution.
�
Many paths denote the same solution (n!),
�
so expand only one path (i.e., one variable ordering).
2.
We can identify a dead end before assigning all variables
�
Extensions to inconsistent partial assignments are always
inconsistent
�
So check after each assignment.
R, G
R, G
R, G, B
V
1
V
2
V
3
6
1
This preview has intentionally blurred sections. Sign up to view the full version.
View Full Document
BackTrack Search (BT)
1.
Expand the assignments of only one variable at each step.
2.
Pursue depth first.
3.
Check consistency after each expansion, and backup.
G
R
B
V
1
assignments
V
2
assignments
V
3
assignments
Preselect order
Expand
R, G
R, G
R, G, B
V
1
of variables to
designated
assign
variable
V
2
V
3
7
Procedure Backtracking(<x,D,C>)
Input
: A constraint network R = <X, D, C>
Output
: A solution, or notification the network is inconsistent.
This is the end of the preview.
Sign up
to
access the rest of the document.
 Fall '05
 BrianWilliams
 Backtracking, Constraint satisfaction, Constraint satisfaction problem, Standard Search

Click to edit the document details