Consider the task get milk, bananas, and a cordless drill
Search vs. planning Standard search algorithms seem to fail miserably: Problems with search approach –too many irrelevant actions –finding good heuristics is difficult –cannot take advantage of problem decomposition
Planning as search with logic Planning systems do the following: 1. open up action and goal representation to allow selection 2. divide-and-conquer by subgoaling 3. relax requirement for sequential construction of solutions
Classic Planning Planning: devising a sequence of actions achieving a goal –fully observable –deterministic –static –discrete specific language to represent planning problems
Language for planning problems STRIPS: STanford Research Institute Problem Solver world described by logical conditions state as conjunction of positive literals –propositional; e.g., Happy ^ Hungry to represent the state of the agent –first-order ground and function-free terms; e.g., At(Plane1, Verona) ^ At(Plane2,Malpensa) closed-world assumption; i.e., any not mentioned condition is false goal is a partially specified state –a state satisfies a goal if contains all the literals of the goal –e.g. state At(Plane1, Verona) ^ At(Plane2,Malpensa) satisfies goal At(Plane2,Malpensa)
STRIPS actions actions are described by –preconditions: when the action can be applied –effects: state changes by the action add-list: propositions that become true delete-list: propositions that become false actions contain variables a single action schema represents different actions (instantiation of variables)
STRIPS actions (contd.) Tidily arranged actions descriptions, restricted language Action schema: –ACTION: specifies name and parameter list Buy(x) –PRECONDITION: conjunction of positive literals At(p) ^ Sells(p, x) –EFFECT: conjunction of literals (positive or negative) Have(x) –[Note: no information on how to execute the action!] A complete set of STRIPS operators can be translated into a set of successor-state axioms
Semantics Given a state (conjunction of literals) –precondition is satisfied if there is a variable assignment s.t. the literals are included in the state; e.g., state At(HW) ^ Sell(HW,Drill) satisfies precondition At(p) ^ Sells(p, x) with assignment p/HW and x/Drill –actions with preconditions satisfied can be applied delete items from the delete-list add items from the add-list order does matter! new state: At(HW) ^ Sell(HW,Drill) ^ Have(Drill)
Example: Shopping Actions –Buy(x) PRE: At(store), Sells(store, x) EFF: Have(x) –Go(x, y) PRE: At(x) EFF: At(y),¬At(x) Start –At(Home) ^ Sells(SM,Milk) ^ Sells(SM,Banana) ^ Sells(HWS,Drill) Goal –Have(Milk) ^ Have(Banana) ^ Have(Drill)