An Introduction to Artificial Intelligence CE 40417

45
An Introduction to Artificial Intelligence CE 40417 Chapter 11 – Planning Ramin Halavati ([email protected]) In which we see how an agent can take advantage of a problem to construct complex plans of actions.

description

An Introduction to Artificial Intelligence CE 40417. Chapter 11 – Planning Ramin Halavati ([email protected]). In which we see how an agent can take advantage of a problem to construct complex plans of actions. What is planning. We have some Operators . We have a Current state. - PowerPoint PPT Presentation

Transcript of An Introduction to Artificial Intelligence CE 40417

Page 1: An Introduction to Artificial Intelligence CE 40417

An Introduction to Artificial Intelligence

CE 40417Chapter 11 – Planning

Ramin Halavati ([email protected])

In which we see how an agent can take advantage of a problem to construct complex plans of actions.

Page 2: An Introduction to Artificial Intelligence CE 40417

What is p

lan

nin

g

1. We have some Operators.

2. We have a Current state.

3. We have a Goal State.

4. We want to know:

How to arrange the How to arrange the operators to reach the operators to reach the Goal State from Current Goal State from Current State.State.

Page 3: An Introduction to Artificial Intelligence CE 40417

Air C

arg

o T

ran

sfer E

xam

ple

• What’s in Domain:– We have a set of airports as SFO,JFK, ...– We have a set of cargos as C1, C2, …– We have some airplanes as P1, P2, …

• State:– Plans and Cargos are at specific airports

and we want to change the positions.

• Actions:– Load (Cargo, Plane, Airport)– Fly (Plane, Airport1, Airport2)– Unload (Cargo, Plane, Airport)

Page 4: An Introduction to Artificial Intelligence CE 40417

Blo

cks World

Exam

ple

• Domain Objects:– A set of blocks and a table.

• States:– Blocks are stacked on each other and

the table and we want to change their positions.

• Actions:– PickUp( Block ), – PutDown( Block)– Unstack( Block, Block)– Stack( Block, Block )

A

C

B

A

C

B

Page 5: An Introduction to Artificial Intelligence CE 40417

Dom

ain

Defin

ition E

xam

ple

1

AIR CARGO TRANPORT DOMAIN:

• Objects:– SFO , JFK, C1 , C2 , P1 , P2.

• Predicates:– At( C1, SFO )– In( C1, P2 )– Plane( P1)– Cargo(C1)

• Actions:– …

Page 6: An Introduction to Artificial Intelligence CE 40417

Dom

ain

Defin

ition

Ex.1

(con

t.)

• Actions:– Name, – Parameters, – Preconditions, – Effects.

– LOAD( c, p , a )• Prec.:

At(c,a), At(p,a), Cargo(c),Plane(p),Airport(a).• Effects:

~At(c,a), In(c,p)

Page 7: An Introduction to Artificial Intelligence CE 40417

Dom

ain

Defin

ition E

x.1

(co

nt.)

• Actions:

– UNLOAD( c, p , a )• Prec.:

In(c,p), At(p,a), Cargo(c),Plane(p),Airport(a).• Effects:

At(c,a), ~In(c,p)

– FLY( p , a1, a2 )• Prec.:

At(p,a1) Plane(p),Airport(a1) ,Airport(a2).• Effects:

~At(p,a1), At(p,a2)

Page 8: An Introduction to Artificial Intelligence CE 40417

Dom

ain

Defin

ition E

xam

ple

2

BLOCKS WORLD DOMAIN

• Objects:– A, B, C, … (the blocks) & the ROBOT.

• Predicates:– On( x , y ).– OnTable( x ).– Holding( x ).– HandEmpty.– Clear( x ).– OnTable( x ).– Block( x ).

Page 9: An Introduction to Artificial Intelligence CE 40417

Dom

ain

Defin

ition

Ex.2

(con

t.)

• Actions:– UnStack( x , y ):

• Prec:On(x,y), HandEmpty, Clear( x ).

• Effects:~On(x,y), Holding(x), ~Clear(x), Clear(y).

– Stack( x,y ):• Prec:

Holding(x), Clear(y)• Effects:

On(x,y), HandEmpty, ~Holding(x), Clear( x ), ~Clear(y).

NOTE: Nothing about what is block and what’s not.

