Slide 1 CSPs: Arc Consistency & Domain Splitting Jim Little UBC CS 322 – Search 7 October 1, 2014 Textbook §4.5-4.6.

Slides:



Advertisements
Similar presentations
Local Search Jim Little UBC CS 322 – CSP October 3, 2014 Textbook §4.8
Advertisements

CPSC 322, Lecture 14Slide 1 Local Search Computer Science cpsc322, Lecture 14 (Textbook Chpt 4.8) Oct, 5, 2012.
This lecture topic (two lectures) Chapter 6.1 – 6.4, except
1 Constraint Satisfaction Problems A Quick Overview (based on AIMA book slides)
This lecture topic (two lectures) Chapter 6.1 – 6.4, except 6.3.3
1 Finite Constraint Domains. 2 u Constraint satisfaction problems (CSP) u A backtracking solver u Node and arc consistency u Bounds consistency u Generalized.
ICS-271:Notes 5: 1 Lecture 5: Constraint Satisfaction Problems ICS 271 Fall 2008.
Artificial Intelligence Constraint satisfaction problems Fall 2008 professor: Luigi Ceccaroni.
CPSC 322, Lecture 5Slide 1 Uninformed Search Computer Science cpsc322, Lecture 5 (Textbook Chpt 3.4) January, 14, 2009.
Uninformed Search Jim Little UBC CS 322 – Search 2 September 12, 2014
Slide 1 Planning: Representation and Forward Search Jim Little UBC CS 322 October 10, 2014 Textbook §8.1 (Skip )- 8.2)
Slide 1 Search: Advanced Topics Jim Little UBC CS 322 – Search 5 September 22, 2014 Textbook § 3.6.
CPSC 322, Lecture 16Slide 1 Stochastic Local Search Variants Computer Science cpsc322, Lecture 16 (Textbook Chpt 4.8) February, 9, 2009.
CPSC 322, Lecture 9Slide 1 Search: Advanced Topics Computer Science cpsc322, Lecture 9 (Textbook Chpt 3.6) January, 23, 2009.
CPSC 322, Lecture 23Slide 1 Logic: TD as search, Datalog (variables) Computer Science cpsc322, Lecture 23 (Textbook Chpt 5.2 & some basic concepts from.
CPSC 322, Lecture 14Slide 1 Local Search Computer Science cpsc322, Lecture 14 (Textbook Chpt 4.8) February, 3, 2010.
CPSC 322, Lecture 18Slide 1 Planning: Heuristics and CSP Planning Computer Science cpsc322, Lecture 18 (Textbook Chpt 8) February, 12, 2010.
CPSC 322, Lecture 9Slide 1 Search: Advanced Topics Computer Science cpsc322, Lecture 9 (Textbook Chpt 3.6) January, 22, 2010.
CPSC 322, Lecture 13Slide 1 CSPs: Arc Consistency & Domain Splitting Computer Science cpsc322, Lecture 13 (Textbook Chpt 4.5,4.6) February, 01, 2010.
CPSC 322, Lecture 11Slide 1 Constraint Satisfaction Problems (CSPs) Introduction Computer Science cpsc322, Lecture 11 (Textbook Chpt 4.0 – 4.2) January,
4 Feb 2004CS Constraint Satisfaction1 Constraint Satisfaction Problems Chapter 5 Section 1 – 3.
CPSC 322, Lecture 23Slide 1 Logic: TD as search, Datalog (variables) Computer Science cpsc322, Lecture 23 (Textbook Chpt 5.2 & some basic concepts from.
CPSC 322, Lecture 12Slide 1 CSPs: Search and Arc Consistency Computer Science cpsc322, Lecture 12 (Textbook Chpt ) January, 29, 2010.
CPSC 322, Lecture 13Slide 1 CSPs: Arc Consistency & Domain Splitting Computer Science cpsc322, Lecture 13 (Textbook Chpt 4.5,4.8) February, 02, 2009.
CPSC 322, Lecture 14Slide 1 Local Search Computer Science cpsc322, Lecture 14 (Textbook Chpt 4.8) February, 4, 2009.
Constraint Satisfaction Problems
CPSC 322, Lecture 17Slide 1 Planning: Representation and Forward Search Computer Science cpsc322, Lecture 17 (Textbook Chpt 8.1 (Skip )- 8.2) February,
CPSC 322, Lecture 17Slide 1 Planning: Representation and Forward Search Computer Science cpsc322, Lecture 17 (Textbook Chpt 8.1 (Skip )- 8.2) February,
CPSC 322, Lecture 22Slide 1 Logic: Domain Modeling /Proofs + Top-Down Proofs Computer Science cpsc322, Lecture 22 (Textbook Chpt 5.2) March, 8, 2010.
Chapter 5 Outline Formal definition of CSP CSP Examples
Uninformed Search (cont.)
Constraint Satisfaction Problems
1 Constraint Satisfaction Problems Slides by Prof WELLING.
Slide 1 Logic: Domain Modeling /Proofs + Top-Down Proofs Jim Little UBC CS 322 – CSP October 22, 2014.
Slide 1 Constraint Satisfaction Problems (CSPs) Introduction Jim Little UBC CS 322 – CSP 1 September 27, 2014 Textbook §
CPSC 322, Lecture 22Slide 1 Logic: Domain Modeling /Proofs + Top-Down Proofs Computer Science cpsc322, Lecture 22 (Textbook Chpt 5.2) Oct, 26, 2010.
Local Search CPSC 322 – CSP 5 Textbook §4.8 February 7, 2011.
Computer Science CPSC 502 Lecture 3 Constraint Satisfaction Problems (Ch. 4 )
Constraint Satisfaction Problems (CSPs) CPSC 322 – CSP 1 Poole & Mackworth textbook: Sections § Lecturer: Alan Mackworth September 28, 2012.
Computer Science CPSC 322 Lecture 13 Arc Consistency (4.5, 4.6 ) Slide 1.
Constraint Satisfaction CPSC 386 Artificial Intelligence Ellen Walker Hiram College.
Artificial Intelligence CS482, CS682, MW 1 – 2:15, SEM 201, MS 227 Prerequisites: 302, 365 Instructor: Sushil Louis,
Solving Constraint Satisfaction Problems (CSPs) using Search CPSC 322 – CSP 2 Textbook § January 31, 2011.
Solving Constraint Satisfaction Problems (CSPs) using Search
Chapter 5: Constraint Satisfaction ICS 171 Fall 2006.
Chapter 5 Constraint Satisfaction Problems
CHAPTER 5 SECTION 1 – 3 4 Feb 2004 CS Constraint Satisfaction 1 Constraint Satisfaction Problems.
Arc Consistency CPSC 322 – CSP 3 Textbook § 4.5 February 2, 2011.
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.
Domain Splitting, Local Search CPSC 322 – CSP 4 Textbook §4.6, §4.8 February 4, 2011.
CPSC 322, Lecture 5Slide 1 Uninformed Search Computer Science cpsc322, Lecture 5 (Textbook Chpt 3.5) Sept, 13, 2013.
1 Constraint Satisfaction Problems (CSP). Announcements Second Test Wednesday, April 27.
CPSC 322, Lecture 22Slide 1 Logic: Domain Modeling /Proofs + Top-Down Proofs Computer Science cpsc322, Lecture 22 (Textbook Chpt 5.2) Oct, 30, 2013.
Constraint Satisfaction Problems (CSPs) Introduction
CSPs: Search and Arc Consistency Computer Science cpsc322, Lecture 12
Artificial Intelligence (AI) Computer Science cpsc502, Lecture 3
Computer Science cpsc322, Lecture 13
CSPs: Search and Arc Consistency Computer Science cpsc322, Lecture 12
Constraint Satisfaction Problems (CSPs) Introduction
Computer Science cpsc322, Lecture 14
Planning: Heuristics and CSP Planning
Planning: Heuristics and CSP Planning
CSPs: Search and Arc Consistency Computer Science cpsc322, Lecture 12
Computer Science cpsc322, Lecture 13
Planning: Heuristics and CSP Planning
Logic: Domain Modeling /Proofs + Computer Science cpsc322, Lecture 22
Constraint satisfaction problems
Domain Splitting CPSC 322 – CSP 4 Textbook §4.6 February 4, 2011.
Constraint satisfaction problems
Presentation transcript:

Slide 1 CSPs: Arc Consistency & Domain Splitting Jim Little UBC CS 322 – Search 7 October 1, 2014 Textbook §

Slide 2 Lecture Overview Recap (CSP as search & Constraint Networks) Arc Consistency Algorithm Domain splitting

Slide 3 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: set of constraints 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 Query State Successor function Goal test Solution Heuristic function

Slide 4 Recap: We can do much better.. Build a constraint network: Enforce domain and arc consistency

Slide 5 Lecture Overview Recap Arc Consistency Algorithm Abstract strategy Details Complexity Interpreting the output Domain Splitting

Arc Consistency Algorithm How can we enforce Arc Consistency? If an arc 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 arc consistent. -This removal can never rule out any models/solutions Algorithm: general idea Go through all the arcs in the network Make each arc consistent by pruning the appropriate domain, when needed Reconsider arcs that could be turned back to being inconsistent by this pruning 6

When we reduce the domain of a variable X to make an arc  X,c  arc consistent, which arcs do we need to reconsider? Which arcs need to be reconsidered? every arc  Z,c'  where c’  c involves Z and X: Z1Z1 c1c1 Z2Z2 c2c2 Z3Z3 c3c3 Y c THESETHESE X A c4c4 7

When we reduce the domain of a variable X to make an arc  X,c  arc consistent, which arcs do we need to reconsider? Which arcs need to be reconsidered? every arc  Z,c'  where c’  c involves Z and X: Z1Z1 c1c1 Z2Z2 c2c2 Z3Z3 c3c3 Y c THESETHESE X A c4c4 Pruning elements of Dom(x) may remove values that made one or more of  Z,c'  consistent 8

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 “ Consistent before” means each element y i in Y must have an element x i in X that satisfies the constraint. Those x i would not be pruned from Dom(X), so arc  Y,c  stays consistent - If an arc  X,c i  was arc consistent before, it will still be arc consistent The domains of Z i have not been touched - Nothing changes for arcs of constraints not involving X Which arcs need to be reconsidered? Z1Z1 c1c1 Z2Z2 c2c2 Z3Z3 c3c3 Y c THESETHESE X A c4c4 9

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 Which arcs need to be reconsidered? 10

Arc Consistency Psuedo-code TDA <- all arcs in network While (TDA not empty) select a in TDA if (a not consistent) make a consistent add arcs to TDA that may now be inconsistent (see Previous) Slide 11

Arc consistency algorithm (for binary constraints) 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 D X is a set of values for each variable X TDA is a set of arcs 1: for each variable X do 2: D X ←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: ND X ←{x| x ∈ D X and  y ∈ D Y s.t. (x, y ) satisfies c} 8: if (ND X  D X ) then 9: TDA ←TDA ∪ { 〈Z,c'〉 | X ∈ scope(c'), c'  c, Z ∈ scope(c') \ {X} } 10: D X ←ND X 11: return {D X | X is a variable} Scope of constraint c is the set of variables involved in that constraint ND X : 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 are added to TDA TDA: ToDoArcs, blue arcs in AIspace If arc was inconsistent Domain is reduced Slide 12

