Arc Consistency and Domain Splitting in CSPs CPSC 322 – CSP 3 Textbook Poole and Mackworth: § 4.5...

Post on 18-Jan-2018

224 views 0 download

description

Constraint Satisfaction Problems (CSPs): Definition 3 Definition: A model of a CSP is a possible world that satisfies all constraints. Definition: A constraint satisfaction problem (CSP) consists of: a set of variables V a domain dom(V) for each variable V  V a set of constraints C An example CSP: V = {V 1,V 2 } – dom( V 1 ) = {1,2,3} – dom( V 2 ) = {1,2} C = {C 1,C 2,C 3 } – C 1 : V 2  2 – C 2 : V 1 + V 2 < 5 – C 3 : V 1 > V 2 Possible worlds for this CSP: { V 1 =1, V 2 =1 } { V 1 =1, V 2 =2 } { V 1 =2, V 2 =1 } (one model) { V 1 =2, V 2 =2 } { V 1 =3, V 2 =1 } (another model) { V 1 =3, V 2 =2 } Definition: A possible world of a CSP is an assignment of values to all of its variables.

Transcript of Arc Consistency and Domain Splitting in CSPs CPSC 322 – CSP 3 Textbook Poole and Mackworth: § 4.5...

Arc Consistency and Domain Splitting in CSPs

CPSC 322 – CSP 3

Textbook Poole and Mackworth: § 4.5 and 4.6

Lecturer: Alan Mackworth

October 3, 2012

Lecture Overview

• Solving Constraint Satisfaction Problems (CSPs)- Recap: Generate & Test- Recap: Graph search

• Arc consistency- GAC algorithm- Complexity analysis- Domain splitting

2

Constraint Satisfaction Problems (CSPs): Definition

3

Definition: A model of a CSP is a possible world that satisfies all constraints.

Definition: A constraint satisfaction problem (CSP) consists of:

• a set of variables V• a domain dom(V) for each variable V V• a set of constraints C

An example CSP:• V = {V1,V2}

– dom(V1) = {1,2,3}– dom(V2) = {1,2}

• C = {C1,C2,C3}– C1: V2 2– C2: V1 + V2 < 5– C3: V1 > V2

Possible worlds for this CSP: {V1=1, V2=1}

{V1=1, V2=2} {V1=2, V2=1} (one model)

{V1=2, V2=2}

{V1=3, V2=1} (another model) {V1=3, V2=2}

Definition: A possible world of a CSP is an assignment of

values to all of its variables.

• Generate and Test:- Generate possible worlds one at a time.- Test constraints for each one.

Example: 3 variables A,B,C

• Simple, but slow: - k variables, each domain size d, c constraints: O(cdk)

Generate and Test (G&T) Algorithms

For a in dom(A)For b in dom(B)

For c in dom(C) if {A=a, B=b, C=c} satisfies all constraints return {A=a, B=b, C=c}

fail

4

Lecture Overview

• Solving Constraint Satisfaction Problems (CSPs)- Recap: Generate & Test- Recap: Graph search

• Arc consistency- GAC algorithm- Complexity analysis- Domain splitting

5

• Explore search space via DFS but evaluate each constraint as soon as all its variables are bound.

• Any partial assignment that doesn’t satisfy the constraint can be pruned.

• Example: - 3 variables A, B,C, each with domain {1,2,3,4}- {A = 1, B = 1} is inconsistent with constraint A B

regardless of the value of the other variables Fail. Prune!

Backtracking algorithms

6

V1 = v1

V2 = v1

V1 = v1

V2 = v2

V1 = v1

V2 = vk

CSP as Graph Searching

V1 = v1

V2 = v1

V3 = v2

V1 = v1

V2 = v1

V3 = v1

{}

V1 = v1 V1 = vk

Check unary constraints on V1If not satisfied PRUNE

Check constraints on V1and V2 If not satisfied PRUNE

Standard Search vs. Specific R&R systems• Constraint Satisfaction (Problems):

