Constraint Satisfaction Problems (CSPs) Russell and Norvig Chapter 6
CSP example: map coloring Given a map of Australia, color it using three colors such that no neighboring territories have the same color. 2
CSP example: map coloring 3
Constraint satisfaction problems n A CSP is composed of: q A set of variables X 1 ,X 2 , … ,X n with domains (possible values) D 1 ,D 2 , … ,D n q A set of constraints C 1 ,C 2 , … ,C m q Each constraint C i limits the values that a subset of variables can take, e.g., V 1 ≠ V 2 4
Constraint satisfaction problems n A CSP is composed of: q A set of variables X 1 ,X 2 , … ,X n with domains (possible values) D 1 ,D 2 , … ,D n q A set of constraints C 1 ,C 2 , … ,C m q Each constraint C i limits the values that a subset of variables can take, e.g., V 1 ≠ V 2 In our example: Variables: WA, NT, Q, NSW, V, SA, T n Domains: D i ={red,green,blue} n Constraints: adjacent regions must have different colors. n q E.g. WA ≠ NT (if the language allows this) or q (WA,NT) in {(red,green),(red,blue),(green,red),(green,blue),(blue,red), (blue,green)} 5
Constraint satisfaction problems n A state is defined by an assignment of values to some or all variables. n Consistent assignment: assignment that does not violate the constraints. n Complete assignment: every variable is assigned. n Goal: a complete, consistent assignment. {WA=red,NT=green,Q=red,NSW=green,V=red,SA=blue,T=green} 6
Constraint satisfaction problems n Simple example of a formal representation language n CSP benefits q Generic goal and successor functions q Useful general-purpose algorithms with more power than standard search algorithms, including generic heuristics n Applications: q Time table problems (exam/teaching schedules) q Assignment problems (who teaches what) 7
Varieties of CSPs n Discrete variables q Finite domains of size d ⇒ O(d n ) complete assignments. The satisfiability problem: a Boolean CSP n q Infinite domains (integers, strings, etc.) n Continuous variables q Linear constraints solvable in poly time by linear programming methods (dealt with in the field of operations research). n Our focus: discrete variables and finite domains 8
Varieties of constraints n Unary constraints involve a single variable. q e.g. SA ≠ green n Binary constraints involve pairs of variables. q e.g. SA ≠ WA n Global constraints involve an arbitrary number of variables. n Preferences (soft constraints) e.g. red is better than green often representable by a cost for each variable assignment; not considered here. 9
Constraint graph n Binary CSP: each constraint relates two variables n Constraint graph: nodes are variables, edges are constraints 10
Example: cryptarithmetic puzzles The constraints are represented by a hypergraph 11
CSP as a standard search problem n Incremental formulation q Initial State : the empty assignment {}. q Successor : Assign value to unassigned variable provided there is no conflict. q Goal test : the current assignment is complete. n Same formulation for all CSPs! n Solution is found at depth n ( n variables). q What search method would you choose? 12
Backtracking search n Observation: the order of assignment doesn’t matter ⇒ can consider assignment of a single variable at a time. Results in d n leaves (d: number of values per variable). n Backtracking search: DFS for CSPs with single- variable assignments (backtracks when a variable has no value that can be assigned) n The basic uninformed algorithm for CSP 13
Sudoku solving 1 2 3 4 5 6 7 8 9 A B C D E F G H I 14
Sudoku solving 1 2 3 4 5 6 7 8 9 Constraints: A B Alldiff(A1,A2,A3,A4,A5,A6,A7,A8,A9) C … D Alldiff(A1,B1,C1,D1,E1,F1,G1,H1,I1) E … F Alldiff(A1,A2,A3,B1,B2,B3,C1,C2,C3) G … H I Can be translated into constraints between pairs of variables. 15
Sudoku solving 1 2 3 4 5 6 7 8 9 A B C D E F G H I Let’s see if we can figure the value of the center grid point. Images from wikipedia and http://www.instructables.com/id/Solve-Sudoku-Without-even-thinking!/ 16
Solving Sudoku Show code for solving sudoku 17
Constraint propagation n Enforce local consistency n Propagate the implications of each constraint 18
Arc consistency n X → Y is arc-consistent iff for every value x of X there is some allowed value y of Y n Example: X and Y can take on the values 0 … 9 with the constraint: Y=X 2 . Can use arc consistency to reduce the domains of X and Y: q X → Y reduce X’s domain to {0,1,2,3} q Y → X reduce Y’s domain to {0,1,4,9} 19
The Arc Consistency Algorithm function AC-3( csp ) returns false if an inconsistency is found and true otherwise inputs : csp , a binary csp with components {X, D, C} local variables: queue, a queue of arcs initially the arcs in csp while queue is not empty do ( X i , X j ) ← REMOVE-FIRST( queue ) if REVISE( csp , X i , X j ) then if size of D i =0 then return false for each X k in X i .NEIGHBORS – { X j } do add ( X k , X i ) to queue function REVISE( csp , X i , X j ) returns true iff we revise the domain of X i revised ← false for each x in D i do if no value y in D j allows (x,y) to satisfy the constraints between X i and X j then delete x from D i revised ← true return revised 20
Arc consistency limitations n X → Y is arc-consistent iff for every value x of X there is some allowed y of Y n Consider mapping Australia with two colors. Each arc is consistent, and yet there is no solution to the CSP. n So it doesn’t help in this case 21
Path Consistency n Looks at triples of variables q The set { X i , X j } is path-consistent with respect to X m if for every assignment consistent with the constraints of X i , X j , there is an assignment to X m that satisfies the constraints on { X i , X m } and { X m , X j } n The PC-2 algorithm achieves path consistency 22
K-consistency n Stronger forms of propagation can be defined using the notion of k-consistency. n A CSP is k-consistent if for any set of k-1 variables and for any consistent assignment to those variables, a consistent value can always be assigned to any k-th variable. n Not practical! 23
Backtracking example 24
Backtracking example 25
Backtracking example 26
Backtracking example 27
Improving backtracking efficiency n General-purpose heuristics can provide huge gains in speed: q Which variable should be assigned next? q In what order should its values be tried? q Can we detect inevitable failure early? 28
Backtracking search function BACKTRACKING-SEARCH( csp ) return a solution or failure return RECURSIVE-BACKTRACKING( {} , csp ) function RECURSIVE-BACKTRACKING( assignment, csp ) return a solution or failure if assignment is complete then return assignment var ← SELECT-UNASSIGNED-VARIABLE(VARIABLES[ csp ], assignment , csp ) for each value in ORDER-DOMAIN-VALUES( var, assignment, csp ) do if value is consistent with assignment according to CONSTRAINTS[ csp ] then add {var=value} to assignment result ← RECURSIVE-BACTRACKING( assignment, csp ) if result ≠ failure then return result remove {var=value} from assignment return failure 29
Most constrained variable var ← SELECT-UNASSIGNED-VARIABLE( csp ) Choose the variable with the fewest legal values (most constrained variable) a.k.a. minimum remaining values (MRV) or “fail first” heuristic q What is the intuition behind this choice? 30
Most constraining variable n Select the variable that is involved in the largest number of constraints on other unassigned variables. n Also called the degree heuristic because that variable has the largest degree in the constraint graph. n Often used as a tie breaker e.g. in conjunction with MRV. 31
Least constraining value heuristic n Guides the choice of which value to assign next. n Given a variable, choose the least constraining value: q The value that rules out the fewest values in the remaining variables q Why is this a good idea? 32
Forward checking n Can we detect inevitable failure early? q And avoid it later! n Forward checking: keep track of remaining legal values for unassigned variables. n Terminate search direction when a variable has no legal values. 33
Forward checking Assign {WA=red} n Effects on other variables connected by constraints with WA n NT can no longer be red q SA can no longer be red q 34
Forward checking Assign {Q=green} n Effects on other variables connected by constraints with WA n NT can no longer be green q NSW can no longer be green q SA can no longer be green q 35
Forward checking If V is assigned blue n Effects on other variables connected by constraints with WA n SA is empty q NSW can no longer be blue q FC has detected that partial assignment is inconsistent with the constraints and n backtracking can occur. 36
Example: 4-Queens Problem X1 X2 {1,2,3,4} {1,2,3,4} 1 2 3 4 1 2 3 4 X3 X4 {1,2,3,4} {1,2,3,4} 37
Example: 4-Queens Problem X1 X2 {1,2,3,4} {1,2,3,4} 1 2 3 4 1 2 3 4 X3 X4 {1,2,3,4} {1,2,3,4} 38
Example: 4-Queens Problem X1 X2 {1,2,3,4} { , ,3,4} 1 2 3 4 1 2 3 4 X3 X4 { ,2, ,4} { ,2,3, } 39
Example: 4-Queens Problem X1 X2 {1,2,3,4} { , ,3,4} 1 2 3 4 1 2 3 4 X3 X4 { ,2, ,4} { ,2,3, } 40
Example: 4-Queens Problem X1 X2 {1,2,3,4} { , ,3,4} 1 2 3 4 1 2 3 4 X3 X4 { , , , } { ,2,3, } 41
Recommend
More recommend