You are on page 1of 29

Module 5

Planning and Learning- Basic Plan Generation System


Planning problem in AI

• Planning – Problem solving in advance.


• The planning problem in Artificial Intelligence is about the decision making
performed by intelligent systems like robots, humans or computer programs in
the pursuit of achieving a goal.
• It involves choosing a sequence of actions that will transform the state of the
world step by step to achieve the goal.

• Planning- Set of actions


• Action- Precondition: For actions to be performed there is no need for
preconditions.
Effect: Effect is the result of actions performed.
A planning agent
• An agent interacts with the world via perception and actions.
• Perception involves sensing the world and assessing the situation
• creating some internal representation of the world.
• Actions are what the agent does in the domain.
• Planning involves reasoning about actions that the agent intends to carry out
• “Planning is the reasoning side of acting”
• This reasoning involves the representation of the world that the agent has, as also the
representation of its actions.
• Hard constraints where the objectives have to be achieved completely for success.
• The objectives could also be soft constraints, or preferences, to be achieved as much as
possible.
Interaction with static domain
• The agent has complete information of the domain (perception is perfect), actions are instantaneous
and their effects are deterministic.

• The agent knows the world completely, and it can take all facts into account while planning.

• The fact that actions are instantaneous implies that there is no notion of time, but only of sequencing of
actions.

• The effects of actions are deterministic, and therefore the agent knows what the world will be like after
each action.
Components of Planning System

• In any general problem solving systems, elementary techniques to perform following functions are
required.

• Choose the best rule to be applied.


• Apply the chosen rule to get new problem state.
• Detect when a solution has been found.
• Detect dead ends so that new directions are explored.
Two kinds of planning
• Projection into the future
• The planner searches through the possible combination of actions to
find the plan that will work.
• Memory based planning
• Looking into the past
• The agent can retrieve a plan from its memory.
Types of planning
1. Forward State Space Planning (FSSP)
• FSSP behaves in the same way as forwarding state-space search.
• It says that given an initial state S in any domain, we perform some necessary actions and obtain a new state S' (which also contains
some new terms), called a progression.
• It continues until we reach the target position. Action should be taken in this matter.
• Disadvantage: Large branching factor
• Advantage: The algorithm is Sound

2. Backward State Space Planning (BSSP)


• BSSP behaves similarly to backward state-space search.
• In this, we move from the target state g to the sub-goal g, tracing the previous action to achieve that goal. This process is called
regression (going back to the previous goal or sub-goal).
• These sub-goals should also be checked for consistency. The action should be relevant in this case.
• Disadvantages: not sound algorithm (sometimes inconsistency can be found)
• Advantage: Small branching factor (much smaller than FSSP)
• So for an efficient planning system, we need to combine the features of FSSP and BSSP
Advanced STRIPS representation
in Artificial Intelligence
• After planning problem, it is required to solve the problem and to solve that problem a
problem planning language or technique is required.
• Planning languages are known as action language.
• STRIPS is a technique/Language that works as an automated planner.
• STRIPS stands for Stanford Research Institute Problem Solver.
• It’s an automated planning technique for finding goals by executing a domain from the initial
state.
Four types of operations done by robot in block world environment

• UNSTACK (X, Y) : [US (X, Y)]Pick up X from its current position on block Y. The arm must be empty and
X has no block on top of it.
• STACK (X, Y): [S (X, Y)] Place block X on block Y. Arm must holding X and the top of Y is clear.
• PICKUP (X): [PU (X) ]Pick up X from the table and hold it. Initially the arm must be empty and top of X is
clear.
• PUTDOWN (X): [PD (X)]Put block X down on the table. The arm must have been holding block X.
Example : Blocks World
•Fundamental Problem :
The frame problem in AI is concerned with the question of what piece of knowledge is
relevant to the situation.

•Fundamental Assumption : Closed world assumption


If something is not asserted in the knowledge base, it is assumed to be false.

(Also called “Negation by failure”)


Example : Blocks World
•STRIPS : A planning system – Has rules with
precondition deletion list and addition list
Robot Robot
hand
A hand
C B
A B C
START GOAL