– State: assignments of values to a subset of the variables– Successor function: assign values to a ‘free’ variable– Goal test: all variables assigned a value and all constraints

satisfied?– Solution: possible world that satisfies the constraints– Heuristic function: none (all solutions at the same distance

from start)• Planning :

– State– Successor function– Goal test– Solution– Heuristic function

• Inference– State– Successor function– Goal test– Solution– Heuristic function 8

V1 = v1

V2 = v1

V1 = v1

V2 = v2

V1 = v1

V2 = vk

CSP as Graph Searching

V1 = v1

V2 = v1

V3 = v2

V1 = v1

V2 = v1

V3 = v1

{}

V1 = v1 V1 = vk

Check unary constraints on V1If not satisfied PRUNE

Check constraints on V1and V2 If not satisfied PRUNE

Problem?Performance heavily depends on the order in which variables are considered.E.g. only 2 constraints:Vn=Vn-1 and Vn Vn-1

CSP as a Search Problem: another formulation

• States: partial assignment of values to variables• Start state: empty assignment• Successor function: states with the next variable

assigned– Assign any previously unassigned variable– A state assigns values to some subset of variables:

• E.g. {V7 = v1, V2 = v1, V15 = v1}• Neighbors of node {V7 = v1, V2 = v1, V15 = v1}:

nodes {V7 = v1, V2 = v1, V15 = v1, Vx = y} for some variable Vx V \ {V7, V2, V15} and all values ydom(Vx)

• Goal state: complete assignments of values to variables that satisfy all constraints– That is, models

• Solution: assignment (the path doesn’t matter) 10

CSP as Graph Searching• 3 Variables: A,B,C. All with domains = {1,2,3,4}• Constraints: A<B, B<C

• Backtracking relies on one or more heuristics to select which variables to consider next.- E.g. variable involved in the largest number of

constraints: “If you are going to fail on this branch, fail early!”

- Can also be smart about which values to consider first

• This is a different use of the word ‘heuristic’!- Still true in this context

• Can be computed cheaply during the search• Provides guidance to the search algorithm

- But not true anymore in this context• ‘Estimate of the distance to the goal’

• Both meanings are used frequently in the AI literature.• ‘heuristic’ means ‘serves to discover’: goal-oriented.• Does not mean ‘unreliable’!

Selecting variables in a smart way

12

Learning Goals for solving CSPs so far

• Verify whether a possible world satisfies a set of constraints i.e. whether it is a model - a solution.

• Implement the Generate-and-Test Algorithm. Explain its disadvantages.

• Solve a CSP by search (specify neighbors, states, start state, goal state). Compare strategies for CSP search. Implement pruning for DFS search in a CSP.

13

Lecture Overview

• Solving Constraint Satisfaction Problems (CSPs)- Recap: Generate & Test- Recap: Graph search

• Arc consistency- GAC algorithm- Complexity analysis- Domain splitting

14

Can we do better than Search?Key idea • prune the domains as much as possible before

searching for a solution.

• Example: dom(V2) = {1, 2, 3, 4}. V2 2• Variable V2 is not domain consistent. - It is domain consistent once we remove 2 from its

domain.• Trivial for unary constraints. Trickier for k-ary

ones.

Def.: A variable is domain consistent if no value of its domain is ruled impossible by any unary constraints.

15

Graph Searching Repeats Work• 3 Variables: A,B,C. All with domains = {1,2,3,4}• Constraints: A<B, B<C• A ≠ 4 is rediscovered 3 times. So is C ≠ 1

- Solution: remove values from A’s domain and C’s, once and for all

• Example: - Two variables X and Y- One constraint: X<Y

X YX< Y

17

Def. A constraint network is defined by a graph, with- one node for every variable (drawn as circle)- one node for every constraint (drawn as rectangle)- undirected edges running between variable nodes

and constraint nodes whenever a given variable is involved in a given constraint.

Constraint network: definition

Constraint network: definition

