700 likes | 852 Views
Computer Science CPSC 502 Lecture 3 Constraint Satisfaction Problems (Ch. 4 ). Lecture Overview. Finish Search Constraint Satisfaction Problems Variables/Features Constraints CSPs Generate-and-Test Search Arc Consistency. Course Overview. Representation. Reasoning Technique.
E N D
Computer Science CPSC 502 Lecture 3 Constraint Satisfaction Problems (Ch. 4 )
Lecture Overview • Finish Search • Constraint Satisfaction Problems • Variables/Features • Constraints • CSPs • Generate-and-Test • Search • Arc Consistency
Course Overview Representation Reasoning Technique Stochastic Deterministic • Environment Problem Type Arc Consistency Constraint Satisfaction Vars + Constraints Search Static Belief Nets Logics Variable Elimination Query Search Decision Nets Sequential STRIPS Variable Elimination Planning Search First Part of the Course Markov Processes Value Iteration
Standard Search vs. CSP • First studied general state space search in isolation • Standard search problem: search in a state space • State is a “black box” - any arbitrary data structure that supports three problem-specific routines: • goal test: goal(state) • finding successor nodes: neighbors(state) • if applicable, heuristic evaluation function: h(state) • We’ll see more specialized versions of search for various problems
Search in Specific R&R Systems • Constraint Satisfaction Problems (CPS): • State • Successor function • Goal test • Solution • Heuristic function • Query : • State • Successor function • Goal test • Solution • Heuristic function • Planning • State • Successor function • Goal test • Solution • Heuristic function
Course Overview Representation Reasoning Technique Stochastic Deterministic • Environment Problem Type Arc Consistency We’ll start from CPS Constraint Satisfaction Vars + Constraints Search Static Belief Nets Logics Variable Elimination Query Search Decision Nets Sequential STRIPS Variable Elimination Planning Search Markov Processes Value Iteration
CSPs: Crossword Puzzles - Proverb Source: Michael Littman
CSPs: Radio link frequency assignment Assigning frequencies to a set of radio links defined between pairs of sites in order to avoid interferences. Constraints on frequency depend on position of the links and on physical environment . Source: INRIA Sample Constraint network
Constraint Satisfaction Problems (CSP) • In a CSP • state is defined by a set of variablesVi with values from domain Di • goal test is a set of constraints specifying • allowable combinations of values for subsets of variables (hard constraints) • preferences over values of variables (soft constraints)
Dimensions of Representational Complexity(from lecture 2) • Reasoning tasks (Constraint Satisfaction / Logic&Probabilistic Inference / Planning) • Deterministic versus stochastic domains • Some other important dimensions of complexity: • Explicit state or features or relations • Flat or hierarchical representation • Knowledge given versus knowledge learned from experience • Goals versus complex preferences • Single-agent vs. multi-agent • Explicitstate or features or relations
Variables/Features and Possible Worlds • Variable: a synonym for feature • We denote variables using capital letters • Each variable V has a domain dom(V) of possible values • Variables can be of several main kinds: • Boolean: |dom(V)| = 2 • Finite: the domain contains a finite number of values • Infinite but discrete: the domain is countably infinite • Continuous: e.g., real numbers between 0 and 1 • Possible world: complete assignment of values to each variable • This is equivalent to a state as we have defined it so far • Soon, however, we will give a broader definition of state, so it is best to start distinguishing the two concepts.
Example (lecture 2) Mars Explorer Example Weather Temperature Longitude Latitude One possible world (state) Number of possible (mutually exclusive) worlds (states) {S, C} [-40, 40] [0, 359] [0, 179]
Example (lecture 2) Mars Explorer Example Weather Temperature Longitude Latitude One possible world (state) Number of possible (mutually exclusive) worlds (states) {S, C} [-40, 40] [0, 359] [0, 179] {S, -30, 320, 210} 2 x 81 x 360 x 180 • Product of cardinality of each domain • … always exponential in the number of variables
How many possible worlds? • Crossword Puzzle 1: • variables are words that have to be filled in • domains are English words of correct length • possible worlds: all ways of assigning words • Number of English words? Let’s say 150,000 • Of the right length? Assume for simplicity: 15,000 for each length • Number of words to be filled in? 63 • How many possible worlds? (assume any combination is ok) • 15,00063
How many possible worlds? • Crossword 2: • variables are cells (individual squares) • domains are letters of the alphabet • possible worlds: all ways of assigning letters to cells • Number of empty cells? 15*15 – 32 = 193 • Number of letters in the alphabet? 26 • How many possible worlds? (assume any combination is ok) • 26193 • In general: (domain size) #variables
Examples: variables, domains, possible worlds • Scheduling Problem: • variables are different tasks that need to be scheduled (e.g., course in a university; job in a machine shop) • domains are the different combinations of times and locations for each task (e.g., time/room for course; time/machine for job) • possible worlds: time/location assignments for each task
Constraint Satisfaction Problems (CSP) • Allow for usage of useful general-purpose algorithms with more power than standard search algorithms • They exploit the multi-dimensional nature of the problem and the structure provided by the goal • set of constraints, *not* black box.
Constraints • Constraints are restrictions on the values that one or more variables can take • Unary constraint: restriction involving a single variable • k-ary constraint: restriction involving k different variables • it turns out that k-ary constraints can always be represented as binary constraints, so we'll mainly only talk about this case • Constraints can be specified by • listing all combinations of valid domain values for the variables participating in the constraint • giving a function that returns true when given values for each variable which satisfy the constraint
Example: Map-Coloring • VariablesWA, NT, Q, NSW, V, SA, T • DomainsDi = {red,green,blue} • Constraints: adjacent regions must have • different colors • e.g., • Or …………..
Example: Map-Coloring • VariablesWA, NT, Q, NSW, V, SA, T • DomainsDi = {red,green,blue} • Constraints: adjacent regions must have • different colors • e.g., WA ≠ NT, NT ≠ SA, NT ≠ QU, ….., • Or …………..
Examples • Crossword Puzzle 1: • variables are words that have to be filled in • domains are valid English words • constraints: words have the same letters at points where they intersect • h1[0] = v1[0] • h1[1] = v2[0] • ….. • ~225 constraints h1 v1
Example: Eight Queen problem • Eight Queen problem: place 8 queens on a chessboard so that no queen can attack the others • Constraints: No queens can be in the same row, column or diagonal
Example 2: 8 queens • Variables: V1 ,.. Vn. • Vi = Row occupied by the ith queen in the ith column • Domains: D Vi= {1,2,3,4,5,6,7,8} • Constraints: : Two queens cannot be on the same row or on the same diagonal • We can specify the constraints by enumerating explicitly, for each pair of columns, what positions are allowed. Ex: • Constr(V1 , V2) = {(1,3), (1,4),..(1,8)(2,4)(2,5)…(8,6)}
Constraints • A possible world satisfies a set of constraints • if the values for the variables involved in each constraint are consistent with that constraint • Elements of the list of valid domain values • Function returns true for those values • Constraints are restrictions on the values that one or more variables can take • Unary constraint: restriction involving a single variable • k-ary constraint: restriction involving k different variables • We will mostly deal with binary constraints • Constraints can be specified by • listing all combinations of valid domain values for the variables participating in the constraint • giving a function that returns true when given values for each variable which satisfy the constraint
Models and Possible Worlds Definition: A model of a CSP is an assignment of values to all of its variables (i.e. a possible world) that satisfies all of its constraints. 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} {V1=2, V2=2} {V1=3, V2=1} {V1=3, V2=2} {V1=2, V2=1} (a model) {V1=3, V2=1} (a model) end
Example: Map-Coloring Definition: A model of a CSP is an assignment of values to all of its variables (i.e., a possible world) that satisfies all of its constraints. • WA = red, NT = green, Q = red, NSW = green, V = red,SA = blue, T = green
Finite Constraint Satisfaction Problem: Definition Definition: A finite constraint satisfaction problem (FCSP) is a CSP with a finite set of variables and a finite domain for each variable. We will only study finite CSPs here but many of the techniques carry over to countably infinite and continuous domains. We use CSP here to refer to FCSP.
Constraint Satisfaction Problems: Variants • We may want to solve the following problems with a CSP: • determine whether or not a model exists • find a model • findall of the models • count the number of models • find the best model, given some measure of model quality • this is now an optimization problem • determine whether some property of the variables holds in all models
Solving Constraint Satisfaction Problems • Even the simplest problem of determining whether or not a model exists in a general CSP with finite domains is NP-hard • There is no known algorithm with worst case polynomial runtime. • We can't hope to find an algorithm that is polynomial for all CSPs. • However, we can try to: • find efficient (polynomial) consistency algorithms that reduce the size of the search space • identify special cases for which algorithms are efficient • work on approximation algorithms that can find good solutions quickly, even though they may offer no theoretical guarantees • find algorithms that are fast on typical (not worst case) cases
Lecture Overview • Finish Search • Constraint Satisfaction Problems • Variables/Features • Constraints • CSPs • Generate-and-Test • Search • Arc Consistency
Generate and Test (GT) Algorithms • Systematically check all possible worlds • Possible worlds: cross product of domainsdom(V1) dom(V2) ... dom(Vn) • Generate and Test: • Generate possible worlds one at a time • Test constraints for each one. • Example: 3 variables A,B,C • For a indom(A) • For b indom(B) • For c indom(C) • if {A=a, B=b, C=c} satisfies all constraints • return {A=a, B=b, C=c} • fail
Generate and Test (GT) Algorithms • If there are k variables, each with domain size d, and there are c constraints, the complexity of Generate & Test is • There are dkpossible worlds • For each one need to check c constraints • Need to find a better way, that exploits the “insights” that we have on the goal expressed in terms of constraints • Why does GT fail to do this?
CSP as a Search Problem: one formulation • States: partial assignment of values to variables • Start state: empty assignment • Successor function: states with the next variable assigned • E.g., follow a total order of the variables V1, …, Vn • A state assigns values to the first k variables: • {V1 = v1,…,Vk = vk } • Neighbors of node {V1 = v1,…,Vk = vk }: nodes {V1 = v1,…,Vk = vk, Vk+1 = x} for each x dom(Vk+1) • Goal state: complete assignments of values to variables that satisfy all constraints • That is, models • Solution: assignment (the path doesn'tmatter)
V1 = v1 V1 = vk V1 = v1 V2 = vk V1 = v1 V2 = v2 V1 = v1 V2 = v1 V1 = v1 V2 = v1 V3 = v1 V1 = v1 V2 = v1 V3 = v2 CSP as a Search Problem: one formulation {}
CSPs as Search Problems • Which search strategy will work well for a CSP formulated this way? • If there are n variables every solution is at depth……. • Is there a role for a heuristic function? • the tree is always finiteand has no cycles, so which one is better BFS or IDS or DFS?
CSP as Search problem • Is there any way to prune the DFS Search tree? • 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!
V1 = v1 V1 = vk V1 = v1 V2 = vk V1 = v1 V2 = v1 V1 = v1 V2 = v2 V1 = v1 V2 = v1 V3 = v1 V1 = v1 V2 = v1 V3 = v2 CSP as Graph Searching Check unary constraints on V1 If not satisfied = PRUNE {} Check constraints on V1 and V2 If not satisfied = PRUNE Problem?
V1 = v1 V1 = vk V1 = v1 V2 = vk V1 = v1 V2 = v1 V1 = v1 V2 = v2 V1 = v1 V2 = v1 V3 = v1 V1 = v1 V2 = v1 V3 = v2 CSP as Graph Searching Check unary constraints on V1 If not satisfied = PRUNE {} Check constraints on V1 and V2 If not satisfied = PRUNE Problem? Performance heavily depends on the order in which variables are considered
Solving CSPs by DFS: Example • Variables: A,B,C • Domains: {1, 2, 3, 4} • Constraints: A < B, B < C Good ordering, lots of pruning happens right away
Solving CSPs by DFS: Example Efficiency Much worse ordering, keeps more branches around • Variables: A,B,C • Domains: {1, 2, 3, 4} • Constraints: A < B, B < C A=1 A=4 A=2 A=3 C=1 C=2 C=3 C=4 C=1 C=2 C=3 C=4 C=1 C=2 C=3 C=4 C=1 C=2 C=3 C=4
Selecting variables in a smart way • Backtracking relies on one or more heuristics to select which variables to consider next. • E.g, variable involved in the largest number of constraints (“Degree heuristics”) • But we will look at an alternative approach that can do much better
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
Lecture Overview • Finish Search • Constraint Satisfaction Problems • Variables/Features • Constraints • CSPs • Generate-and-Test • Search • Arc Consistency
Can we do better than Search? Def.: A variable is domain consistent if no value of its domain is ruled impossible by any unary constraints. V2 2 Key idea • prune the domains as much as possible before searching for a solution. • Example: dom(V2) = {1, 2, 3, 4}. • Variable V2 is not domain consistent with the constraint • It is domain consistent once we remove from its domain. • Trivial for unary constraints. Trickier for k-aryones.
Constraint network: definition • Example: • Two variables X and Y • One constraint: X<Y • 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. X Y X< Y
Example Constraint Network • 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. C {1,2} A>C B A A< B {3} {2,3}
Example Constraint Network • 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. • Example: • Variables: A,B,C • Domains: {1, 2, 3, 4} • 3 Constraints: A < B, B < C, B = 3 • 5 edges/arcs in the constraint network: • 〈A,A<B〉 , 〈B,A<B〉 • 〈B,B<C〉 , 〈C,B<C〉 • 〈B, B=3〉
Arc Consistency • Definition: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 T B A 3,4 A< B 2,3 B T F A 2,4 A< B 2,3
Arc Consistency • Definition: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. B A 3,4 A< B 2,3 Both arcs are consistent: Each value in B(A) have ok values for A(B) - e.g. for B=3, A = 2 Not arc consistent: No value in domain of B that satisfies A<B if B = 2 B A 2,4 A< B 2,3
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? • Try this simple example in • (easy to create from scratch in AI space) Y X X< Y 1,2,3 2,3,4