on(B, table) on(C, table)


on(A, table) on(B, C)
on(C, A) on(A, B)
hand empty hand empty
clear(C) clear(A)
clear(B)
Rules
•R1 : pickup(x)
Precondition & Deletion List : hand empty,
on(x,table), clear(x)
Add List : holding(x)

•R2 : putdown(x)
Precondition & Deletion List : holding(x)
Add List : hand empty, on(x,table), clear(x)

•R3 : stack(x,y)
Precondition & Deletion List :holding(x), clear(y) Add List : on(x,y), clear(x)

•R4 : unstack(x,y)
Precondition & Deletion List : on(x,y), clear(x)
Add List : holding(x), clear(y)
• Along with the operations ,some predicates to be used to describe an environment clearly.
Those predicates are,

• ON(X, Y) - Block X on block Y.


• ONT() - Block X on the table.
• CL(X) - Top of X clear.
• HOLD(X) - Robot-Arm holding X.
• AE - Robot-arm empty.
Generating a plan to reach goal state from initial state

Initial State Goal State

Armempty Armempty
clear(block2) ontable(block2)
ontable(block2) on(block1, block2)
ontable(block1) clear(block1)
clear(block1) In this example the initial state has two blocks Block1 and Block 2. Both is
placed on table.

To reach the goal state first we have to


PICKUP(Block 1)
• This is not the goal state .so ,

We need to check whether we reach goal state or not ,after completion


of each and every operation. Here the environment looks like,

Hold(block1)
Clear(Block2)
OnTable(Block2)
• we have to continue the process. Next the block 1 needs to be place on block 2,to
achieve this do the operation STACK(Block1,Block2).
• After this operation the environment looks like,

ArmEmpty,on(Block1,Block2),Clear(Block1),OnT
able(Block2)

We reach the goal state,the plan for reaching goal state is


PICKUP(Block1) and Stack(Block1,Block2)
The STRIPS representation for an action consists of three lists,

• Pre_Cond list contains predicates which have to be true before operation.


• ADD list contains those predicates which will be true after operation
• DELETE list contain those predicates which are no longer true after operation.
Initial State
on(block2, block1)
clear(block2) Goal State
ontable(block3) empty
on(block4, block3) on(block3, block4)
on(block5, block4) on(block5, block1)
clear(block5) ont(block2)
• Identify the style operators for given problem,

• Unstack(block5,block4)

Pre: ON (block5, block4) , CL (block5) , AE


• Del: ON (block5,block4) , AE
• Add: HOLD (block5) , CL (block4)
Putdown(block5)
Pre: HOLD (block5)
Del: HOLD (block5)
Add: ONT (block5) , AE
Unstack(block4,block3)
Pre: ON (block4, block3) , CL (block4) , AE
Del: ON (block4,block3) , AE
Add: HOLD (block4) , CL (block3)
Putdown(block4)
Pre: HOLD (block4)
Del: HOLD (block4)
Add: ONT (block4) , AE
Pickup(block3)
Pre: ONT (block3) , CL (block3) ,AE
Del: ONT (block3) , AE
Add: HOLD (block3)
Stack(block3,block4)
Pre: CL (block3) ,HOLD (block3)
Del: CL (block4), HOLD (block3)
Add: AE , ON (block3, block4)
Unstack(block2,block1)
Pre: ON (block2, block1) , CL (block2) , AE
Del: ON (block2, block1) , AE
Add: HOLD (block2) , CL (block3)
Putdown(block2)
Pre: HOLD (block2)
Del: HOLD (block2)
Add: ONT (block2) , AE
Pickup(block5)
Pre: ONT (block5) , CL (block5) ,AE
Del: ONT (block5) , AE
Add: HOLD (block5)
Stack(block5,block1)

Pre: CL (block1) ,HOLD (block5)


Del: CL (block1), HOLD (block5)
Add: AE , ON (block5, block1)

• After completing all the operations what we found for the given problem, we had reached the goal state.
armempty
on(block3, block4)
on(block5, block1)
ont(block2)

You might also like