1
|
|
2
|
- Constraint Satisfaction Problems (CSP)
- Backtracking search for CSPs
- Local search for CSPs
|
3
|
- 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
|
- 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
|
- Solutions are complete and consistent assignments, e.g., WA = red, NT =
green,Q = red,NSW = green,V = red,SA = blue,T = green
|
6
|
- Binary CSP: each constraint relates two variables
- Constraint graph: nodes are variables, arcs are constraints
|
7
|
- 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
|
- Unary constraints involve a single variable,
- Binary constraints involve pairs of variables,
- Higher-order constraints involve 3 or more variables,
- e.g., cryptarithmetic column constraints
|
9
|
|
10
|
- 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
|
- 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
|
- 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
|
- b = (n - l )d at depth l, hence n! · dn leaves
|
14
|
- 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
|
|
16
|
|
17
|
|
18
|
|
19
|
|
20
|
- Districts across corners can be colored using the same color.
|
21
|
|
22
|
- 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:
- choose the variable with the fewest legal values
- a.k.a. minimum remaining values (MRV) heuristic
|
24
|
- Tie-breaker among most constrained variables
- Most constraining variable:
- choose the variable with the most constraints on remaining variables
|
25
|
- 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
|
- Idea:
- Keep track of remaining legal values for unassigned variables
- Terminate search when any variable has no legal values
|
27
|
- Idea:
- Keep track of remaining legal values for unassigned variables
- Terminate search when any variable has no legal values
|
28
|
- Idea:
- Keep track of remaining legal values for unassigned variables
- Terminate search when any variable has no legal values
|
29
|
- Idea:
- Keep track of remaining legal values for unassigned variables
- Terminate search when any variable has no legal values
|
30
|
- 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
|
- 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
|
- 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
|
- 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
|
- 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
|
- 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
|
- 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
|
|
38
|
- 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
|
- 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
|
- 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
|
- 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!
- A special purpose algorithm exists for All-Different to establish GAC in
efficient time
- Special purpose propagation algorithms are vital
|
42
|
- 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
|
- 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
|
- 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
|
- 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
|
- 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
|
- 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
|
- 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?
|