12
Flat Tire Example init: {tire(flat),tire(spare),at(flat,axle),at(spare,trunk)} goal: at(spare,axle) operators: Remove(obj,loc) precond: at(obj,loc) • effect: at(obj,loc),at(obj,ground) PutOn(t,axle) precond: tire(t),at(t,ground),at(flat,axle) • effect: at(t,ground), at(flat,axle) LeaveOvernight • precond: • effect: at(spare,ground), at(spare,trunk), at(spare,axle) at(flat,ground), at(flat,trunk), at(flat,axle)

Flat Tire Example init: {tire(flat),tire(spare),at(flat,axle),at(spare,trunk)} goal: at(spare,axle) operators: –Remove(obj,loc) precond: at(obj,loc) effect:

  • View
    220

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Flat Tire Example init: {tire(flat),tire(spare),at(flat,axle),at(spare,trunk)} goal: at(spare,axle) operators: –Remove(obj,loc) precond: at(obj,loc) effect:

Flat Tire Example• init: {tire(flat),tire(spare),at(flat,axle),at(spare,trunk)}• goal: at(spare,axle)• operators:

– Remove(obj,loc)• precond: at(obj,loc)• effect: at(obj,loc),at(obj,ground)

– PutOn(t,axle)• precond: tire(t),at(t,ground),at(flat,axle)• effect: at(t,ground), at(flat,axle)

– LeaveOvernight• precond:• effect:

at(spare,ground), at(spare,trunk), at(spare,axle)at(flat,ground), at(flat,trunk), at(flat,axle)

Page 2: Flat Tire Example init: {tire(flat),tire(spare),at(flat,axle),at(spare,trunk)} goal: at(spare,axle) operators: –Remove(obj,loc) precond: at(obj,loc) effect:
Page 3: Flat Tire Example init: {tire(flat),tire(spare),at(flat,axle),at(spare,trunk)} goal: at(spare,axle) operators: –Remove(obj,loc) precond: at(obj,loc) effect:
Page 4: Flat Tire Example init: {tire(flat),tire(spare),at(flat,axle),at(spare,trunk)} goal: at(spare,axle) operators: –Remove(obj,loc) precond: at(obj,loc) effect:
Page 5: Flat Tire Example init: {tire(flat),tire(spare),at(flat,axle),at(spare,trunk)} goal: at(spare,axle) operators: –Remove(obj,loc) precond: at(obj,loc) effect:
Page 6: Flat Tire Example init: {tire(flat),tire(spare),at(flat,axle),at(spare,trunk)} goal: at(spare,axle) operators: –Remove(obj,loc) precond: at(obj,loc) effect:

SatPlan• propositionalization

– create separate literals for each ground instance of each fluent for each state index

• e.g. on_a_b_1 , on_a_b_2 , on_a_b_3, gripper_empty_1, gripper_empty_2...– create propositions for action taken at step t: pickup_a_b_1...

• convert axioms in FOL to propositional sentences (one copy for each time index)– possibility axioms: s,a Prec(s)Poss(a,s)

• gripper_empty_1clear_a_1 poss_pickup_a_1• gripper_empty_2clear_a_2 poss_pickup_a_2• gripper_empty_1clear_b_1 poss_pickup_b_1

– successor axioms: s Poss(a,s)Eff(result(a,s))• poss_pickup_a_1 pickup_a_1 holding_a_2gripper_empty_2

– frame axioms: s Flu(s)aCancelingActionsFlu(result(a,s))• on_b_c_1 poss_pickup_a_1 on_b_c_2

• use a satisfiability solved like DPLL or WalkSat– query: poss_on_a_b_1? poss_on_a_b_2? poss_on_a_b_3?– the truth values of action propositions in the model tell you the plan

• pickup_c_a_1=T, puton_c_table_2=T, pickup_b_table_3=T, puton_b_a_4=T

Page 7: Flat Tire Example init: {tire(flat),tire(spare),at(flat,axle),at(spare,trunk)} goal: at(spare,axle) operators: –Remove(obj,loc) precond: at(obj,loc) effect:

more complex planning domains

Page 8: Flat Tire Example init: {tire(flat),tire(spare),at(flat,axle),at(spare,trunk)} goal: at(spare,axle) operators: –Remove(obj,loc) precond: at(obj,loc) effect:

• Plan Abstraction– the idea: simplify problem by temporarily “dropping”

easy preconditions• defer solving them till later• make high-level plan, then fill in details

– system: ABSTRIPS– example:

• make a high-level plan for solving 8-puzzle where you assume you can move pieces without empty space

7 2 4

5 1 6

8 3

7 2 4

5 1 3

8 6

Page 9: Flat Tire Example init: {tire(flat),tire(spare),at(flat,axle),at(spare,trunk)} goal: at(spare,axle) operators: –Remove(obj,loc) precond: at(obj,loc) effect:

• Hierarchical Task Networks (HTNs)– plan library

• a list of standard operating procedures, written out in procedural syntax• ExecuteMissionWithHelicopters:

– preconds: haveHelicopters, knowTargetCoordinates– steps: {FlyFlightPlan,Engage,ReturnToBase}

– high-level operators vs. low-level operators– expansion, multiple choices of how to achieve subtask– still a problem of sub-goal interactions– system: STEAM

Page 10: Flat Tire Example init: {tire(flat),tire(spare),at(flat,axle),at(spare,trunk)} goal: at(spare,axle) operators: –Remove(obj,loc) precond: at(obj,loc) effect:

• plan monitoring and repair– what if action in step i might fail?– non-deterministic domains (most in real-world)– at each step, check pre-conditions– if expected conditions not satisfied, re-invoke planner

• costly to re-plan from scratch• search for modification of existing plan, e.g. re-do previous action or

insert steps to get back on track

• contingent planning: – a plan with a branch in it– include sensor actions to sense state– algorithm to create such plans to achieve goals

• goal regression? • universal planners: generate state-action tables, finite-state machines

{pickupA, senseHolding, while not holding do {pickupA,senseHolding}}{swingAx, senseTree, while TreeStanding do {swingAx,senseTree}}

enter room

sense light

off(light)? flip(switch)

next action

Page 11: Flat Tire Example init: {tire(flat),tire(spare),at(flat,axle),at(spare,trunk)} goal: at(spare,axle) operators: –Remove(obj,loc) precond: at(obj,loc) effect:

• plan optimization– use heuristics to search for a plan that minimizes cost

of operators, or time...– start by finding any plan that achieves goals, and then

apply incremental modifications

• related to scheduling– critical path method (CPM) – compute [ES,LS]

– resource constraints (e.g. 1 machine to add engine)

Page 12: Flat Tire Example init: {tire(flat),tire(spare),at(flat,axle),at(spare,trunk)} goal: at(spare,axle) operators: –Remove(obj,loc) precond: at(obj,loc) effect:

Robotics• basic approach:

– navigation in configuration space – find path from initial configuration to goal configuration

– # dimensions = degrees of freedom (parameters that can be controlled, e.g. joint angles)

– find path; avoid collisions with “obstacles”