Notes
Slide Show
Outline
1
Constraint Satisfaction Problems
  • Chapter 5
  • Sections 1 – 3
2
Outline
  • Constraint Satisfaction Problems (CSP)
  • Backtracking search for CSPs
  • Local search for CSPs
3
Constraint satisfaction problems (CSPs)
  • Standard search problem:
    • state is a “black box” – any data structure that supports successor function, heuristic function, and goal test
  • CSP:
    • state is defined by variables Xi with values from domain Di
    • goal test is a set of constraints specifying allowable combinations of values for subsets of variables


  • Simple example of a formal representation language


  • Allows useful general-purpose algorithms with more power than standard search algorithms
4
Example: Map-Coloring
  • Variables WA, NT, Q, NSW, V, SA, T
  • Domains Di = {red,green,blue}
  • Constraints: adjacent regions must have different colors
  • e.g., WA ≠ NT, or (WA,NT) in {(red,green),(red,blue),(green,red), (green,blue),(blue,red),(blue,green)}
5
Example: Map-Coloring
  • Solutions are complete and consistent assignments, e.g., WA = red, NT = green,Q = red,NSW = green,V = red,SA = blue,T = green
6
Constraint graph
  • Binary CSP: each constraint relates two variables
  • Constraint graph: nodes are variables, arcs are constraints
7
Varieties of CSPs
  • Discrete variables
    • finite domains:
      • n variables, domain size d à O(dn) complete assignments
      • e.g., Boolean CSPs, incl.~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 in polynomial time by linear programming
8
Varieties of constraints
  • Unary constraints involve a single variable,
    • e.g., SA ≠ green

  • Binary constraints involve pairs of variables,
    • e.g., SA ≠ WA


  • Higher-order constraints involve 3 or more variables,
    • e.g., cryptarithmetic column constraints
9
Example: Task Scheduling
10
Example: Cryptarithmetic
  • Variables: F T U W
    R O X1 X2 X3
  • Domains: {0,1,2,3,4,5,6,7,8,9}
  • Constraints: Alldiff (F,T,U,W,R,O)
    • O + O = R + 10 · X1
    • X1 + W + W = U + 10 · X2
    • X2 + T + T = O + 10 · X3
    • X3 = F, T ≠ 0, F ≠ 0
11
Real-world CSPs
  • Assignment problems
    • e.g., who teaches what class
  • Timetabling problems
    • e.g., which class is offered when and where?
  • Transportation scheduling
  • Factory scheduling


  • Notice that many real-world problems involve real-valued variables
12
Standard search formulation (incremental)
  • Let's start with the straightforward approach, then fix it


  • States are defined by the values assigned so far


  • Initial state: the empty assignment { }
  • Successor function: assign a value to an unassigned variable that does not conflict with current assignment
    • à fail if no legal assignments
  • Goal test: the current assignment is complete


  • This is the same for all CSPs
  • Every solution appears at depth n with n variables
    à use depth-first search
  • Path is irrelevant, so can also use complete-state formulation
13
CSP Search tree size
  • b = (n - l )d at depth l, hence n! · dn leaves


14
Backtracking search
  • Variable assignments are commutative, i.e.,
  • [ WA = red then NT = green ] same as [ NT = green then WA = red ]


  • Only need to consider assignments to a single variable at each node
    • Fix an order in which we’ll examine the variables
    • à b = d and there are dn leaves


  • Depth-first search for CSPs with single-variable assignments is called backtracking search
    • Is the basic uninformed algorithm for CSPs
    • Can solve n-queens for n ≈ 25
15
Backtracking search
16
Backtracking example
17
Backtracking example
18
Backtracking example
19
Backtracking example
20
Exercise - paint the town!
  • Districts across corners can be colored using the same color.
21
Constraint Graph
22
Improving backtracking efficiency
  • General-purpose methods can give huge gains in speed:
    • Which variable should be assigned next?


    • In what order should its values be tried?


    • Can we detect inevitable failure early?
23
Most constrained variable
  • Most constrained variable:
    • choose the variable with the fewest legal values


  • a.k.a. minimum remaining values (MRV) heuristic
24
Most constraining variable
  • Tie-breaker among most constrained variables
  • Most constraining variable:
    • choose the variable with the most constraints on remaining variables
25
Least constraining value
  • Given a variable, choose the least constraining value:
    • the one that rules out the fewest values in the remaining variables




  • Combining these heuristics makes 1000 queens feasible
26
Forward checking
  • Idea:
    • Keep track of remaining legal values for unassigned variables
    • Terminate search when any variable has no legal values
27
Forward checking
  • Idea:
    • Keep track of remaining legal values for unassigned variables
    • Terminate search when any variable has no legal values
28
Forward checking
  • Idea:
    • Keep track of remaining legal values for unassigned variables
    • Terminate search when any variable has no legal values
29
Forward checking
  • Idea:
    • Keep track of remaining legal values for unassigned variables
    • Terminate search when any variable has no legal values
30
Constraint propagation
  • Forward checking propagates information from assigned to unassigned variables, but doesn't provide early detection for all failures:






  • NT and SA cannot both be blue!
  • Constraint propagation repeatedly enforces constraints locally
31
Arc consistency
  • Simplest form of propagation makes each arc consistent
  • X àY is consistent iff
    • for every value x of X there is some allowed y
32
More on arc consistency
  • Arc consistency is based on a very simple concept
    • if we can look at just one constraint and see that x=v is impossible …
    • obviously we can remove the value x=v from consideration
  • How do we know a value is impossible?
  • If the constraint provides no support for the value
  • e.g. if Dx = {1,4,5} and Dy = {1, 2, 3}
    • then the constraint x > y provides no support for x=1
    • we can remove x=1 from Dx
