Top Banner
INTRODUCTION TO AI STRIPS PLANNING .. and Applications to Video-games! May 2012 Stavros Vassos, University of Athens, Greece [email protected]
48

Intro to AI STRIPS Planning & Applications in Video-games Lecture2-Part2

Jun 26, 2015

Download

Technology

Stavros Vassos

This is a short course that aims to provide an introduction to the techniques currently used for the decision making of non-player characters (NPCs) in commercial video games, and show how a simple deliberation technique from academic artificial intelligence research can be employed to advance the state-of-the art.

For more information and downloading the supplementary material please use the following links:
http://stavros.lostre.org/2012/05/19/video-games-sapienza-roma-2012/
http://tinyurl.com/AI-NPC-LaSapienza
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Intro to AI STRIPS Planning & Applications in Video-games Lecture2-Part2

INTRODUCTION TO AI

STRIPS PLANNING

.. and Applications to Video-games!

May 2012Stavros Vassos, University of Athens, Greece [email protected]

Page 2: Intro to AI STRIPS Planning & Applications in Video-games Lecture2-Part2

2

Lecture 1: Game-inspired competitions for AI research,

AI decision making for non-player characters in games

Lecture 2: STRIPS planning, state-space search

Lecture 3: Planning Domain Definition Language (PDDL),

using an award winning planner to solve Sokoban

Lecture 4: Planning graphs, domain independent

heuristics for STRIPS planning

Lecture 5: Employing STRIPS planning in games:

SimpleFPS, iThinkUnity3D, SmartWorkersRTS

Lecture 6: Planning beyond STRIPS

Course overview

Page 3: Intro to AI STRIPS Planning & Applications in Video-games Lecture2-Part2

STRIPS planning3

STRIPS! So why do we like this formalism?

Page 4: Intro to AI STRIPS Planning & Applications in Video-games Lecture2-Part2

STRIPS planning4

STRIPS! So why do we like this formalism?

Simple formalism for representing planning problems

Easy to compute applicable actions

Check whether the list of preconditions is a subset of the

state description: PRECONDITIONS S

Easy to compute the successor states

Add the list of positive effects to the state description and

remove the list of negative effects:S’ = (S / NEGATIVE-EFFECTS) POSITIVE-EFFECTS

Easy to check if the goal is satisfied

Check whether the goal is a subset of the state description:

G S

Page 5: Intro to AI STRIPS Planning & Applications in Video-games Lecture2-Part2

STRIPS planning5

STRIPS! So why do we like this formalism?

It can already describe difficult and complex problems

(in more challenging domains than the example we saw)

…let’s see how we can solve this kind of problems

Page 6: Intro to AI STRIPS Planning & Applications in Video-games Lecture2-Part2

STRIPS planning: state-based search6

Finding a solution to the planning problem following

a state-based search

Init( On(Α,Table) On(Β,Table) … )

Goal( On(Α,Β) …)

Action( Move(b,x,y),

PRECONDITIONS: On(b,x) …

EFFECTS: On(b,y) … )

Action( MoveToTable(b,x),

PRECONDITIONS: On(b,x) …

EFFECTS: On(b,Table) …)

Page 7: Intro to AI STRIPS Planning & Applications in Video-games Lecture2-Part2

STRIPS planning: state-based search7

Finding a solution to the planning problem following

a state-based search

Init( where to start from )

Goal( when to stop searching )

Action( how to generate

the “graph” )

Progression planning: forward state-based search

Regression planning: backward state-based search

Page 8: Intro to AI STRIPS Planning & Applications in Video-games Lecture2-Part2

88

Start from the initial state

Check if the current state satisfies the

goal

Compute applicable actions to the

current state

Compute the successor states

Pick one of the successor states as the

current state

Repeat until a solution is found or the

state space is exhausted

Progression planning

Page 9: Intro to AI STRIPS Planning & Applications in Video-games Lecture2-Part2

9

Start from the initial state

Α Β C

On(Α,Table)On(Β,Table)On(C,Table)

Clear(Α)Clear(Β)Clear(C)

Progression planning

Page 10: Intro to AI STRIPS Planning & Applications in Video-games Lecture2-Part2

Progression planning10

Check if the current state satisfies the goal

No

Α Β C

On(Α,Β)On(Β,C)

On(Α,Table)On(Β,Table)On(C,Table)

Clear(Α)Clear(Β)Clear(C)

Page 11: Intro to AI STRIPS Planning & Applications in Video-games Lecture2-Part2

Progression planning11

Compute applicable actions to the current state

Action( Move(b,x,y),

PRECONDITIONS: On(b,x) Clear(b) Clear(y))

