Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 CS B551: Elements of Artificial Intelligence Instructor: Kris Hauser

Similar presentations


Presentation on theme: "1 CS B551: Elements of Artificial Intelligence Instructor: Kris Hauser"— Presentation transcript:

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 XYXY XZXZ YZYZ {1, 2} 29

30 30 Is AC3 all that we need?  No !!  AC3 can’t detect all contradictions among binary constraints X Z Y XYXY XZXZ YZYZ {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 XYXY XZXZ YZYZ {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 XYXY XZXZ YZYZ {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


Download ppt "1 CS B551: Elements of Artificial Intelligence Instructor: Kris Hauser"

Similar presentations


Ads by Google