Download presentation
Presentation is loading. Please wait.
Published bySamuel Crewe Modified over 10 years ago
1
Planning We have done a sort of planning already Consider the “search” applied to general problem solving The sequence of moves with the “Jugs” was a plan Fill 3 litre Pour 3 litre into 4 litre Fill 3 litre … The sequence of moves in a game is a plan Why not apply same techniques for general planning? Try going to the shop to buy milk and a light bulb We need: Initial situation Goal situation Actions that can be done + cost of action Constraints
2
Planning Initial situation: At home, no milk, broken bulb Read a book Take a nap Eat bread Drink juice Make a phone call Browse the Web Go out the door Go to Uni Go to friend Go to beach Go to food shop Go to clothes shop Read a book Take another nap Eat bread
3
Planning Why not apply same techniques for general planning? Try going to the shop to buy milk and light bulb We need: Initial situation Goal situation Actions that can be done + cost of action Constraints Problem is not tightly constrained (like jugs, or game) too many silly (irrelevant) actions We know they’re silly because of commonsense Solution (3 parts):
4
Planning Solution: 1.Represent states, actions with logic sentences Start state is not just a node, but a description (NOT have(milk)) AND (NOT have (light_bulb)) AND my_location(home) Same for goal state Action is not node to node, where node is complete state buy(X) achieves have(X) Action does not affect other aspects 2.Allow planner to add actions in any order Not necessary to work from the top, searching E.g. add subgoal “buy(milk)” before leaving house Do important or obvious parts first Note: state representation important here 3.Divide and conquer Most things in the world are independent Can solve subgoals separately (compare with jugs/games)
5
STRIPS Planning (STRIPS = Stanford Research Institute Problem Solver) Initial state: (NOT have(milk)) AND (NOT have (light_bulb)) AND my_location(home) Goal state: have(milk) AND have (light_bulb) AND my_location(home) Actions: STRIPS operators Op Example: go(X) Precondition Must be true before action can be performed Example: my_location(Y) AND path (Y,X) Effect How action changes state, ADD facts and DELETE facts Example: ADD: my_location(X) –DELETE: my_location(Y)
6
STRIPS Planning (STRIPS = Stanford Research Institute Problem Solver) go(X) my_location(Y) AND path (Y,X) ADD: my_location(X) DELETE: my_location(Y) go(food_shop) my_location(home) AND path (home,food_shop) ADD: my_location(food_shop) DELETE: my_location(home)
7
How to Search for a Plan? We could search forward from our initial state We saw that this would search loads of silly actions We could search backwards from our goal state Works better, but still searching silly actions No heuristic to find actions that get closer to initial state Need a heuristic… Means-ends analysis Find actions that reduce the difference between initial and goal states Newell and Simon’s General Problem Solver Generates heuristics from a table “Table of differences” identifies operators (actions) to reduce types of differences Needs a lot of human input
8
Newell & Simon " Human Problem Solving" 1972. “I want to take my son to nursery school. What’s the difference between what I have and what I want? One of distance. What changes distance? My automobile. My automobile doesn’t work. What is needed to make it work? A new battery. What has new batteries? An auto repair shop. I want the repair shop to put in a new battery; but the shop doesn’t know I need one. What is the difficulty? One of communication. What allows communication? A telephone...”
9
How to Search for a Plan? Modern Approach: Search space of plans, not states Nodes can be partial bits of plans Search what action to add Backtrack if stuck Least commitment Leave choices to be worked out later if possible Variable values e.g. shop: buy(milk,X) Partial Ordering e.g. socks example What is a plan? Actions you will take Fix variable values in a step Ordering among actions Causal links go(X) X= food_shop go(Y) Y= hardware_shop go(X) before go(Y) go(X) causes buy(milk,X)
10
Start Left Sock Right Sock Right Shoe Left Shoe Finish
11
How to Search for a Plan? go(X) X= food_shop go(Y)Y= hardware_shop go(X) before go(Y) go(X) causes buy(milk,X) go(X) X= food_shop go(Y)Y= hardware_shop go(X) causes buy(milk,X)
12
How to Search for a Plan? GOAL: have(milk) have (light_bulb) my_location(home) buy(milk) my_location(food_shop) INITIAL STATE: (NOT have(milk)) (NOT have (light_bulb)) my_location(home) Black arrow indicates Causal Link (this implies 1.Causal link protected and 2.Ordering in this way too)
13
How to Search for a Plan? GOAL: have(milk) have (light_bulb) my_location(home) buy(milk) my_location(food_shop) buy(bulb) my_location(hardware_shop) go(home,hardware_shop) go(home,food_shop) my_location(home) INITIAL STATE: (NOT have(milk)) (NOT have (light_bulb)) my_location(home) clash
14
How to Search for a Plan? GOAL: have(milk) have (light_bulb) my_location(home) buy(milk) my_location(food_shop) buy(bulb) my_location(hardware_shop) go(home,food_shop) my_location(home) INITIAL STATE: (NOT have(milk)) (NOT have (light_bulb)) my_location(home) go(food_shop,hardware_shop) my_location(food_shop) Try a different way to achieve my_location(hardware_shop)
15
How to Search for a Plan? GOAL: have(milk) have (light_bulb) my_location(home) buy(milk) my_location(food_shop) buy(bulb) my_location(hardware_shop) go(home,food_shop) my_location(home) INITIAL STATE: (NOT have(milk)) (NOT have (light_bulb)) my_location(home) go(food_shop,hardware_shop) my_location(food_shop) Clash!
16
How to Search for a Plan? GOAL: have(milk) have (light_bulb) my_location(home) buy(milk) my_location(food_shop) buy(bulb) my_location(hardware_shop) go(home,food_shop) my_location(home) INITIAL STATE: (NOT have(milk)) (NOT have (light_bulb)) my_location(home) go(food_shop,hardware_shop) my_location(food_shop) Red arrow indicates Ordering
17
How to Search for a Plan? GOAL: have(milk) have (light_bulb) my_location(home) buy(milk) my_location(food_shop) buy(bulb) my_location(hardware_shop) go(home,food_shop) my_location(home) INITIAL STATE: (NOT have(milk)) (NOT have (light_bulb)) my_location(home) go(food_shop,hardware_shop) my_location(food_shop) go(hardware_shop,home)
18
Industrial Planners Applications Assembly, Integration, Verification of spacecraft (European Space Agency) Space missions Job Shop scheduling (Hitachi) Other issues Hierarchical Top level: prepare booster, capsule, cargo, launch Low level: insert nuts, fasten bolts Conditional effects Depends on state Time e.g. window when machine is available Resources Budget Number of Workers Number of machines / robots Changing/uncertain world Conditional planning Action/execution monitoring
19
Planning – Recap… Problem solving was already a type of planning Why not use it for general planning? Other way: What about general planning for problem solving? Solution: 1.Represent states, actions with logic sentences 2.Allow planner to add actions in any order 3.Divide and conquer Search… Forwards, Backwards, Heuristic? Search space of plans, not states What is a plan? Actions you will take Fix variable values in a step Ordering among actions Causal links Least commitment Variable values Partial Ordering Real world planning: Hierarchical, Conditional effects, Time, Resources, Changing/uncertain world
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.