Download presentation
Presentation is loading. Please wait.
Published byEllen Cook Modified over 8 years ago
1
1 CS B551: Elements of Artificial Intelligence Instructor: Kris Hauser http://cs.indiana.edu/~hauserk
2
2 Constraint Propagation … … is the process of determining how the constraints and the possible values of one variable affect the possible values of other variables It is an important form of “least-commitment” reasoning 2
3
3 Forward checking is only on simple form of constraint propagation When a pair (X v) is added to assignment A do: For each variable Y not in A do: For every constraint C relating Y to variables in A do: Remove all values from Y’s domain that do not satisfy C 3 n = number of variables d = size of initial domains s = maximum number of constraints involving a given variable (s n-1) Forward checking takes O(nsd) time
4
4 WANTQNSWVSAT RGBRGBRGBRGBRGBRGBRGBRGBRGBRGBRGBRGBRGBRGB RRGBRGBRGBRGBRGBRGBRGBRGBRGBRGBRGBRGB RGBGBGRGBRGBRGBRGBGBGBRGBRGB RBGRBRBBBRGBRGB Forward Checking in Map Coloring Empty set: the current assignment {(WA R), (Q G), (V B)} does not lead to a solution 4
5
5 Forward Checking in Map Coloring T WA NT SA Q NSW V Contradiction that forward checking did not detect WANTQNSWVSAT RGBRGBRGBRGBRGBRGBRGBRGBRGBRGBRGBRGBRGBRGB RRGBRGBRGBRGBRGBRGBRGBRGBRGBRGBRGBRGB RGBGBGRGBRGBRGBRGBGBGBRGBRGB RBGRBRBBBRGBRGB 5
6
6 Forward Checking in Map Coloring T WA NT SA Q NSW V Contradiction that forward checking did not detect WANTQNSWVSAT RGBRGBRGBRGBRGBRGBRGBRGBRGBRGBRGBRGBRGBRGB RRGBRGBRGBRGBRGBRGBRGBRGBRGBRGBRGBRGB RGBGBGRGBRGBRGBRGBGBGBRGBRGB RBGRBRBBBRGBRGB Detecting this contradiction requires a more powerful constraint propagation technique 6
7
7 Constraint Propagation for Binary Constraints REMOVE-VALUES(X,Y) 1. removed false 2. For every value v in the domain of Y do –If there is no value u in the domain of X such that the constraint on (X,Y) is satisfied then a. Remove v from Y‘s domain b. removed true 3. Return removed 7
8
8 Constraint Propagation for Binary Constraints AC3 1. Initialize queue Q with all variables (not yet instantiated) 2. While Q do a. X Remove(Q) b. For every (not yet instantiated) variable Y related to X by a (binary) constraint do – If REMOVE-VALUES(X,Y) then i. If Y’s domain = then exit ii. Insert(Y,Q) 8
9
9 Edge Labeling We consider an image of a scene composed of polyhedral objects such that each vertex is the endpoint of exactly three edges R&N: Chap. 24, pages 881-884 9
10
10 Edge Labeling An “edge extractor” has accurately extracted all the visible edges in the image. The problem is to label each edge as convex (+), concave (-), or occluding ( ) such that the complete labeling is physically possible 10
11
11 Convex edges Concave edges Occluding edges 11
12
12 + - - + + + + + The arrow is oriented such that the object is on the right of the occluding edge 12
13
13 One Possible Edge Labeling + + + + + + + + + + - - 13
14
14 Junction Types Fork L T Y 14
15
15 Junction Label Sets ++ - - - -- ++ ++ + + + - - - - - + (Waltz, 1975; Mackworth, 1977) 15
16
16 Edge Labeling as a CSP A variable is associated with each junction The domain of a variable is the label set associated with the junction type Constraints: The values assigned to two adjacent junctions must give the same label to the joining edge 16
17
17 Q = (X 1, X 2, X 3,...) X1X1 X5X5 X3X3 X8X8 X 12 X2X2 X4X4 AC3 Applied to Edge Labeling 17
18
18 + - + - + - - + + X1X1 X5X5 Q = (X 1,...) AC3 Applied to Edge Labeling 18
19
19 + - + - + - - + + X1X1 X5X5 Q = (X 1,...) 19
20
20 + - + - + - - + + X5X5 Q = (X 5,...) 20
21
21 + + + + - - - - - - + Q = (X 5,...) X5X5 X3X3 21
22
22 + + + + - - - - - - + Q = (X 5,...) X5X5 X3X3 22
23
23 + + + + - - - - - - + Q = (X 3,...) X3X3 23
24
24 + + + + + - -- ++ ++ Q = (X 3,...) X3X3 X8X8 + 24
25
25 + + + + + - -- ++ ++ Q = (X 3,...) X3X3 X8X8 + 25
26
26 + + + + + - -- ++ ++ Q = (X 8,...) X8X8 + 26
27
27 + + -- ++ ++ - - + X 12 X8X8 Q = (X 8,...) 27
28
28 Complexity Analysis of AC3 n = number of variables d = size of initial domains s = maximum number of constraints involving a given variable (s n-1) Each variables is inserted in Q up to d times REMOVE-VALUES takes O(d 2 ) time AC3 takes O(n d s d 2 ) = O(n s d 3 ) time Usually more expensive than forward checking 28 AC3 1.Initialize queue Q with all variables (not yet instantiated) 2.While Q do a.X Remove(Q) b.For every (not yet instantiated) variable Y related to X by a (binary) constraint do –If REMOVE-VALUES(X,Y) then i.If Y’s domain = then exit ii.Insert(Y,Q)
29
29 Is AC3 all that we need? No !! AC3 can’t detect all contradictions among binary constraints X Z Y XYXY XZXZ YZYZ {1, 2} 29
30
30 Is AC3 all that we need? No !! AC3 can’t detect all contradictions among binary constraints X Z Y XYXY XZXZ YZYZ {1, 2} REMOVE-VALUES(X,Y) 1. removed false 2. For every value v in the domain of Y do –If there is no value u in the domain of X such that the constraint on (X,Y) is satisfied then a. Remove v from Y‘s domain b. removed true 3. Return removed 30
31
31 Is AC3 all that we need? No !! AC3 can’t detect all contradictions among binary constraints X Z Y XYXY XZXZ YZYZ {1, 2} REMOVE-VALUES(X,Y) 1. removed false 2. For every value v in the domain of Y do –If there is no value u in the domain of X such that the constraint on (X,Y) is satisfied then a. Remove v from Y‘s domain b. removed true 3. Return removed REMOVE-VALUES(X,Y,Z) 1. removed false 2. For every value w in the domain of Z do –If there is no pair (u,v) of values in the domains of X and Y verifying the constraint on (X,Y) such that the constraints on (X,Z) and (Y,Z) are satisfied then a. Remove w from Z‘s domain b. removed true 3. Return removed 31
32
32 Is AC3 all that we need? No !! AC3 can’t detect all contradictions among binary constraints Not all constraints are binary X Z Y XYXY XZXZ YZYZ {1, 2} 32
33
33 Tradeoff Generalizing the constraint propagation algorithm increases its time complexity Tradeoff between time spent in backtracking search and time spent in constraint propagation A good tradeoff when all or most constraints are binary is often to combine backtracking with forward checking and/or AC3 (with REMOVE- VALUES for two variables) 33
34
34 Modified Backtracking Algorithm with AC3 CSP-BACKTRACKING(A, var-domains) 1.If assignment A is complete then return A 2.Run AC3 and update var-domains accordingly 3.If a variable has an empty domain then return failure 4.X select a variable not in A 5.D select an ordering on the domain of X 6.For each value v in D do a.Add (X v) to A b.var-domains forward checking(var-domains, X, v, A) c.If no variable has an empty domain then (i) result CSP-BACKTRACKING(A, var-domains) (ii) If result failure then return result d.Remove (X v) from A 7.Return failure 34
35
35 A Complete Example: 4-Queens Problem 1 3 2 4 3241 X 1 {1,2,3,4} X 3 {1,2,3,4} X 4 {1,2,3,4} X 2 {1,2,3,4} 1) The modified backtracking algorithm starts by calling AC3, which removes no value 35
36
36 4-Queens Problem 1 3 2 4 3241 X 1 {1,2,3,4} X 3 {1,2,3,4} X 4 {1,2,3,4} X 2 {1,2,3,4} 2)The backtracking algorithm then selects a variable and a value for this variable. No heuristic helps in this selection. X 1 and the value 1 are arbitrarily selected 36
37
37 4-Queens Problem 1 3 2 4 3241 X 1 {1,2,3,4} X 3 {1,2,3,4} X 4 {1,2,3,4} X 2 {1,2,3,4} 3)The algorithm performs forward checking, which eliminates 2 values in each other variable’s domain 37
38
38 4-Queens Problem 1 3 2 4 3241 X 1 {1,2,3,4} X 3 {1,2,3,4} X 4 {1,2,3,4} X 2 {1,2,3,4} 4)The algorithm calls AC3 38
39
39 4-Queens Problem 1 3 2 4 3241 X 1 {1,2,3,4} X 3 {1,2,3,4} X 4 {1,2,3,4} X 2 {1,2,3,4} 4)The algorithm calls AC3, which eliminates 3 from the domain of X 2 X 2 = 3 is incompatible with any of the remaining values of X 3 39
40
40 4-Queens Problem 1 3 2 4 3241 X 1 {1,2,3,4} X 3 {1,2,3,4} X 4 {1,2,3,4} X 2 {1,2,3,4} 4)The algorithm calls AC3, which eliminates 3 from the domain of X 2, and 2 from the domain of X 3 40
41
41 4-Queens Problem 1 3 2 4 3241 X 1 {1,2,3,4} X3{1,2,3,4}X3{1,2,3,4} X 4 {1,2,3,4} X 2 {1,2,3,4} 4)The algorithm calls AC3, which eliminates 3 from the domain of X 2, and 2 from the domain of X 3, and 4 from the domain of X 3 41
42
42 4-Queens Problem 1 3 2 4 3241 X 1 {1,2,3,4} X3{1,2,3,4}X3{1,2,3,4} X 4 {1,2,3,4} X 2 {1,2,3,4} 5)The domain of X 3 is empty backtracking 42
43
43 4-Queens Problem 1 3 2 4 3241 X 1 {1,2,3,4} X 3 {1,2,3,4} X 4 {1,2,3,4} X 2 {1,2,3,4} 6)The algorithm removes 1 from X 1 ’s domain and assign 2 to X 1 43
44
44 4-Queens Problem 1 3 2 4 3241 X 1 {1,2,3,4} X 3 {1,2,3,4} X 4 {1,2,3,4} X 2 {1,2,3,4} 7)The algorithm performs forward checking 44
45
45 4-Queens Problem 1 3 2 4 3241 X 1 {1,2,3,4} X 3 {1,2,3,4} X 4 {1,2,3,4} X 2 {1,2,3,4} 8)The algorithm calls AC3 45
46
46 4-Queens Problem 1 3 2 4 3241 X 1 {1,2,3,4} X 3 {1,2,3,4} X 4 {1,2,3,4} X 2 {1,2,3,4} 8)The algorithm calls AC3, which reduces the domains of X 3 and X 4 to a single value 46
47
47 Exploiting the Structure of CSP If the constraint graph contains several components, then solve one independent CSP per component T WA NT SA Q NSW V 47
48
48 Exploiting the Structure of CSP If the constraint graph is a tree, then : 1.Order the variables from the root to the leaves (X 1, X 2, …, X n ) 2.For j = n, n-1, …, 2 call REMOVE-VALUES(X j, X i ) where X i is the parent of X j 3.Assign any valid value to X 1 4.For j = 2, …, n do Assign any value to X j consistent with the value assigned to its parent X i X YZ U V W (X, Y, Z, U, V, W) 48
49
49 Exploiting the Structure of CSP Whenever a variable is assigned a value by the backtracking algorithm, propagate this value and remove the variable from the constraint graph WA NT SA Q NSW V 49
50
50 WA NT Q NSW V Exploiting the Structure of CSP Whenever a variable is assigned a value by the backtracking algorithm, propagate this value and remove the variable from the constraint graph If the graph becomes a tree, then proceed as shown in previous slide 50
51
51 8 58 9 3 2 2 9 5 6 9 2 7 7 4 Representation Variables X ij for i, j in {1,..,9} Domains {1,…,9} Constraints: X ij X ik, for j k X ij X kj, for i k X ij X mn, for (i,j), (m,n) in same cell
52
52 8 58 9 3 2 2 9 5 6 9 2 7 7 4 Representation Variables X ij for i, j in {1,..,9} Domains {1,…,9} Constraints: X ij X ik, for j k X ij X kj, for i k X ij X mn, for (i,j), (m,n) in same cell
53
53 8 58 9 3 2 2 9 5 6 9 2 7 7 4 Representation Variables X ij for i, j in {1,..,9} Domains {1,…,9} Constraints: X ij X ik, for j k X ij X kj, for i k X ij X mn, for (i,j), (m,n) in same cell Can we detect this using constraint propagation?
54
54 8 58 9 3 2 2 9 5 6 9 2 7 7 4 Representation Variables X ij for i, j in {1,..,9} Domains {1,…,9} Constraints: X ij X ik, for j k X ij X kj, for i k X ij X mn, for (i,j), (m,n) in same cell Must detect 9- way interactions
55
55 8 58 9 3 2 2 9 5 6 9 2 7 7 4 Representation 2 Variables R i j in {1,…,9} C i j in {1,…,9} X i j in {(1,1),…,(3,3)} Constraints: ??? R 1 8 =3 R 2 2 =8 R 3 2 =6 R 3 7 =9 … C 1 5 =4 C 1 2 =9 C 2 8 =4C 3 8 =1 C 3 3 =8 C 3 9 =5 …
56
56 8 58 9 3 2 2 9 5 6 9 2 7 7 4 Representation 2 Variables R i j in {1,…,9} C i j in {1,…,9} X i j in {(1,1),…,(3,3)} Constraints: ??? R 1 8 =3 R 2 2 =8 R 3 2 =6 R 3 7 =9 … C 1 5 =4 C 1 2 =9 C 2 8 =4C 3 8 =1 C 3 3 =8 C 3 9 =5 … X 1 8 = (1,3)
57
57 8 58 9 3 2 2 9 5 6 9 2 7 7 4 Representation 2 Variables R i j in {1,…,9} C i j in {1,…,9} X i j in {(1,1),…,(3,3)} Constraints: ??? R 1 8 =3 R 2 2 =8 R 3 2 =6 R 3 7 =9 … C 1 5 =4 C 1 2 =9 C 2 8 =4C 3 8 =1 C 3 3 =8 C 3 9 =5 … X 1 8 = (1,3)X 2 2 = (3,3)
58
58 8 58 9 3 2 2 9 5 6 9 2 7 7 4 Representation 2 Variables R i j in {1,…,9} C i j in {1,…,9} X i j in {(1,1),…,(3,3)} Constraints: ??? R 1 8 =3 R 2 2 =8 R 3 2 =6 R 3 7 =9 … C 1 5 =4 C 1 2 =9 C 2 8 =4C 3 8 =1 C 3 3 =8 C 3 9 =5 … X 1 8 = (1,3)X 2 2 = (3,3) X 3 2 = (2,3) X 3 7 = (3,3)
59
59 8 58 9 3 2 2 9 5 6 9 2 7 7 4 Representation 2 Variables R i j in {1,…,9} C i j in {1,…,9} X i j in {(1,1),…,(3,3)} Constraints: R i j =k C k j =I Similar constraints between X’s and R’s, X’s and C’s R i j R i k for j k C i j C i k for j k X i j X i k for j k R 1 8 =3 R 2 2 =8 R 3 2 =6 R 3 7 =9 … C 1 5 =4 C 1 2 =9 C 2 8 =4C 3 8 =1 C 3 3 =8 C 3 9 =5 … X 1 8 = (1,3)X 2 2 = (3,3) X 3 2 = (2,3) X 3 7 = (3,3)
60
60 8 58 9 3 2 2 9 5 6 9 2 7 7 4 Representation 2 Variables R i j in {1,…,9} C i j in {1,…,9} X i j in {(1,1),…,(3,3)} Constraints: R i j =k C k j =i Similar constraints between X’s and R’s, X’s and C’s R i j R i k for j k C i j C i k for j k X i j X i k for j k C 2 2 = {1-9}C 1 2 = 9 R 1 2 = {2-9}
61
61 8 58 9 3 2 2 9 5 6 9 2 7 7 4 Representation 2 Variables R i j in {1,…,9} C i j in {1,…,9} X i j in {(1,1),…,(3,3)} Constraints: R i j =k C k j =I Similar constraints between X’s and R’s, X’s and C’s R i j R i k for j k C i j C i k for j k X i j X i k for j k C 1 2 = 9 R 1 2 = {1-9}
62
62 8 58 9 3 2 2 9 5 6 9 2 7 7 4 Representation 2 Variables R i j in {1,…,9} C i j in {1,…,9} X i j in {(1,1),…,(3,3)} Constraints: R i j =k C k j =I Similar constraints between X’s and R’s, X’s and C’s R i j R i k for j k C i j C i k for j k X i j X i k for j k C 1 2 = 9 R 1 2 = {2-9} X 2 2 = (3,3) X 3 2 = (2,2)
63
63 8 58 9 3 2 2 9 5 6 9 2 7 7 4 Representation 2 Variables R i j in {1,…,9} C i j in {1,…,9} X i j in {(1,1),…,(3,3)} Constraints: R i j =k C k j =I Similar constraints between X’s and R’s, X’s and C’s R i j R i k for j k C i j C i k for j k X i j X i k for j k C 1 2 = 9 R 1 2 =2 X 2 2 = (3,3) X 3 2 = (2,2)
64
64 28 58 9 3 2 2 9 5 6 9 2 7 7 4 Representation 2 Variables R i j in {1,…,9} C i j in {1,…,9} X i j in {(1,1),…,(3,3)} Constraints: R i j =k C k j =I Similar constraints between X’s and R’s, X’s and C’s R i j R i k for j k C i j C i k for j k X i j X i k for j k C 1 2 = 9 R 1 2 =2 X 2 2 = (3,3) X 3 2 = (2,2)
65
65 Local Search for CSPs Init: Make an arbitrary assignment Repeat: Modify some variable to reduce # of violated constraints
66
66 Boolean Satisfiability Problems Highly successful local search algorithms WalkSAT See R&N 7.3 p constraints of form u i * u j * u k *= 1 where u i * is either u i or u i n variables u i, …, u n
67
67 Observations… If a CSP has few constraints, local search solves it quickly Random starting assignment not too far from a solution Million-queens puzzles solved in < 1min, c. 1990 If a CSP has many constraints, local search solves it quickly Constraints “guide” solver to a solution (if one exists)
68
68 Hard Sudoku’s 1.. |... |.. 2. 9. | 4.. |. 5... 6 |... | 7.. ------+-------+------. 5. | 9. 3 |...... |. 7. |...... | 8 5. |. 4. ------+-------+------ 7.. |... | 6... 3. |.. 9 |. 8... 2 |... |.. 1 Human solvers: Lot of logic (deep constraint propagation) Computer solvers: Lot of backtracking
69
69 Hard & Easy 3-SAT Problems Let R = # of constraints / # of variables As n , the fraction of hard problems reduces to 0
70
70 Recap Constraint propagation, AC3 Taking advantage of CSP structure Local search for CSPs
71
71 Next Class Adversarial Search (game playing) R&N 6.1-3
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.