Finite Constraint Domains - PowerPoint PPT Presentation

About This Presentation
Title:

Finite Constraint Domains

Description:

Map Colouring ... The map coloring and 4-queens CSPs are also arc consistent. 24. Achieving Arc Consistency ... Colouring Australia: with constraints. WA NT SA ... – PowerPoint PPT presentation

Number of Views:47
Avg rating:3.0/5.0
Slides: 78
Provided by: scie272
Category:

less

Transcript and Presenter's Notes

Title: Finite Constraint Domains


1
Finite Constraint Domains

2
Finite Constraint Domains
  • Constraint satisfaction problems (CSP)
  • A backtracking solver
  • Node and arc consistency
  • Bounds consistency
  • Generalized consistency
  • Optimization for arithmetic CSPs

3
Finite Constraint Domains
  • An important class of constraint domains
  • Use to model constraint problems involving
    choice e.G. Scheduling, routing and timetabling
  • The greatest industrial impact of constraint
    programming has been on these problems

4
Constraint Satisfaction Problems
  • A constraint satisfaction problem (CSP) consists
    of
  • A constraint C over variables x1,..., Xn
  • A domain D which maps each variable xi to a set
    of possible values d(xi)
  • It is understood as the constraint

5
Map Colouring
A classic CSP is the problem of coloring a map so
that no adjacent regions have the same color
Can the map of Australia be colored with 3 colors
?
6
4-queens
Place 4 queens on a 4 x 4 chessboard so that none
can take another.
Four variables Q1, Q2, Q3, Q4 representing the
row of the queen in each column. Domain of each
variable is 1,2,3,4
One solution! --gt
7
4-queens
The constraints
Not on the same row Not diagonally up Not
diagonally down
8
Smugglers Knapsack
Smuggler with knapsack with capacity 9, who needs
to choose items to smuggle to make profit at
least 30
What should be the domains of the variables?
9
Systematic Search Methods
  • exploring the solution space
  • complete and sound
  • efficiency issues
  • Backtracking (BT)
  • Generate Test (GT)

exploring subspace
exploringindividual assignments
Z
Y
X
10
Generate Test
  • probably the most general problem solving method
  • Algorithm
  • generate labelling
  • test satisfaction
  • Drawbacks Improvements
  • blind generator smart generator --gt local
    search
  • late discovery of testing within generator
  • inconsistencies --gt backtracking

11
Backtracking (BT)
  • incrementally extends a partial solution towards
    a complete solution
  • Algorithm
  • assign value to variable
  • check consistency
  • until all variables labelled
  • Drawbacks
  • thrashing
  • redundant work
  • late detection of conflict

A
1
B
2
1
C
2
1
1
D
2
2
1
1
1
?
A D, B ? D, AC lt 4
12
GT BT - Example
  • Problem X1,2, Y1,2, Z1,2 X Y, X
    ? Z, Y gt Z
  • generate test backtracking

13
Simple Backtracking Solver
  • The simplest way to solve CSPs is to enumerate
    the possible solutions
  • The backtracking solver
  • Enumerates values for one variable at a time
  • Checks that no prim. Constraint is false at each
    stage
  • Assume satisfiable(c) returns false when
    primitive constraint c with no variables is
    unsatisfiable

14
Partial Satisfiable
  • Check whether a constraint is unsatisfiable
    because of a prim. Constraint with no vars
  • Partial_satisfiable(c)
  • For each primitive constraint c in C
  • If vars(c) is empty
  • If satisfiable(c) false return false
  • Return true

15
Backtrack Solve
  • Back_solve(c,d)
  • If vars(c) is empty return partial_satisfiable(c)
  • Choose x in vars(c)
  • For each value d in d(x)
  • Let C1 be C with x replaced by d
  • If partial_satisfiable(c1) then
  • If back_solve(c1,d) then return true
  • Return false

16
Backtracking Solve
Choose var X domain 1,2
Choose var Y domain 1,2
Choose var Z domain 1,2
Variable X domain 1,2
Choose var Y domain 1,2
No variables, and false
partial_satisfiable false
No variables, and false
17
Consistency Techniques
  • removing inconsistent values from variables
    domains
  • graph representation of the CSP
  • binary and unary constraints only (no problem!)
  • nodes variables
  • edges constraints
  • node consistency (NC)
  • arc consistency (AC)
  • path consistency (PC)
  • (strong) k-consistency