33
Arc consistency
  • Simplest form of propagation makes each arc consistent
  • X àY is consistent iff
    • for every value x of X there is some allowed y








  • Arcs are directed, a binary constraint becomes two arcs
  • NSW Þ SA arc originally not consistent, is consistent after deleting blue
34
Arc consistency
  • Simplest form of propagation makes each arc consistent
  • X àY is consistent iff
    • for every value x of X there is some allowed y







  • If X loses a value, neighbors of X need to be (re)checked
35
Arc Consistency Propagation
  • When we remove a value from Dx, we may get new removals because of it
  • E.g. Dx = {1,4,5}, Dy = {1, 2, 3}, Dz= {2, 3, 4, 5}
    • x > y,  z > x
    • As before we can remove 1 from Dx, so Dx = {4,5}
    • But now there is no support for Dz = 2,3,4
    • So we can remove those values, Dz = {5}, so z=5
    • Before AC applied to y-x, we could not change Dz
  • This can cause a chain reaction


36
Arc consistency
  • Simplest form of propagation makes each arc consistent
  • X àY is consistent iff
    • for every value x of X there is some allowed y







  • If X loses a value, neighbors of X need to be (re)checked
  • Arc consistency detects failure earlier than forward checking
  • Can be run as a preprocessor or after each assignment
37
Arc consistency algorithm AC-3
  • Time complexity: O(n2d3)
38
Time complexity of AC-3
  • CSP has n2 directed
    arcs
  • Each arc Xi,Xj has d
    possible values.
    For each value we
    can reinsert the
    neighboring arc
    Xk,Xi at most d times because Xi has d values
  • Checking an arc requires at most d2 time


  • O(n2 * d * d2) = O(n2d3)
39
Maintaining AC (MAC)
  • Like any other propagation, we can use AC in search
  • i.e. search proceeds as follows:
    • establish AC at the root
    • when AC3 terminates, choose a new variable/value
    • re-establish AC given the new variable choice (i.e. maintain AC)
    • repeat;
    • backtrack if AC gives domain wipe out
  • The hard part of implementation is undoing effects of AC
40
Special kinds of Consistency
  • Some kinds of constraint lend themselves to special kinds of arc-consistency
  • Consider the all-different constraint
    • the named variables must all take different values
    • not a binary constraint
    • can be expressed as n(n-1)/2 not-equals constraints
  • We can apply (e.g.) AC3 as usual
  • But there is a much better option
41
All Different
  • Suppose Dx = {2,3} = Dy, Dz = {1,2,3}
  • All the constraints x¹y, y¹z, z¹x are all arc consistent
    • e.g. x=2 supports the value z = 3
  • The single ternary constraint AllDifferent(x,y,z) is not!
    • We must set z = 1
  • A special purpose algorithm exists for All-Different to establish GAC in efficient time
    • Special purpose propagation algorithms are vital

42
K-consistency
  • Arc Consistency (2-consistency) can be extended to k-consistency


  • 3-consistency (path consistency): any pair of adjacent variables can always be extended to a third neighbor.
    • Catches problem with Dx, Dy and Dz, as assignment of Dz = 2 and Dx = 3 will lead to domain wipe out.
    • But is expensive, exponential time
  • n-consistency means the problem is solvable in linear time
    • As any selection of variables would lead to a solution
  • In general, need to strike a balance between consistency and search.
    • This is usually done by experimentation.
43
Local search for CSPs
  • Hill-climbing, simulated annealing typically work with "complete" states, i.e., all variables assigned


  • To apply to CSPs:
    • allow states with unsatisfied constraints
    • operators reassign variable values

  • Variable selection: randomly select any conflicted variable


  • Value selection by min-conflicts heuristic:
    • choose value that violates the fewest constraints
    • i.e., hill-climb with h(n) = total number of violated constraints
44
Example: 4-Queens
  • States: 4 queens in 4 columns (44 = 256 states)
  • Actions: move queen in column
  • Goal test: no attacks
  • Evaluation: h(n) = number of attacks






  • Given random initial state, can solve n-queens in almost constant time for arbitrary n with high probability (e.g., n = 10,000,000)
45
Summary
  • CSPs are a special kind of problem:
    • states defined by values of a fixed set of variables
    • goal test defined by constraints on variable values


  • Backtracking = depth-first search with one variable assigned per node


  • Variable ordering and value selection heuristics help significantly


  • Forward checking prevents assignments that guarantee later failure


  • Constraint propagation (e.g., arc consistency) does additional work to constrain values and detect inconsistencies


  • Iterative min-conflicts is usually effective in practice
46
Midterm test
  • Five questions, first hour of class
    (be on time!)
  • Topics to be covered (CSP is not on the midterm):
    • Chapter 2 – Agents
    • Chapter 3 – Uninformed Search
    • Chapter 4 – Informed Search
      • Not including the parts of 4.1 (memory-bounded heuristic search) and 4.5
    • Chapter 6 – Adversarial Search
      • Not including 6.5 (games with chance)
47
Homework #1
  • Due today by 23:59:59 in the IVLE workbin.
  • Late policy given on website.  Only one submission will be graded, whichever one is latest.
  • Your tagline is used to generate the ID to identify your agent on the scoreboard.
  • If you don’t have an existing account fill out: https://mysoc.nus.edu.sg/~eform/new and send me e-mail ASAP.


48
Checklist for HW #1
  • Does it compile?
  • Is my code in a single file?
  • Did I comment my code so that it’s understandable to the reader?
  • Is the main class appropriately named?
  • Did I place a unique tagline so I can identify my player on the scoreboard?