• Whiteboard example: 3 Variables A,B,C– 3 Constraints: A<B, B<C, A+3=C– 6 edges/arcs in the constraint network:

• ⟨A,A<B , B,A<B ⟩ ⟨ ⟩• ⟨B,B<C , C,B<C⟩ ⟨ ⟩• ⟨A, A+3=C , C,A+3=C⟩ ⟨ ⟩

18

Def. A constraint network is defined by a graph, with- one node for every variable (drawn as circle)- one node for every constraint (drawn as rectangle)- Edges/arcs running between variable nodes and

constraint nodes whenever a given variable is involved in a given constraint.

A more complicated example• How many variables are there in this constraint

network?

– Variables are drawn as circles

• How many constraints are there?

– Constraints are drawn as rectangles19

14

5

9

6

14

5

9

6

Arc ConsistencyDefinition:

An arc <x, r(x,y)> is arc consistent if for each value x in dom(X) there is some value y in dom(Y) such that r(x,y) is satisfied.A network is arc consistent if all its arcs are arc consistent.

T FT F

2,5,7 2,3,13A B

A< B/2

Is this arc consistent?

1,2,3 2,3A B

A< B

Not arc consistent: No value in domain of B that satisfies A<B if A=3

Arc consistent: Both B=2 and B=3 have ok values for A (e.g. A=1)

20

How can we enforce Arc Consistency?

• If an arc <X, r(X,Y)> is not arc consistent- Delete all values x in dom(X) for which there is no corresponding

value in dom(Y)- This deletion makes the arc <X, r(X,Y)> arc consistent.- This removal can never rule out any models/solutions

• Why?

Run this example: http://cs.ubc.ca/~mack/CS322/AIspace/simple-network.xml in ( (Save to a local file and open file.)

2,3,4 1,2,3X Y

X< Y

21

Lecture Overview

• Solving Constraint Satisfaction Problems (CSPs)- Recap: Generate & Test- Recap: Graph search

• Arc consistency- GAC algorithm- Complexity analysis- Domain splitting

22

Arc Consistency Algorithm: high level strategy

• Consider the arcs in turn, making each arc consistent

• Reconsider arcs that could be made inconsistent again by this pruning of the domains

• Eventually reach a ‘fixed point’: all arcs consistent

• Run ‘simple problem 1’ in AIspace for an example:

23

Which arcs need to be reconsidered?

24

every arc Z,c' where c’ c involves Z and X:Z1 c1

Z2 c2

Z3 c3

Yc

THESE

X

Ac4

• When we reduce the domain of a variable X to make an arc X,c arc consistent, which arcs do we need to reconsider?

• You do not need to reconsider other arcs- If arc Y,c was arc consistent before, it will still be arc

consistent- If an arc X,c' was arc consistent before, it will still be arc

consistent- Nothing changes for arcs of constraints not involving X

• Consider the arcs in turn, making each arc consistent

• Reconsider arcs that could be made inconsistent again by this pruning

• DO trace on ‘simple problem 1’ and on ‘scheduling problem 1’, trying to predict

- which arcs are not consistent and - which arcs need to be reconsidered after each removal in

25

Which arcs need to be reconsidered?

Arc consistency algorithm (for binary constraints)

26

Procedure GAC(V,dom,C)           Inputs                     V: a set of variables                     dom: a function such that dom(X) is the domain of variable X                     C: set of constraints to be satisfied           Output                     arc-consistent domains for each variable           Local                     DX is a set of values for each variable X                    TDA is a set of arcs1:           for each variable X do2:                     DX ←dom(X) 3:           TDA ←{ X,c | X ∈ V, c ∈ C  and X ∈ scope(c)} ⟨ ⟩         4:           while (TDA {}) 5:                     select X,c ∈TDA⟨ ⟩6:                     TDA ←TDA  \ { X,c }⟨ ⟩7:                     NDX ←{x| x ∈ DX and y ∈ DY s.t. (x, y) satisfies c}8:                     if (NDX DX) then 9:                               TDA ←TDA ∪ { Z,c' | X ∈ scope(c'), c' ⟨ ⟩ c, Z ∈ scope(c') \ {X} } 10:                             DX ←NDX                     11:           return {DX| X  is a variable}

