Constraint Propagation (Where a better exploitation of the constraints further reduces the need to make decisions) R - PowerPoint PPT Presentation

About This Presentation
Title:

Constraint Propagation (Where a better exploitation of the constraints further reduces the need to make decisions) R

Description:

Title: Search problems Author: Jean-Claude Latombe Last modified by: latombe Created Date: 1/10/2000 3:15:18 PM Document presentation format: On-screen Show (4:3) – PowerPoint PPT presentation

Number of Views:227
Avg rating:3.0/5.0
Slides: 51
Provided by: JeanClaud75
Learn more at: http://ai.stanford.edu
Category:

less

Transcript and Presenter's Notes

Title: Constraint Propagation (Where a better exploitation of the constraints further reduces the need to make decisions) R


1
Constraint Propagation(Where a better
exploitation of the constraints further reduces
the need to make decisions) RN Chap. 5
Chap. 24, p. 881-884
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
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 Ys domain that
do not satisfy C
  • 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
Forward Checking in Map Coloring
Empty set the current assignment (WA ?
R), (Q ? G), (V ? B) does not lead to a solution
WA NT Q NSW V SA T
RGB RGB RGB RGB RGB RGB RGB
R RGB RGB RGB RGB RGB RGB
R GB G RGB RGB GB RGB
R B G RB B B RGB
5
Forward Checking in Map Coloring
Contradiction that forward checking did not
detect
WA NT Q NSW V SA T
RGB RGB RGB RGB RGB RGB RGB
R RGB RGB RGB RGB RGB RGB
R GB G RGB RGB GB RGB
R B G RB B B RGB
6
Forward Checking in Map Coloring
Contradiction that forward checking did not
detect
Detecting this contradiction requires a more
powerful constraint propagation technique
WA NT Q NSW V SA T
RGB RGB RGB RGB RGB RGB RGB
R RGB RGB RGB RGB RGB RGB
R GB G RGB RGB GB RGB
R B G RB B B RGB
7
Constraint Propagation for Binary Constraints
REMOVE-VALUES(X,Y) removes every value of Y that
is incompatible with the values of X
  • REMOVE-VALUES(X,Y)
  • removed ? false
  • 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
  • Remove v from Ys domain
  • removed ? true
  • Return removed

8
Constraint Propagation for Binary Constraints
  • AC3
  • Initialize queue Q with all variables (not yet
    instantiated)
  • While Q ? ? do
  • X ? Remove(Q)
  • For every (not yet instantiated) variable Y
    related to X by a (binary) constraint do
  • If REMOVE-VALUES(X,Y) then
  • If Ys domain ? then exit
  • Insert(Y,Q)

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
RN Chap. 24, pages 881-884
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
11
Concave edges
Occluding edges
Convex edges
12



-
-



13
One Possible Edge Labeling
14
Junction Types
L
Fork
T
Y
15
Junction Label Sets
(Waltz, 1975 Mackworth, 1977)
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

17
AC3 Applied to Edge Labeling
Q (X1, X2, X3, ...)
X5
X3
X1
X2
X12
X4
X8
18
AC3 Applied to Edge Labeling
Q (X1, ...)
X5
X1
19
Q (X1, ...)
X5
X1
20
Q (X5, ...)
X5
21
Q (X5, ...)
X5
X3
22
Q (X5, ...)
X5
X3
23
Q (X3, ...)
X3
24
Q (X3, ...)

X3

X8
25
Q (X3, ...)

X3

X8
26
Q (X8, ...)


X8
27
Q (X8, ...)


X12
X8
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 variable is inserted in Q up to d times
  • REMOVE-VALUES takes O(d2) time
  • AC3 takes O(n?d?s?d2) O(n?s?d3) time
  • Usually more expensive than forward checking
  • AC3
  • Initialize queue Q with all variables (not yet
    instantiated)
  • While Q ? ? do
  • X ? Remove(Q)
  • For every (not yet instantiated) variable Y
    related to X by a (binary) constraint do
  • If REMOVE-VALUES(X,Y) then
  • If Ys domain ? then exit
  • Insert(Y,Q)

29
Is AC3 all that we need?
  • No !!
  • AC3 cant detect all contradictions among binary
    constraints

30
Is AC3 all that we need?
  • No !!
  • AC3 cant detect all contradictions among binary
    constraints
  • REMOVE-VALUES(X,Y)
  • removed ? false
  • 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
  • Remove v from Ys domain
  • removed ? true
  • Return removed

31
Is AC3 all that we need?
  • No !!
  • AC3 cant detect all contradictions among binary
    constraints
  • REMOVE-VALUES(X,Y,Z)
  • removed ? false
  • 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
  • Remove w from Zs domain
  • removed ? true
  • Return removed
  • REMOVE-VALUES(X,Y)
  • removed ? false
  • 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
  • Remove v from Ys domain
  • removed ? true
  • Return removed

32
Is AC3 all that we need?
  • No !!
  • AC3 cant detect all contradictions among binary
    constraints
  • Not all constraints are binary

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)

34
Modified Backtracking Algorithm with AC3
  • CSP-BACKTRACKING(A, var-domains)
  • If assignment A is complete then return A
  • Run AC3 and update var-domains accordingly
  • If a variable has an empty domain then return
    failure
  • X ? select a variable not in A
  • D ? select an ordering on the domain of X
  • For each value v in D do
  • Add (X?v) to A
  • var-domains ? forward checking(var-domains, X, v,
    A)
  • If no variable has an empty domain then(i)
    result ? CSP-BACKTRACKING(A, var-domains)(ii) If
    result ? failure then return result
  • Remove (X?v) from A
  • Return failure

35
A Complete Example4-Queens Problem
1) The modified backtracking algorithm starts by
calling AC3, which removes no value
36
4-Queens Problem
2) The backtracking algorithm then selects a
variable and a value for this variable. No
heuristic helps in this selection. X1 and the
value 1 are arbitrarily selected
37
4-Queens Problem
3) The algorithm performs forward checking, which
eliminates 2 values in each other variables
domain
38
4-Queens Problem
4) The algorithm calls AC3
39
4-Queens Problem
X2 3 is incompatible with any of the remaining
valuesof X3
4) The algorithm calls AC3, which eliminates 3
from the domain of X2
40
4-Queens Problem
4) The algorithm calls AC3, which eliminates 3
from the domain of X2, and 2 from the domain of
X3
41
4-Queens Problem
  1. The algorithm calls AC3, which eliminates 3 from
    the domain of X2, and 2 from the domain of X3,
    and 4 from the domain of X3

42
4-Queens Problem
  1. The domain of X3 is empty ? backtracking

43
4-Queens Problem
  1. The algorithm removes 1 from X1s domain and
    assign 2 to X1

44
4-Queens Problem
  1. The algorithm performs forward checking

45
4-Queens Problem
  1. The algorithm calls AC3

46
4-Queens Problem
  1. The algorithm calls AC3, which reduces the
    domains of X3 and X4 to a single value

47
Exploiting the Structure of CSP
  • If the constraint graph contains several
    components, then solve one independent CSP per
    component

48
Exploiting the Structure of CSP
  • If the constraint graph is a tree, then
  1. Order the variables from the root to the leaves
    ? (X1, X2, , Xn)
  2. For j n, n-1, , 2 callREMOVE-VALUES(Xj, Xi)
    where Xi is the parent of Xj
  3. Assign any valid value to X1
  4. For j 2, , n do Assign any value to Xj
    consistent with the value assigned to its
    parent Xi

? (X, Y, Z, U, V, W)
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

50
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
Write a Comment
User Comments (0)
About PowerShow.com