Action( MoveToTable(b,x),

PRECONDITIONS: On(b,x) Clear(b))

Α Β C

On(Α,Table)On(Β,Table)On(C,Table)

Clear(Α)Clear(Β)Clear(C)

Page 12: Intro to AI STRIPS Planning & Applications in Video-games Lecture2-Part2

Progression planning12

Compute applicable actions to the current state

Action( Move(b,x,y),

PRECONDITIONS: On(b,x) Clear(b) Clear(y))

Action( MoveToTable(b,x),

PRECONDITIONS: On(b,x) Clear(b))

Move(Β,Table,C)Preconditions:

On(Β,Table)

Clear(Β)

Clear(C)

Applicable action!

Α Β C

On(Α,Table)On(Β,Table)On(C,Table)

Clear(Α)Clear(Β)Clear(C)

Page 13: Intro to AI STRIPS Planning & Applications in Video-games Lecture2-Part2

Progression planning13

Compute applicable actions to the current state

Action( Move(b,x,y),

PRECONDITIONS: On(b,x) Clear(b) Clear(y))

Action( MoveToTable(b,x),

PRECONDITIONS: On(b,x) Clear(b))

Move(Α,Table,Β)

Move(Α,Table,C)

Move(Β,Table,Α)

Move(Β,Table,C)

Move(C,Table,Α)

Move(C,Table,Β)

All these are applicable actions!

Α Β C

On(Α,Table)On(Β,Table)On(C,Table)

Clear(Α)Clear(Β)Clear(C)

Page 14: Intro to AI STRIPS Planning & Applications in Video-games Lecture2-Part2

Progression planning14

Compute applicable actions to the current state

Action( Move(b,x,y),

PRECONDITIONS: On(b,x) Clear(b) Clear(y))

Action( MoveToTable(b,x),

PRECONDITIONS: On(b,x) Clear(b))

Move(Β,Table,Β)Preconditions:

On(Β,Table)

Clear(Β)

This is also an applicable action!

Α Β C

On(Α,Table)On(Β,Table)On(C,Table)

Clear(Α)Clear(Β)Clear(C)

Page 15: Intro to AI STRIPS Planning & Applications in Video-games Lecture2-Part2

Progression planning15

Compute applicable actions to the current state

Action( Move(b,x,y),

PRECONDITIONS: On(b,x) Clear(b) Clear(y))

Action( MoveToTable(b,x),

PRECONDITIONS: On(b,x) Clear(b))

MoveTT(Β,Table)Preconditions:

On(Β,Table)

Clear(Β)

This is also an applicable action!

Α Β C

On(Α,Table)On(Β,Table)On(C,Table)

Clear(Α)Clear(Β)Clear(C)

Page 16: Intro to AI STRIPS Planning & Applications in Video-games Lecture2-Part2

Progression planning16

Compute applicable actions to the current state

Action( Move(b,x,y),

PRECONDITIONS: On(b,x) Clear(b) Clear(y))

Action( MoveToTable(b,x),

PRECONDITIONS: On(b,x) Clear(b))

Move(Α,Table,Α)

Move(Β,Table,Β)

Move(C,Table,C)

MoveTT(Α,Table)

MoveTT(Β,Table)

MoveTT(C,Table)

All these are applicable also actions!

Α Β C

On(Α,Table)On(Β,Table)On(C,Table)

Clear(Α)Clear(Β)Clear(C)

Page 17: Intro to AI STRIPS Planning & Applications in Video-games Lecture2-Part2

Progression planning17

Compute the successor states

Action( Move(b,x,y),EFFECTS: On(b,y)

Clear(x)

On(b,x)

Clear(y) )

Move(Β,Table,C)Effects:

On(Β,C)

Clear(Table)

On(Β,Table)

Clear(C)

Α Β C

Α

Β

C

On(Α,Table)On(Β,Table)On(C,Table)

Clear(Α)Clear(Β)Clear(C)

Page 18: Intro to AI STRIPS Planning & Applications in Video-games Lecture2-Part2

Progression planning18

Compute the successor states

Α Β C

Α

Β

C

Α

Α Β

C

Α

ΒC Α

Β

C

Α

C

Β

Move(Α,Table,C)

Move(Α,Table,Β)

Move(C,Table,Β)

Move(Β,Table,C)

Move(Β,Table,Α)

Move(C,Table,Α)

Page 19: Intro to AI STRIPS Planning & Applications in Video-games Lecture2-Part2

Progression planning19

Pick one of the successor states as current..

Α Β C

Α

Β

C

Α

Α Β

C

Α

