VIEWS: 3 PAGES: 10 POSTED ON: 5/6/2012
Constraint Satisfaction Not all problems are solved by a sequential series of steps. How do we solve other types of problems? Problem structure • Some problems are structured such that you need to make a proper sequence of moves to solve the problem • Driving a car • Missionaries and cannibals • Not all are, though. For some, what matters is the end goal, not how you get there • 8 queens • Choosing a college Constraint satisfaction problems • In CSPs, we are simply looking for a solution to the problem where a set of variables all have values that are valid within the set of constraints that defines the goal state. • Examples: • Map coloring • Cryptarithmetic Searching in CSPs • Because the order of moves doesn’t matter, “searching” in a CSP is very different. • Instead of searching a tree that is essentially pre-defined, with each level representing a move, now we search a tree we generate, where each level contains the possible values for the variables. How best to search? • One way of searching a CSP is to use our previous search algorithms. • The first step is to pick a value for one of the variables. • The next step picks a value for another variable, etc. • Problem: For the first level, the number of child nodes is the number of variables the average number of values per variable. • This creates a tree with a huge number of nodes! Way more nodes than all the possible combinations. Efficient searching in CSPs • Clearly, we only gain a benefit over testing all possible variable-value combinations if we check fewer nodes than that. • The easiest way is to have each level in the search tree correspond to assigning a value to only one variable. • But how do we decide which variable to use first? – This is an important question because if we choose poorly, we may over constrain ourselves – The goal should be to find a choice that both minimizes branchiness, while leaving us with the most options (depth). Minimum Remaining Values • Choose the remaining variable with the least number of possible values. – Minimizes branchiness because this variable will have the fewest branches at a given depth of the tree. – Unclear how it affects depth since it doesn’t take into account how this choice affects other variables. Degree heuristic • Choose the one that is involved in the largest number of other constraints. – Reduces branchiness by pruning the number of possibilities for other variables – Can over-prune, so works best when used primarily to break ties in the MRV heuristic Least-constraining value • Once we’ve chosen a variable, how do we choose a value? • Choose the value that rules out the fewest choices (prunes the fewest branches from the tree). Forward checking • So far, we’ve only looked at constraints at the time we chose a particular variable-value combination. • Wouldn’t it be easier to look ahead and see the results of given choices on the constraints? • Forward checking works by, every time we choose a value for a variable, it eliminates the values for other variables that conflict with that constraint. • In combination with MRV, yields the most efficient constraint satisfaction system.
Pages to are hidden for
"Constraint Satisfaction Not all problems are solved by a sequential series of steps How do we solve other types of problems Problem structure • Some problems are"Please download to view full document