Y

X

Page 10: An Introduction to Artificial Intelligence CE 40417

Dom

ain

Defin

ition

Ex.2

(con

t.)

• Actions:– PickUp( x ):

• Prec:HandEmpty, Clear( x ), OnTable( x ).

• Effects:Holding(x), ~Clear(x), ~OnTable( x ).

– PutDown( x ):• Prec:

Holding(x).• Effects:

OnTable( x ), HandEmpty, Clear( x ).

Page 11: An Introduction to Artificial Intelligence CE 40417

Pro

pble

m D

efinitio

n E

x.2

• PROBLEM DEFINITION:– Initial State:

On(C,A), Clear(C), ~Clear(A),OnTable(A), Clear(B), OnTable(B),HandEmpty.

– Goal State:HandEmpty,Clear(A),On(A,B),On(B,C),OnTable(C).

A

C

B

A

C

B

Page 12: An Introduction to Artificial Intelligence CE 40417

Sim

ple

st App

roach

• It’s all about SEARCH.– States:

As described before.

– Next State Generator:Which actions are applicable, apply every one

of em.

– Path Cost:One for each action.

– Goal Test:Has goal state reached?

Page 13: An Introduction to Artificial Intelligence CE 40417

CAB

CBA

ABC

BAC

ACB

BCA

A B

C

B C

A

A C

BA B

C

A C

B

B C

A

A B C

Initialstate

Goal

Page 14: An Introduction to Artificial Intelligence CE 40417

Sim

ple

st App

roach

• Progression (Forward Search):– Start from Initial State, move forward

till you reach goal state.

A

C

B

A

C

B A

C B

A

C

B

A

C

BAC B A

C

BA

C

B

. . .

NOTE: Backtracking is mandatory.

Page 15: An Introduction to Artificial Intelligence CE 40417

Sim

ple

st App

roach

• Regression (Backward Search):– Put Goal State’s predicates in Agenda.– Recursively fetch an item from agenda

• Find something to satisfy it.• Remove all its effects from agenda.• Add all its preconditions to agenda.

Page 16: An Introduction to Artificial Intelligence CE 40417

Regre

ssion

Exam

ple

On(A,B), On(B,C), OnTable(C)1. Pick Goal: On(A,B)

2. Choose Action: Stack(A,B)

3. Add actions preconditions to agenda and remove its effects from it.

On(B,C), OnTable(C), Holding(A), Clear(B).

1. Pick Goal: Holding(A)

2. Choose Action: PickUp(A).

3. ...

On(B,C), OnTable(C), Clear(B), HandEmpty, OnTable(A)

...

Page 17: An Introduction to Artificial Intelligence CE 40417

Pure

Search

App

roach

es

• Heuristics:– Using Relaxed Domain Definition:

• Assume actions have no precondition.• Assume actions have no negative effects.• …• (They are all admissible).

– Sub-Goal Independence Assumption• Assuming each goal can be achieved with a

sub-plan, regardless of other necessities.• (Not necessarily admissible, depends on the

domain).

Page 18: An Introduction to Artificial Intelligence CE 40417

Sim

ple

st App

roach

• What’s wrong with Search?

– Branching Factor may be too big.

– The search space is reversible, resulting in infinite loops and repeated states.

– Simple Search is the least that we can do.

Page 19: An Introduction to Artificial Intelligence CE 40417

Partia

l Ord

er P

lannin

g

PARTIAL ORDER PLANNING

Page 20: An Introduction to Artificial Intelligence CE 40417

Partia

l Ord

er P

lannin

g

• We do not need to start from the beginning of plan and march to end.

• Some steps, facts, etc. are more important, we can decide on them ahead.

• We can impose least possible commitments during the task.

Page 21: An Introduction to Artificial Intelligence CE 40417

END :

On(A,B)

On(B,C)

OnTable(C)

START:

On(C,A)

OnTable(A)

OnTable(B)

Clear(C)

Clear(A)

Holding(A)

Clear(B)

On(A,B)

H.E.

Clear(A)

STACK(A,B)

Holding(B)

Clear(C)

On(B,C)

H.E.

Clear(B)

STACK(B,C)

AC

B A

CB

Note: Not all results of each action is mentioned.

OnTable(B)

H.E.

Holding(B)