ΒC Α

Β

C

Α

C

Β

Page 20: Intro to AI STRIPS Planning & Applications in Video-games Lecture2-Part2

Progression planning20

..and repeat!

Α Β C

Α

Β

C

Α

Α Β

C

Α

ΒC Α

Β

C

Α

C

Β

Α

Β

C

Page 21: Intro to AI STRIPS Planning & Applications in Video-games Lecture2-Part2

Progression planning21

Pick one of the successor states as current

Α Β C

Α

Β

C

Α

Α Β

C

Α

ΒC Α

Β

C

Α

C

Β

Α

Β

C

Page 22: Intro to AI STRIPS Planning & Applications in Video-games Lecture2-Part2

Progression planning22

Is it guaranteed that progressive planning will find

a solution if one exists?

Page 23: Intro to AI STRIPS Planning & Applications in Video-games Lecture2-Part2

Progression planning23

Is it guaranteed that progressive planning will find

a solution if one exists?

Given that the state-space is finite (ground atoms, no

function symbols, finite number of constants)..

..Yes! As long as we visit each state only once..

Page 24: Intro to AI STRIPS Planning & Applications in Video-games Lecture2-Part2

Progression planning24

Pick one of the not-visited successor states as current

Α Β C

Α

Β

C

Α

Α Β

C

Α

ΒC Α

Β

C

Α

C

Β

Α

Β

C

Page 25: Intro to AI STRIPS Planning & Applications in Video-games Lecture2-Part2

Progression planning25

Is it guaranteed that progressive planning will find

a solution if one exists?

Given that the state-space is finite (ground atoms, no

function symbols, finite number of constants)..

..Yes! As long as we visit each state only once..

But it may have to explore the whole state-space

Page 26: Intro to AI STRIPS Planning & Applications in Video-games Lecture2-Part2

Progression planning26

Α Β C

Α

Β

C

Α

Β

C

Α

C

Β

Α

Α

Β

C

Α Β

C

Α

Β

C

Α

ΒC

26

Α

Β

C Α

Β

C

Α

C

Β

Α

C

Β

Page 27: Intro to AI STRIPS Planning & Applications in Video-games Lecture2-Part2

Progression planning27

Unlike this simple example, in many problems the state

space is actually huge.

Even this simple example becomes challenging if we

consider 100 boxes and 1000s of applicable actions

of the form Move(b,x,y) in each state.

Similar to search problems we can make use of

heuristics that help progression planning pick the most

promising states to investigate first.

Page 28: Intro to AI STRIPS Planning & Applications in Video-games Lecture2-Part2

28

A* search

Evaluation function f(s) = g(s) + h(s)

g(s): the number of actions needed to reach state s from

the initial state (accurate)

h(s): the number of actions needed to reach a goal state

from state s (estimated)

Use f(s) to order the successor states and pick the

most promising one.

Heuristics for progression planning

Page 29: Intro to AI STRIPS Planning & Applications in Video-games Lecture2-Part2

29

Consider a heuristic h(s) with the following behavior

Α Β C

Α

Β

C

Α

Α Β

C

Α

ΒC Α

Β

C

Α

C

Β

Move(Α,Table,C)

Move(Α,Table,Β)

Move(C,Table,Β)

Move(Β,Table,C)

Move(Β,Table,Α)

Move(C,Table,Α)

g(s)=1

g(s)=1

g(s)=1

g(s)=1

g(s)=1

g(s)=1

h(s)=2

h(s)=1

h(s)=2

h(s)=1

h(s)=2

h(s)=2

Heuristics for progression planning

Page 30: Intro to AI STRIPS Planning & Applications in Video-games Lecture2-Part2

30

So why is it different than the usual search problems? E.g., in grid-based problems we could define h(s) using a

“relaxed” distance metric such as Manhattan distance.

Heuristics for progression planning

Page 31: Intro to AI STRIPS Planning & Applications in Video-games Lecture2-Part2

31

So why is it different than the usual search problems? E.g., in grid-based problems we could define h(s) using a

“relaxed” distance metric such as Manhattan distance.

The action schemas provide valuable information that can be used to specify domain independent heuristic functions!

Moreover they provide a logical specification of

the problem that allows approaches for finding a

solution that are different than search

Heuristics for progression planning

Page 32: Intro to AI STRIPS Planning & Applications in Video-games Lecture2-Part2

32

Empty list of preconditions

h(s) = number of actions needed to achieve the goal if

we assume that all actions are always applicable

Empty list of negative effects

h(s) = number of actions needed to achieve the goal if

we disregard the negative effects of actions

Planning graphs