Agt5
A
AltC
A?B
C
B
BC
18
Node and Arc Consistency
  • Basic idea find an equivalent CSP to the
    original one with smaller domains of vars
  • Key examine 1 prim.Constraint c at a time
  • Node consistency (vars(c)x) remove any values
    from domain of x that falsify c
  • Arc consistency (vars(c)x,y) remove any
    values from d(x) for which there is no value in
    d(y) that satisfies c and vice versa

19
Node Consistency
  • Primitive constraint c is node consistent with
    domain D if vars(c) /1 or
  • If vars(c) x then for each d in d(x)
  • X assigned d is a solution of c
  • A CSP is node consistent if each prim. Constraint
    in it is node consistent

20
Node Consistency Examples
Example CSP is not node consistent (see Z)
This CSP is node consistent
The map coloring and 4-queens CSPs are node
consistent. Why?
21
Achieving Node Consistency
  • Node_consistent(c,d)
  • For each prim. Constraint c in C
  • D node_consistent_primitive(c, D)
  • Return D
  • Node_consistent_primitive(c, D)
  • If vars(c) 1 then
  • Let x vars(c)
  • Return D

22
Arc Consistency
  • A primitive constraint c is arc consistent with
    domain D if varsc ! 2 or
  • Vars(c) x,y and for each d in d(x) there
    exists e in d(y) such that
  • And similarly for y
  • A CSP is arc consistent if each prim. Constraint
    in it is arc consistent

23
Arc Consistency Examples
This CSP is node consistent but not arc
consistent
For example the value 4 for X and X lt Y. The
following equivalent CSP is arc consistent
The map coloring and 4-queens CSPs are also arc
consistent.
24
Achieving Arc Consistency
  • Arc_consistent_primitive(c, D)
  • If vars(c) 2 then
  • Return D
  • Removes values which are not arc consistent with c

25
Achieving Arc Consistency
  • Arc_consistent(c,d)
  • Repeat
  • W d
  • For each prim. Constraint c in C
  • D arc_consistent_primitive(c,d)
  • Until W D
  • Return D
  • A very naive version (there are much better)

26
Using Node and Arc Cons.
  • We can build constraint solvers using the
    consistency methods
  • Two important kinds of domain
  • False domain some variable has empty domain
  • Valuation domain each variable has a singleton
    domain
  • Extend satisfiable to CSP with val. Domain

27
Node and Arc Cons. Solver
  • D node_consistent(C,D)
  • D arc_consistent(C,D)
  • if D is a false domain
  • return false
  • if D is a valuation domain
  • return satisfiable(C,D)
  • return unknown

28
Node and Arc Solver Example
Colouring Australia with constraints
Node consistency
29
Node and Arc Solver Example
Colouring Australia with constraints
Arc consistency
30
Node and Arc Solver Example
Colouring Australia with constraints
Arc consistency
31
Node and Arc Solver Example
Colouring Australia with constraints
Arc consistency
Answer unknown
32
Backtracking Cons. Solver
  • We can combine consistency with the backtracking
    solver
  • Apply node and arc consistency before starting
    the backtracking solver and after each variable
    is given a value

33
Back. Cons Solver Example
Q1
Q2
Q3
Q4
1
No value can be assigned to Q3 in this case!
Therefore, we need to choose another value for
Q2.
There is no possible value for variable Q3!
2
3
4
34
Back. Cons Solver Example
Q1
Q2
Q3
Q4
1
Backtracking Find another value for Q3? No!
backtracking, Find another value of Q2? No!
backtracking, Find another value of Q1? Yes, Q1
2
We cannot find any possible value for Q4
in this case!
2
3
4
35
Back. Cons Solver Example
Q1
Q2
Q3
Q4
1
2
3
4
36
Back. Cons Solver Example
Q1
Q2
Q3
Q4
1
2
3
4
37
Node and Arc Solver Example
Colouring Australia with constraints
Backtracking enumeration
Select a variable with domain of more than 1, T
Add constraint
Apply consistency
Answer true
38
Is AC enough?
  • empty domain gt no solution
  • cardinality of all domains is 1 gt solution
  • Problem X1,2, Y1,2, Z1,2 X ? Y, X
    ? Z, Y ? Z

X
1 2
1 2
Y
Z
1 2
39
Path Consistency (PC)
V2
V4
V3
V5
V0
V1
???
  • Path (V0 Vn) is path consistent iff for each
    pair of compatible values x in D(V0) and y in
    D(Vn) there exists an instantiation of the
    variables V1 ..Vn-1 such that all the constraint
    (Vi,Vi1) are satisfied
  • CSP is path consistent iff each path is path
    consistent
  • consistency along the path only