Arc Consistency Algorithm: Complexity Let’s determine Worst-case complexity of this procedure (compare with DFS) let the max size of a variable domain be d let the number of variables be n Slide 13

Arc Consistency Algorithm: Complexity Let’s determine Worst-case complexity of this procedure (compare with DFS) let the max size of a variable domain be d let the number of variables be n Slide 14

Slide 15 Arc Consistency Algorithm: Complexity Let’s determine Worst-case complexity of this procedure (compare with DFS) let the max size of a variable domain be d let the number of variables be n The max number of binary constraints is……. How many times the same arc can be inserted in the ToDoArc list? How many steps are involved in checking the consistency of an arc? d {x1,x2,…xd} {y1, y2…yd} Overall:

Slide 16 Arc Consistency Algorithm: Interpreting Outcomes Three possible outcomes (when all arcs are arc consistent): One domain is empty  Each domain has a single value  Some domains have more than one value  may or may not be a solution in this case, arc consistency isn't enough to solve the problem: we need to perform search See the arc consistency (AC) practice exercise No solution Unique solution

Slide 17 Lecture Overview Recap Arc Consistency Domain splitting

Domain splitting (or case analysis) Arc consistency ends: Some domains have more than one value  may or may not have a solution A. Apply Depth-First Search with Pruning or B. Split the problem into a number of disjoint cases: for instance CSP with dom(X) = {x 1, x 2, x 3, x 4 } becomes CSP 1 with dom(X) = {x 1, x 2 } and CSP 2 with dom(X) = {x 3, x 4 } Solution to CSP is the union of solutions to CSP i 18