~Clear(B)

~OnTable(B)

PickUp(B)

Page 22: An Introduction to Artificial Intelligence CE 40417

Ord

erin

g

Page 23: An Introduction to Artificial Intelligence CE 40417

Partia

l Ord

er P

lannin

g

• Assume an action called START.– No precondition.– All ‘Initial State’ as its effects.

• Assume an action called END.– All ‘Goal State’ as its precondition.– No Effect.

Page 24: An Introduction to Artificial Intelligence CE 40417

Partia

l Ord

er P

lannin

g

• Partial Plan is a (A,O,L,Agenda) where:

– A: set of actions in the plan• Initially {Start, End}

– O: temporal orderings between actions• Initially {Start<End}

– Agenda: open preconditions that need to be satisfied along with the action which needs them.

• Initially all preconditions of End such as {(BeHome,End),(HaveMoney,End)}.

Page 25: An Introduction to Artificial Intelligence CE 40417

Partia

l Ord

er P

lannin

g

• L: The set of Causal Links– Initially Empty.– Causal Link:

Action A2 has precondition Q that is established in the plan by action A1.

A1 A2Q

Clear(B)Unstack(C,B) Putdown(A,B)

Page 26: An Introduction to Artificial Intelligence CE 40417

Partia

l Ord

er P

lannin

g

• Example:

– A ={Start, Stack(B,C), End}

– O ={Start<End, Stack(B,C)<End}

– L ={(Stack(B,C),On(B,C),End)}