Simple example: h(s) = number of literals in the

goal that are missing from s

Heuristics for progression planning

Page 33: Intro to AI STRIPS Planning & Applications in Video-games Lecture2-Part2

3333

Start from the initial state

Check if the current state satisfies the

goal

Compute applicable actions to the

current state

Compute the successor states

Pick one the most promising of the

successor states as the current state

Repeat until a solution is found or the

state space is exhausted

Heuristics for progression planning

Page 34: Intro to AI STRIPS Planning & Applications in Video-games Lecture2-Part2

34

Compute the successor states

Α Β C

Α

Β

C

Α

Α Β

C

Α

ΒC Α

Β

C

Α

C

Β

Move(Α,Table,C)

Move(Α,Table,Β)

Move(C,Table,Β)

Move(Β,Table,C)

Move(Β,Table,Α)

Move(C,Table,Α)

g(s)=1

g(s)=1

g(s)=1

g(s)=1

g(s)=1

g(s)=1

h(s)=2

h(s)=1

h(s)=2

h(s)=1

h(s)=2

h(s)=2

Heuristics for progression planning

Page 35: Intro to AI STRIPS Planning & Applications in Video-games Lecture2-Part2

35

Compute the successor states

Α Β C

Α

Β

C

Α

Α

ΒC Α

Β

C

Α

C

Β

Move(Α,Table,C)

Move(Α,Table,Β)

Move(Β,Table,C)

Move(Β,Table,Α)

Move(C,Table,Α)

g(s)=1

g(s)=1

g(s)=1

g(s)=1

g(s)=1

h(s)=2

h(s)=1

h(s)=1

h(s)=2

h(s)=2Α Β

Cg(s)=1

h(s)=2

Move(C,Table,Β)

Heuristics for progression planning

Page 36: Intro to AI STRIPS Planning & Applications in Video-games Lecture2-Part2

36

Pick the most promising successor state wrt f(s)

Α Β C

Α

Β

C

Α

Α

ΒC Α

Β

C

Α

C

Β

Move(Α,Table,C)

Move(Α,Table,Β)

Move(Β,Table,C)

Move(Β,Table,Α)

Move(C,Table,Α)

g(s)=1

g(s)=1

g(s)=1

g(s)=1

g(s)=1

h(s)=2

h(s)=1

h(s)=1

h(s)=2

h(s)=2Α Β

Cg(s)=1

h(s)=2

Move(C,Table,Β)

Heuristics for progression planning

Page 37: Intro to AI STRIPS Planning & Applications in Video-games Lecture2-Part2

37

Compute the successor states

Α Β C

Α

Β

C

Α

Α

ΒC Α

Β

C

Α

C

Β

Move(Β,Table,C)

Move(Β,Table,Α)

Move(C,Table,Α)

g(s)=1 g(s)=1

g(s)=1

g(s)=1

h(s)=2 h(s)=1

h(s)=2

h(s)=2Α Β

Cg(s)=1

h(s)=2

Α

Β

C

Move(C,Table,Α)

g(s)=2

h(s)=1

Move(C,Table,Β)

Move(Α,Table,C)

Heuristics for progression planning

Page 38: Intro to AI STRIPS Planning & Applications in Video-games Lecture2-Part2

38

Compute the successor states

Α Β C

Α

Β

C

Α

Α

ΒC Α

Β

C

Α

C

Β

Move(Β,Table,C)

Move(Β,Table,Α)

Move(C,Table,Α)

g(s)=1 g(s)=1

g(s)=1

g(s)=1

h(s)=2 h(s)=1

h(s)=2

h(s)=2Α Β

Cg(s)=1

h(s)=2

Α

Β

C

g(s)=2

h(s)=1

Move(C,Table,Β)

Move(Α,Table,C)

Move(C,Table,Α)

Heuristics for progression planning

Page 39: Intro to AI STRIPS Planning & Applications in Video-games Lecture2-Part2

39

Pick the most promising successor state wrt f(s)

Α Β C

Α

Β

C

Α

Α

ΒC Α

Β

C

Α

C

Β

Move(Β,Table,C)

Move(Β,Table,Α)

Move(C,Table,Α)

g(s)=1 g(s)=1

g(s)=1

g(s)=1

h(s)=2 h(s)=1

h(s)=2

h(s)=2Α Β

Cg(s)=1

h(s)=2

Α

Β

C

g(s)=2

h(s)=1

Move(C,Table,Β)

Move(Α,Table,C)

Move(C,Table,Α)

Heuristics for progression planning

Page 40: Intro to AI STRIPS Planning & Applications in Video-games Lecture2-Part2

