Title: Constraint Propagation
1Constraint Propagation
2Constraint Propagation
- is the process of determining how the
possible values of one variable affect the
possible values of other variables
3Forward 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 Ys domain
any value that is inconsistent with v
4Map Coloring
5Map Coloring
6Map Coloring
7Map Coloring
8? constraint propagation
9Edge Labeling in Computer Vision
Russell and Norvig Chapter 24, pages 745-749
10Edge Labeling
11Edge Labeling
12Edge Labeling
13Edge Labeling
14Junction Label Sets
(Waltz, 1975 Mackworth, 1977)
15Edge 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
16Edge Labeling
17Edge Labeling
18Edge Labeling
19Edge Labeling
20Removal 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
21CP Algorithm for Edge Labeling
- Associate with every junction its label set
- contradiction ? false
- Q ? stack of all junctions
- while Q is not empty and not contradiction do
- J ? UNSTACK(Q)
- For every junction K adjacent to J do
- If REMOVE-ARC-INCONSISTENCIES(J,K) then
- STACK(K,Q)
(Waltz, 1975 Mackworth, 1977)
22General CP for Binary Constraints
- Algorithm AC3
- contradiction ? false
- Q ? stack of all variables
- while Q is not empty and not contradiction do
- X ? UNSTACK(Q)
- For every variable Y adjacent to X do
- If REMOVE-ARC-INCONSISTENCIES(X,Y) then
- STACK(Y,Q)
23General CP for Binary Constraints
- Algorithm AC3
- contradiction ? false
- Q ? stack of all variables
- while Q is not empty and not contradiction do
- X ? UNSTACK(Q)
- For every variable Y adjacent to X do
- If REMOVE-ARC-INCONSISTENCY(X,Y) then
- STACK(Y,Q)
- REMOVE-ARC-INCONSISTENCY(X,Y)
- removed ? false
- For every value y in the domain of Y do
- If there exists no value x in the domain of X
such that the constraints on (x,y) is satisfied
then - Remove y from the domain of Y
- If Y is empty then contradiction ? true
- removed ? true
- Return removed
24Complexity Analysis of AC3
- n number of variables
- d number of values per variable
- s maximum number of constraints on a
pair of variables - Each variables is inserted in Q up to d times
- REMOVE-ARC-INCONSISTENCY takes O(d2) time
- CP takes O(n s d3) time
25Is AC3 All What is Needed?
NO!
26Solving a CSP
- Interweave constraint propagation, e.g.,
- forward checking
- AC3
- and backtracking
- Take advantage of the CSP structure
274-Queens Problem
284-Queens Problem
294-Queens Problem
304-Queens Problem
314-Queens Problem
324-Queens Problem
334-Queens Problem
344-Queens Problem
354-Queens Problem
364-Queens Problem
37Structure of CSP
- If the constraint graph contains multiple
components, then one independent CSP per
component
38Structure of CSP
- If the constraint graph contains multiple
components, then one independent CSP per
component - If the constraint graph is a tree (no loop),
then the CSP can be solved efficiently
39Constraint Tree
? (X, Y, Z, U, V, W)
40Constraint Tree
- Order the variables from the root to the
leaves ? (X1, X2, , Xn) - For j n, n-1, , 2 do REMOVE-ARC-INCONSIST
ENCY(Xj, Xi) where Xi is the parent of Xj - Assign any legal value to X1
- For j 2, , n do
- assign any value to Xj consistent with the value
assigned to Xi, where Xi is the parent of Xj
41Structure of CSP
- If the constraint graph contains multiple
components, then one independent CSP per
component - If the constraint graph is a tree, then the CSP
can be solved efficiently - Whenever a variable is assigned a value by the
backtracking algorithm, propagate this value and
remove the variable from the constraint graph
42Structure of CSP
- If the constraint graph contains multiple
components, then one independent CSP per
component - If the constraint graph is a tree, then the CSP
can be solved in linear time - Whenever a variable is assigned a value by the
backtracking algorithm, propagate this value and
remove the variable from the constraint graph
43Over-Constrained Problems
- Weaken an over-constrained problem by
- Enlarging the domain of a variable
- Loosening a constraint
- Removing a variable
- Removing a constraint
44Non-Binary Constraints
- So far, all constraints have been binary (two
variables) or unary (one variable) - Constraints with more than 2 variables would be
difficult to propagate - Theoretically, one can reduce a constraint with
kgt2 variables to a set of binary constraints by
introducing additional variables
45When to Use CSP Techniques?
- When the problem can be expressed by a set of
variables with constraints on their values - When constraints are relatively simple (e.g.,
binary) - When constraints propagate well (AC3 eliminates
many values) - When the solutions are densely distributed in
the space of possible assignments
46Summary
- Forward checking
- Constraint propagation
- Edge labeling in Computer Vision
- Interweaving CP and backtracking
- Exploiting CSP structure
- Weakening over-constrained CSP
47Game Playing
48Games as search problems
- Chess, Go
- Simulation of war (war game)
- ??????? ??
- Claude Shannon, Alan Turing ? Chess program
(1950??)
49Contingency problems
- The opponent introduces uncertainty
- ?????? co-work? ??
- ?????? co-work??? ??
- Hard to solve ? in chess, 35100 possible nodes,
1040 different legal positions - Time limits ? how to make the best use of time to
reach good decisions - Pruning, heuristic evaluation function
50Perfect decisions in two person games
- The initial state, A set of operators, A terminal
test, A utility function (payoff function) - Mini-max algorithm,
- Negmax algorithms
51Mini-max algorithm(AND-OR tree)
52???? ??
53Negmax
- Knuth and Moore (1975)
- F(n) f(n), if n has no successors
- F(n) max-F(n1), , -F(nk),
- if n has successors n1, , nk
54The Negmax formalism
55Imperfect Decisions
- utility function ? evaluation
- terminal test ? cutoff test
- Evaluation function an estimate of the
utility of the game from a given position - Chess ? material value (??? ??)
- Weighted linear function ?
- w1f1w2f2.wnfn
56Cutting off search
- To set a fixed depth limit, so that the cutoff
test succeeds for all nodes at or below depth d ?
iterative deepening until time runs out ? ??? ??
? ?? - Quiescent posiiton unlikely to exhibit wild
swings in value in near future - Quiescent search Non-quiescent search ? extra
search to find quiescent position - Horizon problem
57Alpha-beta pruning
- Eliminate unnecessary evaluations
- Pruning
58Alpha-beta pruning
Alpha cutoff Beta cutoff
59Negmax representation
60Example
61Games with Chance
- Chance nodes ? expected value
- Backgammon, ???
- Expectimax value
62A backgammon position
63Comparision
MAX
A
A
2
A
1
A
2
1
40.9
1.3
21
2.1
DICE
.9
.1
.9
.1
.9
.1
.9
.1
20
30
1
400
MIN
2
3
1
4
20
20
30
30
1
1
400
400
2
2
3
3
1
1
4
4
64??
- 5.6, 5.8, 5.11, 5.15, 5.16, 5.17