Scope of constraint c is the set of variables involved in that constraint

NDX: values x for X for which there a value for y supporting x

X’s domain changed: arcs (Z,c’) for variables Z sharing a constraint c’ with X could become inconsistent

TDA: ToDoArcs,blue arcsin AIspace

Arc Consistency Algorithm: Interpreting Outcomes

• Three possible outcomes (when all arcs are arc consistent):– Each domain has a single value, e.g.

http://www.cs.ubc.ca/~mack/CS322/AIspace/simple-network.xml(Download the file and load it as a local file in AIspace)•We have a (unique) solution.

– At least one domain is empty, e.g.http://www.cs.ubc.ca/~mack/CS322/AIspace/simple-infeasible.xml•No solution! All values are ruled out for this variable.

– Some domains have more than one value, e.g.built-in example “simple problem 2”•There may be a solution, multiple ones, or none•Need to solve this new CSP (usually simpler) problem: same constraints, domains have been reduced

Lecture Overview

• Solving Constraint Satisfaction Problems (CSPs)- Recap: Generate & Test- Recap: Graph search

• Arc consistency- GAC algorithm- Complexity analysis- Domain splitting

28

• How often will we prune the domainof variable V? O(d) times

• How many arcs will be put on the ToDoArc list when pruning domain of variable V?- O(degree of variable V)- In total, across all variables: sum of degrees of all variables =

2*number of constraints, i.e. 2*c• Together: we will only put O(dc) arcs on the ToDoArc list• Checking consistency is O(d2) for each of them

• Overall complexity: O(cd3)• Compare to O(dN) of DFS!! Arc consistency is MUCH faster

Arc Consistency Algorithm: Complexity• Worst-case complexity of arc consistency procedure on a

problem with N variables– let d be the max size of a variable domain– let c be the number of constraints

Lecture Overview

• Solving Constraint Satisfaction Problems (CSPs)- Recap: Generate & Test- Recap: Graph search

• Arc consistency- GAC algorithm- Complexity analysis- Domain splitting

30

Can we have an arc consistent network with non-empty domains

that has no solution?YES

NO

• Example: vars A, B, C with domain {1, 2} and constraints A ≠ B, B ≠ C, A ≠ C

• Or see AIspace CSP applet Simple Problem 2

Domain splitting (or case analysis)

• Arc consistency ends: Some domains have more than one value may or may not have a solutionA. Apply Depth-First Search with Pruning orB. Split the problem in a number of disjoint cases:

CSP with dom(X) = {x1, x2, x3, x4} becomes

CSP1 with dom(X) = {x1, x2} and CSP2 with dom(X) = {x3, x4}

• Solution to CSP is the union of solutions to CSPi

32

Domain splitting• Each smaller CSP is easier to solve

– Arc consistency might already solve it• For each subCSP, which arcs have to be on the

ToDoArcs list when we get the subCSP by splitting the domain of X?arcs <Z, r(Z,X)>

arcs <Z, r(Z,X)> and <X, r(Z,X)>

All arcs

A1 c1

A2 c2

A3 c3

Yc

THESE

X

Ac4

THIS

• Trace it on “simple problem 2”

Domain splitting in action

If domains with multiple values Split on one

Searching by domain splitting

35

How many CSPs do we need to keep around at a time? With depth m and 2 children at each split: O(2m). It’s a DFS.

CSP, apply AC

CSP1, apply AC CSP2, apply ACIf domains with multiple values Split on one

If domains with multiple values…..Split on one

Learning Goals for today’s class• Define/read/write/trace/debug the arc

consistency algorithm. Compute its complexity and assess its possible outcomes

• Define/read/write/trace/debug domain splitting and its integration with arc consistency

• Coming up: local search, Section 4.8