Slid 19 But what is the advantage? Simplify the problem using arc consistency No unique solution i.e., for at least one variable, |dom(X)|>1 Split X For all the splits Restart arc consistency on arcs (TDA) these are the ones that are possibly inconsistent Disadvantage  : you need to keep all these CSPs around (vs. lean states of DFS) By reducing dom(X) we may be able to run AC again

Domain splitting

21

More formally: Arc consistency with domain splitting as another formulation of CSP as search States: “remaining” domains (D(V 1 ), …, D(V n ))for the vars with D(V i )  dom(V i ) for each V i Start state: run AC on vector of original domains (dom(V 1 ), …, dom(V n )) Successor function: reduce one of the domains + run arc consistency Goal state: vector of unary domains that satisfies all constraints That is, only one value left for each variable The assignment of each variable to its single value is a model Solution: that assignment 22

If domains with multiple values Split on one Searching by domain splitting 23 Apply AC to original domains apply AC to remaining domains If domains with multiple values Split on one If domains with multiple values…..Split on one

Slide 24 K-ary vs. binary constraints Not a topic for this course but if you are curious about it… Wikipedia example clarifies basic idea… The dual problem is a reformulation of a constraint satisfaction problem expressing each constraint of the original problem as a variable. Dual problems only contain binary constraints, and are therefore solvable by algorithms tailored for such problems.constraint satisfaction problembinary constraintsalgorithms See also: hidden transformations

3 variables: A, B, C Domains: all {1,2,3,4} A=B, B=C, A  C Let’s trace arc consistency + domain splitting for this network for “Simple Problem 2” in AIspace Domain Splitting in Action: 25

Slide 26 Learning Goals for today’s class You can: 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

Slide 27 Next Class (§ 4.8) Local search: Many search spaces for CSPs are simply too big for systematic search (but solutions are densely distributed). Keep only the current state (or a few) Use very little memory / often find reasonable solution ….. Local search for CSPs Work on CSP Practice Ex: Exercise 4.A: arc consistencyExercise 4.A Exercise 4.B: constraint satisfaction problemsExercise 4.B