 Download Download Presentation Constraint Satisfaction Problems

# Constraint Satisfaction Problems

Download Presentation ## Constraint Satisfaction Problems

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
##### Presentation Transcript

1. Constraint Satisfaction Problems

2. Intro Example: 8-Queens Generate-and-test:88 combinations

3. Intro Example: 8-Queens

4. Constraint Satisfaction Problem • Set of variables {X1, X2, …, Xn} • Each variable Xi has a domain Di of possible values • Usually Di is discrete and finite • Set of constraints {C1, C2, …, Cp} • Each constraint Ck involves a subset of variables and specifies the allowable combinations of values of these variables • Assign a value to every variable such that all constraints are satisfied

5. Example: 8-Queens Problem • 8 variables Xi, i = 1 to 8 • Domain for each variable {1,2,…,8} • Constraints are of the forms: • Xi = k  Xj k for all j = 1 to 8, ji • Xi = ki, Xj= kj |i-j| | ki - kj| • for all j = 1 to 8, ji

6. NT Q WA SA NT NSW Q V WA SA T NSW V T Example: Map Coloring • 7 variables {WA,NT,SA,Q,NSW,V,T} • Each variable has the same domain {red, green, blue} • No two adjacent variables have the same value: • WANT, WASA, NTSA, NTQ, SAQ, SANSW, SAV,QNSW, NSWV

7. Binary constraints NT Q WA NSW SA V T Constraint Graph Two variables are adjacent or neighbors if they are connected by an edge or an arc

8. {} NT Q WA WA=red WA=green WA=blue SA NSW V WA=red NT=green WA=red NT=blue T WA=red NT=green Q=red WA=red NT=green Q=blue Map Coloring

9. Backtracking Algorithm CSP-BACKTRACKING(PartialAssignment a) • If a is complete then return a • X select an unassigned variable • D  select an ordering for the domain of X • For each value v in D do • If v is consistent with a then • Add (X= v) to a • result CSP-BACKTRACKING(a) • If resultfailure then return result • Return failure CSP-BACKTRACKING({})

10. Questions • Which variable X should be assigned a value next? • In which order should its domain D be sorted? • In which order should constraints be verified?

11. NT WA NT Q WA SA SA NSW V T Choice of Variable • Map coloring

12. Choice of Variable • 8-queen

13. Choice of Variable Most-constrained-variable heuristic: Select a variable with the fewest remaining values = Fail First Principle

14. NT Q WA SA SA NSW V T Choice of Variable Most-constraining-variable heuristic: Select the variable that is involved in the largest number of constraints on other unassigned variables = Fail First Principle again

15. NT WA NT Q WA SA NSW V {} T Choice of Value

16. NT WA NT Q WA SA NSW V {blue} T Choice of Value Least-constraining-value heuristic: Prefer the value that leaves the largest subset of legal values for other unassigned variables

17. Choice of Constraint to Test Most-constraining-Constraint: Prefer testing constraints that are more difficult to satisfy = Fail First Principle

18. Constraint Propagation … … is the process of determining how the possible values of one variable affect the possible values of other variables

19. Forward Checking After a variable X is assigned a value v, look at each unassigned variable Y that is connected to X by a constraint and deletes from Y’s domain any value that is inconsistent with v

20. NT Q WA NSW SA T V Map Coloring

21. NT Q WA NSW SA T V Map Coloring

22. NT Q WA NSW SA T V Map Coloring

23. NT Q WA NSW SA T V Impossible assignments that forward checking do not detect Map Coloring

24. X1 {1,2,3,4} X2 {1,2,3,4} 1 2 3 4 1 2 3 4 X3 {1,2,3,4} X4 {1,2,3,4} Example: 4-Queens Problem

25. X1 {1,2,3,4} X2 {1,2,3,4} 1 2 3 4 1 2 3 4 X3 {1,2,3,4} X4 {1,2,3,4} Example: 4-Queens Problem

26. X1 {1,2,3,4} X2 { , ,3,4} 1 2 3 4 1 2 3 4 X3 { ,2,,4} X4 { ,2,3, } Example: 4-Queens Problem

27. X1 {1,2,3,4} X2 { ,,3,4} 1 2 3 4 1 2 3 4 X3 {,2,,4} X4 {,2,3,} Example: 4-Queens Problem

28. X1 {1,2,3,4} X2 { ,,3,4} 1 2 3 4 1 2 3 4 X3 { ,,,} X4 { ,2,3, } Example: 4-Queens Problem

29. X1 { ,2,3,4} X2 {1,2,3,4} 1 2 3 4 1 2 3 4 X3 {1,2,3,4} X4 {1,2,3,4} Example: 4-Queens Problem BT

30. X1 {,2,3,4} X2 {,,,4} X3 {1, ,3, } X4 {1, ,3,4} Example: 4-Queens Problem 1 2 3 4 1 BT 2 3 4

31. X1 {,2,3,4} X2 {,,,4} X3 {1, ,3, } X4 {1, ,3,4} Example: 4-Queens Problem 1 2 3 4 1 BT 2 3 4

32. X1 {,2,3,4} X2 {,,,4} X3 {1, , , } X4 {1, ,3, } Example: 4-Queens Problem 1 2 3 4 1 BT 2 3 4

33. X1 {,2,3,4} X2 {,,,4} X3 {1, , , } X4 {1, ,3, } Example: 4-Queens Problem 1 2 3 4 1 BT 2 3 4

34. X1 {,2,3,4} X2 {,,,4} X3 {1, , , } X4 { , ,3, } Example: 4-Queens Problem 1 2 3 4 1 BT 2 3 4

35. X1 {,2,3,4} X2 {,,,4} X3 {1, , , } X4 { , ,3, } Example: 4-Queens Problem 1 2 3 4 1 BT 2 3 4

36. Edge Labeling in Computer Vision

37. Trihedral Objects • Objects in which exactly three plane surfaces come together at each vertex. • Goal: label a 2-D object to produce a 3-D object

38. Labels of Edges • Convex edge: • two surfaces intersecting at an angle greater than 180° • Concave edge • two surfaces intersecting at an angle less than 180° • + convex edge, both surfaces visible • − concave edge, both surfaces visible •  convex edge, only one surface is visible and it is on the right side of 

39. - - + + - + + - - + + - - - - + + + - + Junction Label Sets (Waltz, 1975; Mackworth, 1977)

40. Edge Labeling

41. + + + + + - - + + + + + Edge Labeling

42. Edge Labeling as a CSP • A variable is associated with each junction • The domain of a variable is the label set of the corresponding junction • Each constraint imposes that the values given to two adjacent junctions give the same label to the joining edge

43. - + + - - + + - + Edge Labeling

44. + - - + + - - - - + + Edge Labeling

45. + + + + - + + - - + + Edge Labeling + +

46. - - + + + + + - - Edge Labeling + +

47. Removal of Arc Inconsistencies REMOVE-ARC-INCONSISTENCIES(J,K) • removed  false • X  label set of J • Y  label set of K • For every label y in Y do • If there exists no label x in X such that the constraint (x,y) is satisfied then • Remove y from Y • If Y is empty then contradiction  true • removed  true • Label set of K  Y • Return removed

48. CP Algorithm for Edge Labeling • Associate with every junction its label set • Q stack of all junctions • while Q is not empty do • J UNSTACK(Q) • For every junction K adjacent to J do • If REMOVE-ARC-INCONSISTENCIES(J,K) then • If K’s domain is non-empty then STACK(K,Q) • Else return false (Waltz, 1975; Mackworth, 1977)