40
Path Consistency (PC)
V2
V4
V3
V5
V0
V1
???
  • checking paths of length 2 is enough
  • Plus/Minus
  • detects more inconsistencies than AC
  • - extensional representation of constraints (01
    matrix), huge memory consumption
  • - changes in graph connectivity

41
K -consistency
  • K-consistency
  • consistent valuation o (K-1) variables can be
    extended to K-th variable
  • strong K-consistency ? J-consistency for each
    J?K

42
Is k-consistency enough ?
  • If all the domains have cardinality 1gt solution
  • If any domain is empty gt no solution
  • Otherwise ?
  • strongly k-consistent constraint graph with k
    nodes gt completeness
  • for some special kind of graphs weaker forms of
    consistency are enough

43
Consistency Completeness
  • strongly N-consistent constraint graph with N
    nodes gt solution
  • strongly K-consistent constraint graph with N
    nodes (KltN) gt ??? path consistent but no
    solution
  • Special graph structures
  • tree structured graph gt (D)AC is enough

?
A
D
1,2,3
1,2,3
?
?
?
?
C
B
?
1,2,3
1,2,3
44
hyper-arc consistency
  • A primitive constraint c is hyper-arc consistent
    with domain D if
  • for each variable x in c and for each d in d(x)
    the valuation x--gtd can be extended to a solution
    of c
  • A CSP is hyper-arc consistent if each prim.
    Constraint in it is hyper-arc consistent
  • NC ? hyper-arc consistency for constraint with 1
    var
  • AC ? hyper-arc consistency for constraint with 2
    var

45
Non binary constraints
  • What about prim. constraints with more than 2
    variables?
  • Each CSP can be transformed into an equivalent
    binary CSP (dual encoding)
  • k-consitncy
  • hyper-arc consistency

46
Dual encoding
  • Each CSP can be transformed into an equivalent
    binary CSP by dual encoding
  • k-ary constraint c is converted to a dual
    variable vc with the domain consisting of
    compatible tuples
  • for each pair of constraint c,c sharing some
    variable there is a binary constraint between vc
    and vc restricting the dual variables to tuples
    in which the original shared variables take the
    same value

47
Hyper-arc consistency
  • hyper-arc consistency extending arc consistency
    to arbitrary number of variables
  • (better than binary representation)
  • Unfortunately determining hyper-arc consistency
    is NP-hard (as expensive as determinining if a
    CSP is satisfiable).
  • Solution?

48
Bounds Consistency
  • arithmetic CSP domains integers
  • range l..u represents the set of integers l,
    l1, ..., u
  • idea use real number consistency and only examine
    the endpoints (upper and lower bounds) of the
    domain of each variable
  • Define min(D,x) as minimum element in domain of
    x, similarly for max(D,x)

49
Bounds Consistency
  • A prim. constraint c is bounds consistent with
    domain D if for each var x in vars(c)
  • exist real numbers d1, ..., dk for remaining vars
    x1, ..., xk such that min(D,xj), djlt max(D,xj)
    and
    is a solution of c
  • and similarly for
  • An arithmetic CSP is bounds consistent if all its
    primitive constraints are

50
Bounds Consistency Examples
Not bounds consistent, consider Z2, then
X-3Y10 But the domain below is bounds consistent
Compare with the hyper-arc consistent domain
51
Achieving Bounds Consistency
  • Given a current domain D we wish to modify the
    endpoints of domains so the result is bounds
    consistent
  • propagation rules do this

52
Achieving Bounds Consistency
Consider the primitive constraint X Y Z
which is equivalent to the three forms
Reasoning about minimum and maximum values
Propagation rules for the constraint X Y Z
53
Achieving Bounds Consistency
The propagation rules determine that
Hence the domains can be reduced to
54
More propagation rules
Given initial domain
We determine that new domain
55
Disequations
Disequations give weak propagation rules, only
when one side takes a fixed value that equals the
minimum or maximum of the other is there
propagation
56
Multiplication
If all variables are positive its simple enough
Example becomes
But what if variables can be 0 or negative?
57
Multiplication
Calculate X bounds by examining extreme values
Similarly for upper bound on X using maximum BUT
this does not work for Y and Z? As long as
min(D,Z) lt0 and max(D,Z)gt0 there is no bounds
restriction on Y
Recall we are using real numbers (e.g. 4/d)
58
Multiplication
We can wait until the range of Z is non-negative
or non-positive and then use rules like
division by 0
59
Bounds Consistency Algm
  • Repeatedly apply the propagation rules for each
    primitive constraint until there is no change in
    the domain
  • We do not need to examine a primitive constraint
    until the domains of the variables involve are
    modified

