Lecture 11 Last Time Local Search Constraint Satisfaction

  • Slides: 22
Download presentation
Lecture 11 Last Time: Local Search, Constraint Satisfaction Problems Today: More on CSPs 159.

Lecture 11 Last Time: Local Search, Constraint Satisfaction Problems Today: More on CSPs 159. 302 1

What is a CSP? A special kind of search problem in which states are

What is a CSP? A special kind of search problem in which states are defined by the values of a set of variables and the goal test specifies a set of constraints that the values must obey. e. g. 8 queens – assign positions to queens timetabling – assign rooms to classes scheduling – assign times to classes circuit layout – assign position to components sudoko – assign numbers to boxes 159. 302 2

Example – Map colouring assign each region a colour, neighbouring regions must be different

Example – Map colouring assign each region a colour, neighbouring regions must be different colours 159. 302 3

How are the constraints described? 2 ways: As rules, e. g. WA != NT,

How are the constraints described? 2 ways: As rules, e. g. WA != NT, WA != SA, NT !=Q, SA != NSW, Q != NSW, NSW != V, SA !=V As possible values, e. g. {(WA, NT)}={(red, green), (red, blue), (green, red), (green, blue), (blue, re d), (blue, red)} 159. 302 4

What types of constraints are there? Constraints can be unary, binary, or higher-order: Unary:

What types of constraints are there? Constraints can be unary, binary, or higher-order: Unary: concern the value of a single variable Binary: relate pairs of variables (in 8 -Queens all constraints are binary) Higher-order: triples, 4 -tuples, . . . 159. 302 5

Backtracking Search Variable assignments are commutative, i. e. , [WA=red then NT =green] same

Backtracking Search Variable assignments are commutative, i. e. , [WA=red then NT =green] same as [NT =green then WA=red] Only need to consider assignments to a single variable at each node b=d and there are dn leaves Depth-first search for CSPs with single-variable assignments is called backtracking search Backtracking search is the basic uninformed algorithm for CSPs Can solve n-queens for n=25 159. 302 6

Backtracking Example 159. 302 7

Backtracking Example 159. 302 7

Can backtracking be improved? Three methods 1. Which variable should be assigned next? 2.

Can backtracking be improved? Three methods 1. Which variable should be assigned next? 2. In what order should its values be tried? 3. Can we detect inevitable failure early? 159. 302 8

Which variable to try next? Minimum remaining values (MRV) Choose the variable with the

Which variable to try next? Minimum remaining values (MRV) Choose the variable with the fewest legal values (most constrained variable) 159. 302 9

What if variables have the same MRV? Use the Degree Heuristic choose the variable

What if variables have the same MRV? Use the Degree Heuristic choose the variable with the most constraints on remaining variables 159. 302 10

Which value to try next? Least constraining value Given a variable, choose the least

Which value to try next? Least constraining value Given a variable, choose the least constraining value: The one that rules out the fewest values in the remaining variables Combining these heuristics makes 1000 queens feasible 159. 302 11

What is forward checking? Keep track of remaining legal values for unassigned variables Terminate

What is forward checking? Keep track of remaining legal values for unassigned variables Terminate search when any variable has no legal values 159. 302 12

Example: 4 Queens 159. 302 13

Example: 4 Queens 159. 302 13

4 Queens 159. 302 14

4 Queens 159. 302 14

4 Queens 159. 302 15

4 Queens 159. 302 15

4 Queens 1 2 3 4 159. 302 16

4 Queens 1 2 3 4 159. 302 16

4 Queens 1 2 3 4 159. 302 17

4 Queens 1 2 3 4 159. 302 17

4 Queens 159. 302 18

4 Queens 159. 302 18

4 Queens 159. 302 19

4 Queens 159. 302 19

4 Queens 159. 302 20

4 Queens 159. 302 20

4 Queens 159. 302 21

4 Queens 159. 302 21

What is Constraint Propagation? Forward checking propagates information from assigned to unassigned variables, but

What is Constraint Propagation? Forward checking propagates information from assigned to unassigned variables, but doesn't provide early detection for all failures: NT and SA cannot both be blue! Constraint propagation repeatedly enforces constraints locally 159. 302 22