40

Compute the successor states

Α Β C

Α

Β

C

Α

Α

ΒC Α

Β

C

Α

C

Β

Move(Β,Table,Α)

Move(C,Table,Α)

g(s)=1

g(s)=1

g(s)=1

h(s)=2

h(s)=2

h(s)=2Α Β

Cg(s)=1

h(s)=2

Α

Β

C

g(s)=2

h(s)=1

Α

Β

C

g(s)=2

h(s)=0

Move(C,Table,Β)

Move(Α,Table,C)

Move(C,Table,Α)

Move(Α,Table,Β)

Heuristics for progression planning

Page 41: Intro to AI STRIPS Planning & Applications in Video-games Lecture2-Part2

41

Compute the successor states

Α Β C

Α

Β

C

Α

Α

ΒC Α

Β

C

Α

C

Β

Move(Β,Table,Α)

Move(C,Table,Α)

g(s)=1

g(s)=1

g(s)=1

h(s)=2

h(s)=2

h(s)=2Α Β

Cg(s)=1

h(s)=2

Α

Β

C

g(s)=2

h(s)=1

Α

Β

C

Move(Α,Table,Β)

g(s)=2

h(s)=0

Move(C,Table,Β)

Move(Α,Table,C)

Move(C,Table,Α)

Heuristics for progression planning

Page 42: Intro to AI STRIPS Planning & Applications in Video-games Lecture2-Part2

42

Pick the most promising successor state wrt f(s)

Α Β C

Α

Β

C

Α

Α

ΒC Α

Β

C

Α

C

Β

Move(Β,Table,Α)

Move(C,Table,Α)

g(s)=1

g(s)=1

g(s)=1

h(s)=2

h(s)=2

h(s)=2Α Β

Cg(s)=1

h(s)=2

Α

Β

C

g(s)=2

h(s)=1

Α

Β

C

Move(C,Table,Β)

Move(Α,Table,C)

Move(C,Table,Α)

Heuristics for progression planning

Page 43: Intro to AI STRIPS Planning & Applications in Video-games Lecture2-Part2

43

Start from the goal as current goal

Check if the initial state satisfies the

current goal

Compute the relevant and consistent

actions for the current goal

Compute the predecessor states

Pick one of the predecessor states as

the current goal

Repeat until a solution is found or the

state space is exhausted

Regression planning

Page 44: Intro to AI STRIPS Planning & Applications in Video-games Lecture2-Part2

Research in STRIPS planning44

Planning Domain Definition Language (PDDL)

Formal language for specifying planning problems

Formal syntax similar to a programming language

Includes STRIPS and ADL, and many more features

Provides the ground for performing a direct comparison

between planning techniques and evaluating against

classes of problems

Page 45: Intro to AI STRIPS Planning & Applications in Video-games Lecture2-Part2

Research in STRIPS planning45

Planning Domain Definition Language (PDDL)

International Planning Competition 1998 – today

SAT Plan

TL Plan

FF

BlackBox

SHOP2

TALPlanner

Planning problems in

PDDL, e.g., Blocks

world, Storage, Trucks,

Direct comparison between

planning techniques! E.g.,

evaluation of heuristics, …

Page 46: Intro to AI STRIPS Planning & Applications in Video-games Lecture2-Part2

Research in STRIPS planning46

Planning Domain Definition Language (PDDL)

We will see more of PDDL and off-the-shelve planners

in Lecture 3

Page 47: Intro to AI STRIPS Planning & Applications in Video-games Lecture2-Part2

47

Lecture 1: Game-inspired competitions for AI research,

AI decision making for non-player characters in games

Lecture 2: STRIPS planning, state-space search

Lecture 3: Planning Domain Definition Language (PDDL),

using an award winning planner to solve Sokoban

Lecture 4: Planning graphs, domain independent

heuristics for STRIPS planning

Lecture 5: Employing STRIPS planning in games:

SimpleFPS, iThinkUnity3D, SmartWorkersRTS

Lecture 6: Planning beyond STRIPS

Next lecture

Page 48: Intro to AI STRIPS Planning & Applications in Video-games Lecture2-Part2

Bibliography48

Material

Artificial Intelligence: A Modern Approach 2nd Ed. Stuart Russell,

Peter Norvig. Prentice Hall, 2003 Section 11.2

References

PDDL - The Planning Domain Definition Language. Drew

McDermott, Malik Ghallab, Adele Howe, Craig Knoblock, Ashwin

Ram, Manuela Veloso, Daniel Weld, David Wilkins. Technical

report, Yale Center for Computational Vision and Control, TR-98-

003, 1998.