60
Bounds Consistency Example
Smugglers knapsack problem (no whiskey available)
Continuing there is no further change Note how we
had to reexamine the profit constraint
61
Bounds consistency solver
  • D bounds_consistent(C,D)
  • if D is a false domain
  • return false
  • if D is a valuation domain
  • return satisfiable(C,D)
  • return unknown

62
Back. Bounds Cons. Solver
  • Apply bounds consistency before starting the
    backtracking solver and after each variable is
    given a value

63
Back. Bounds Solver Example
Smugglers knapsack problem (whiskey available)
Current domain
Initial bounds consistency
W 0
Solution Found return true
P 1
(0,1,3)
64
Back. Bounds Solver Example
Smugglers knapsack problem (whiskey available)
Current domain
Initial bounds consistency
Backtrack
Backtrack
W 0
W 1
W 2
P 2
P 3
P 1
(1,1,1)
(2,0,0)
No more solutions
false
(0,1,3)
(0,3,0)
65
Generalized Consistency
  • Can use any consistency method with any other
    communicating through the domain,
  • node consistency prim constraints with 1 var
  • arc consistency prim constraints with 2 vars
  • bounds consistency other prim. constraints
  • Sometimes we can get more information by using
    complex constraints and special consistency
    methods

66
Alldifferent
  • alldifferent(V1,...,Vn) holds when each
    variable V1,..,Vn takes a different value
  • alldifferent(X, Y, Z) is equivalent to
  • Arc consistent with domain
  • BUT there is no solution! specialized consistency
    for alldifferent can find it

67
Alldifferent Consistency
  • let c be of the form alldifferent(V)
  • while exists v in V where D(v) d
  • V V - v
  • for each v in V
  • D(v) D(v) - d
  • DV union of all D(v) for v in V
  • if DV lt V then return false domain
  • return D

68
Alldifferent Examples
DV 1,2, VX,Y,Z hence detect
unsatisfiability
DV 1,2,3,4,5, VX,Y,Z,T dont detect unsat.
Maximal matching based
consistency could
69
Other Complex Constraints
  • schedule n tasks with start times Si and
    durations Di needing resources Ri where L
    resources are available at each moment
  • array access if I i, then X Vi and if X ! Vi
    then I ! i

70
Optimization for CSPs
  • Because domains are finite can use a solver to
    build a straightforward optimizer
  • retry_int_opt(C, D, f, best)
  • D2 int_solv(C,D)
  • if D2 is a false domain then return best
  • let sol be the solution corresponding to D2
  • return retry_int_opt(C /\ f lt sol(f), D, f, sol)

71
Retry Optimization Example
Smugglers knapsack problem (optimize profit)
First solution found
Next solution found
No next solution!
Corresponding solution
Return best solution
72
Backtracking Optimization
  • Since the solver may use backtrack search anyway
    combine it with the optimization
  • At each step in backtracking search, if best is
    the best solution so far add the constraint f lt
    best(f)

73
Back. Optimization Example
Smugglers knapsack problem (whiskey available)
Smugglers knapsack problem (whiskey available)
Current domain
Initial bounds consistency
W 0
Solution Found add constraint
P 1
(0,1,3)
74
Back. Optimization Example
Smugglers knapsack problem (whiskey available)
Initial bounds consistency
W 1
W 0
W 2
P 2
P 3
(1,1,1)
P 1
false
(0,1,3)
false
false
Modify constraint
Return last sol (1,1,1)
75
Branch and Bound Opt.
  • The previous methods,unlike simplex don't use the
    objective function to direct search
  • branch and bound optimization for (C,f)
  • use simplex to find a real optimal,
  • if solution is integer stop
  • otherwise choose a var x with non-integer opt
    value d and examine the problems
  • use the current best solution to constrain prob.

76
Branch and Bound Example
Smugglers knapsack problem
false
false
Solution (2,0,0) 30
Solution (1,1,1) 32
false
Worse than best sol
false
false
false
77
Finite Constraint Domains Summary
  • CSPs form an important class of problems
  • Solving of CSPs is essentially based on
    backtracking search
  • Reduce the search using consistency methods
  • node, arc, bound, generalized
  • Optimization is based on repeated solving or
    using a real optimizer to guide the search
Write a Comment
User Comments (0)
About PowerShow.com