CHP - 5 - CSPs - Hamid - AI
CHP - 5 - CSPs - Hamid - AI
▪ Variables:
▪ Each (open) square
▪ Domains:
▪ {1,2,…,9}
▪ Constraints:
9-way alldiff for each column
9-way alldiff for each row
9-way alldiff for each region
(or can have a bunch of pairwise
inequality constraints)
Sudoku
•Variables: 81 slots
•Domains =
{1,2,3,4,5,6,7,8,9}
•Constraints:
•27 not-equal
Constraint
propagation
23
426
▪ Variables: 0 1 2 3
Q1, Q2, Q3, Q4 0
▪ Domains: 1
4 * 4 chess Board
2
▪ Constraints: 3
OR
• A state is an assignment of values to some of all variables.
• Types of assignments
• Local Assignment
• Partial Assignment
• Complete Assignment
CSP Assignment
• Complete Assignment
• An Assignment is complete when every variable has a value.
• Partial Assignment
• An Assignment is partial when variable has no value.
Varieties of CSPs
▪ Discrete variables
▪ finite domains:
▪ n variables, domain size d → O(dn) complete assignments
▪ e.g., Boolean CSPs, includes Boolean satisfiability (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
19
in polynomial time by linear programming
Varieties of constraints
▪ Unary constraints involve a single variable,
▪ e.g., SA ≠ green
x
Red? x
Green? x
Blue?
Constraint graph
▪ Binary CSP: each constraint relates two variables
▪ Constraint graph:
▪ nodes are variables
▪ arcs are constraints
▪ CSP benefits
▪ Standard representation pattern
▪ Generic goal and successor functions
▪ Generic heuristics (no domain specific expertise).
V
NT
Q T
WA NT
Q
NS
SA WA
W NS
SA
W
V
NT V
Q T
WA T
NT
NS Q NT
SA WA
Q
W WA
NS
SA NS
W SA
V W
V
T V
NT T
Q T
WA
NS NT
SA Q
W
WA
NS
V SA
W
T V
NT T
Q
WA NT
Q
NS WA
SA
W NS
SA
W
V
V
T
T
Improving backtracking efficiency
▪ General-purpose methods can give huge speed gains:
▪ Which variable should be assigned next?
▪ In what order should its values be tried?
▪ Can we detect inevitable failure early?
• Heuristics:
1. Most constrained variable
2. Most constraining variable
3. Most constraining variable
4. Forward checking
Most constrained variable
▪ Most constrained variable:
choose the variable with the fewest legal values
▪ Idea:
▪ Keep track of remaining legal values for unassigned variables
▪ Terminate search when any variable has no legal values
Forward checking
▪ Idea:
▪ Keep track of remaining legal values for unassigned variables
▪ Terminate search when any variable has no legal values
Forward checking
▪ Idea:
▪ Keep track of remaining legal values for unassigned variables
▪ Terminate search when any variable has no legal values