– Agenda={(On(A,B),End), (OnTable(C),End), (Holding(B),Stack(B,C), (Clear(C),Stack(B,C)}.

END:

On(A,B)

On(B,C)

OnTable(C)

START:

On(C,A)

OnTable(A)

OnTable(B)

Clear(C)

Clear(A)

Holding(B)

Clear(C)

On(B,C)

H.E.

Clear(B)

STACK(B,C)

Page 27: An Introduction to Artificial Intelligence CE 40417

Partia

l Ord

er P

lannin

g

• A causal link (A1, Q, A2) represents the assertion that the role of A1 is to establish proposition Q for A2. This tells future search steps to “protect” Q in the interval between A1 and A2.

• Action B threatens causal link (A1, Q, A2) if:

1. B has Q as a delete effect, and

2. B could come between A1 and A2, i.e.

O (A1 < B < A2) is consistent.

• For example: PutDown(C,B) is a threat for:

Unstack(C,B) PutDown(A,B)Clear(B)

Page 28: An Introduction to Artificial Intelligence CE 40417

Finally

, PO

P’s C

ode.

POP(<A,O,L>, agenda)

2. Goal selection: Let <Q,Aneed> be a pair on the agenda

3. Action selection: Let Aadd = choose an action that adds Qif no such action exists, then return failure

Let L’= L {Aadd → Aneed}, and let O’ = O {Aadd < Aneed}.If Aadd is newly instantiated, then A’ = A {Aadd} and

O’ = O {A0 < Aadd < A} (otherwise, let A’ = A)4. Updating of goal set: Let agenda’ = agenda -{<Q,Aneed>}.If Aadd is newly instantiated, then for each conjunction, Qi,

of its precondition, add <Qi,Aadd> to agenda’5. Causal link protection: For every action At that might

threaten a causal link Ap → Ac, add a consistentordering constraint, either

(a) Demotion: Add At < Ap to O’(b) Promotion: Add Ac < At to O’ (c) Inequality constraintsIf neither constraint is consistent, then return failure6. Recursive invocation: POP((<A’,O’,L’>, agenda’)

1. Termination: If agenda is empty return <A,O,L>

Q

p

Page 29: An Introduction to Artificial Intelligence CE 40417

Last P

OP N

ote

s.

• Using Variables:– You need not add UnStack(A,B) when

you need Clear(B). Just add Unstack(x,B) and add binding as a next step.

• Heuristics:– What to do in ChooseGoal and

ChooseAction?

Page 30: An Introduction to Artificial Intelligence CE 40417

Pla

nnin

g G

rap

h

• Main Idea:– To construct a graph of possible

outcomes.

Page 31: An Introduction to Artificial Intelligence CE 40417

Din

ner D

ate

Dom

ain

• Initial Conditions: (and (garbage) (cleanHands) (quiet))

• Goal: (and (dinner) (present) (not (garbage))

• Actions:– Cook :precondition (cleanHands)

:effect (dinner)– Wrap :precondition (quiet)

:effect (present)– Carry :precondition

:effect (and (not (garbage)) (not (cleanHands))– Dolly :precondition

:effect (and (not (garbage)) (not (quiet)))

Page 32: An Introduction to Artificial Intelligence CE 40417

Din

ner D

ate

Gra

ph

Page 33: An Introduction to Artificial Intelligence CE 40417

Mutu

al E

xclu

sion

Cla

sses

Inconsistent Effects

Inconsistent SupportCompeting Needs

Interference (Prec-Effect)

Page 34: An Introduction to Artificial Intelligence CE 40417

Obse

rvatio

n 1

Propositions monotonically increase(always carried forward by no-ops)

p

¬q

¬r

p

q

¬q

¬r

p

q

¬q

r

¬r

p

q

¬q

r

¬r

A A

B

A

B

Page 35: An Introduction to Artificial Intelligence CE 40417

Obse

rvatio

n 2

Actions monotonically increase

p

¬q

¬r

p

q

¬q

¬r

p

q

¬q

r

¬r

p

q

¬q

r

¬r

A A

B

A

B

Page 36: An Introduction to Artificial Intelligence CE 40417

Obse

rvatio

n 3

Proposition Mutex relationships monotonically decrease

p

q

r

A

p

q

r

p

q

r

Page 37: An Introduction to Artificial Intelligence CE 40417

Obse

rvatio

n 4

Action mutex relationships monotonically decrease

p

q

…B

p

q

r

s

p

q

r

s

A

C

B

C

A

p

q

r

s

B

C

A

Page 38: An Introduction to Artificial Intelligence CE 40417

Obse

rvatio

n 5

(Su

m U

p)

Planning Graph ‘levels off’.

• After some time k, all levels are identical.

• Because it’s a finite space, the set of literals never decreases and mutexes don’t reappear.

Page 39: An Introduction to Artificial Intelligence CE 40417

Gra

ph P

lan A

lgorith

m

Graph Plan Algorithm:

• Grow the planning graph (PG) until all goals are reachable and not mutex. (If PG levels off first, fail)

• Search the PG for a valid plan

• If non found, add a level to the PG and try again

Page 40: An Introduction to Artificial Intelligence CE 40417

Search

for a

solu

tion p

lan

Page 41: An Introduction to Artificial Intelligence CE 40417

Search

for a

solu

tion p

lan

• Backward chain on the planning graph

• Achieve goals level by level

• At level k, pick a subset of non-mutex actions to achieve current goals. Their preconditions become the goals for k-1 level.

• Build goal subset by picking each goal and choosing an action to add. Use one already selected if possible. Do forward checking on remaining goals (backtrack if can’t pick non-mutex action)

Page 42: An Introduction to Artificial Intelligence CE 40417

Just A

noth

er P

lann

ing

Ap

pro

ach

Planning By Logic (SAT-Plan):

1. Convert the planning problem into a logic problem.

2. Solve the logic problem.

Page 43: An Introduction to Artificial Intelligence CE 40417

SA

T P

lan

Exam

ple

INITIAL STATE:At(P1,SFO)0 AT(C1,JFK)0 Plane(P1) Cargo(C1) Airport(SFO) Airport(JFK).

RULES:At(x,y)t FLY(x,y,z)t Airplane(x) Airport(y) Airport(z)

At(x,z)t+1 At(x,y)t+1

GOAL STATE:AT(C1,SFO)x

Page 44: An Introduction to Artificial Intelligence CE 40417

Su

m U

p

• POP: Most human-like.

• Graph Plan: Winner of planning contests.

• SAT Plan: Widely used in real problem as:– Hardcode logic solvers.– Mathematics and Optimization.

• Note: Combinations are also used.

Page 45: An Introduction to Artificial Intelligence CE 40417

EX

ER

CIS

ES &

Pro

jects

Implement either POP or Graph-Plan.

As Exercise:

On a hard-coded domain without variable-

instantiating.

– Send To: [email protected]

– Subject: AIEX-C11

As Project:

Read the domain as PDDL, have variable

instantiation, and all.