110 likes | 200 Views
Search Control. Planning is really really hard Theoretically, practically But people seem ok at it What to do…. Abstraction Find “easy” classes of problems Planning with 1 precondition, no negative effects… Give up on optimality: rubic’s cube Heuristics. Search control knowledge.
E N D
Search Control.. • Planning is really really hard • Theoretically, practically • But people seem ok at it • What to do…. • Abstraction • Find “easy” classes of problems • Planning with 1 precondition, no negative effects… • Give up on optimality: rubic’s cube • Heuristics
Search control knowledge • Planning is search, how can we guide it? • Prune the search space (TLPlan) • ([x:clear(x)]goodtower(x)goodtowerabove(x)) • Prune any state that “breaks” a good tower • Assign preferences to decision points • If you want to paint a block, first try using a brush • Distance heuristics • Manhattan distance
CAUTION! Utility Problem • Control knowledge doesn’t always help (TLPlan) • Use temporal expressions to increase planner efficiency • Use TLPlan and add complex temporal expression • Saves time by pruning nodes from the search space • Adds time because you have to evaluate the temporal expression • Similar to tradeoff between search and constraint propagation • Some temporal expression may slow planner down
What is good control knowledge • Researchers tend to be sloppy in what they are improving • Possible critera • Minimize number of search nodes (Effect of TLPlan Temporal Kn) • Minimize planning time (Criterion used for testing) • For all possible planning problems? • On average? • Maximize probability of finding a solution • Maximize solution quality • Execution time • Probability of success • Modifiability • Maximize “Utility” of planner
Aside • Control knowledge a bit of a hack • Trying to get planner to do something indirectly that you couldn’t get it to do right in the first place • Biasing the search towards solutions with a certain characteristic • Fast generation time • High quality…
Expected Utility • Should a heuristic increase utility for every possible planning problem in a domain? • More reasonably: Increase utility on average • Need a space of possible problems • Need a probability distribution over those problems • Expected utility = Utility(problem)*Probability(Problem) • Need a way to estimate expected utility • Theoretically – develop some cost model for you heuristics • Statistically – draw a sample and measure on average
Composability Problem • Search control strategies are composed from many pieces • Many temporal constraints (TLPlan) • Many search control rules (PRODIGY, UCPOP) • Components interact in awkward ways w.r.t utility • Two pieces of search control knowledge may be: • Individually good but collectively bad • Individually bad but collectively good • E.G. …
Composer • Statistical solution to utility problem • Generate and test • Advantages • Domain-independent method • Doesn’t care where control knowledge comes from • Doesn’t care what utility function you need • Guaranteed to improve performance • Disadvantages • Expensive, lots of up front testing • Finds local maximum • Can be overkill
Composer NewPlanner1 Planner Transformer NewPlanner2 NewPlannerN
Statistical Hillclimbing • Lots of tricks to make it somewhat more efficient • Minimize the number of examples • Sequential analysis • Rational analysis • Blocking • Applications • Deep Space Network scheduling problem
Learning control knowledge • If I solve a problem, can’t I learn something to help me solve similar problems?? • Macros (Strips)… • Generalized macros (explanation-based learning)… • Control rules (Prodigy)…