intro to ai strips planning & applications in video-games lecture3-part1
DESCRIPTION
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-LaSapienzaTRANSCRIPT
![Page 1: Intro to AI STRIPS Planning & Applications in Video-games Lecture3-Part1](https://reader033.vdocument.in/reader033/viewer/2022052301/558cc875d8b42a0c7c8b471c/html5/thumbnails/1.jpg)
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 Lecture3-Part1](https://reader033.vdocument.in/reader033/viewer/2022052301/558cc875d8b42a0c7c8b471c/html5/thumbnails/2.jpg)
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 Lecture3-Part1](https://reader033.vdocument.in/reader033/viewer/2022052301/558cc875d8b42a0c7c8b471c/html5/thumbnails/3.jpg)
3
Given:
Initial state
STRIPS planning
![Page 4: Intro to AI STRIPS Planning & Applications in Video-games Lecture3-Part1](https://reader033.vdocument.in/reader033/viewer/2022052301/558cc875d8b42a0c7c8b471c/html5/thumbnails/4.jpg)
4
Given:
Initial state
Goal
STRIPS planning
![Page 5: Intro to AI STRIPS Planning & Applications in Video-games Lecture3-Part1](https://reader033.vdocument.in/reader033/viewer/2022052301/558cc875d8b42a0c7c8b471c/html5/thumbnails/5.jpg)
5
Given:
Initial state
Goal
Available actions
STRIPS planning
![Page 6: Intro to AI STRIPS Planning & Applications in Video-games Lecture3-Part1](https://reader033.vdocument.in/reader033/viewer/2022052301/558cc875d8b42a0c7c8b471c/html5/thumbnails/6.jpg)
6
Given:
Initial state
Goal
Available actions
Find:
A sequence of actions that achieves the goal
E.g.: [Left, Down, Left, Up, …]
STRIPS planning
![Page 7: Intro to AI STRIPS Planning & Applications in Video-games Lecture3-Part1](https://reader033.vdocument.in/reader033/viewer/2022052301/558cc875d8b42a0c7c8b471c/html5/thumbnails/7.jpg)
Planning Domain Description Language7
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 8: Intro to AI STRIPS Planning & Applications in Video-games Lecture3-Part1](https://reader033.vdocument.in/reader033/viewer/2022052301/558cc875d8b42a0c7c8b471c/html5/thumbnails/8.jpg)
Planning Domain Description Language8
Blocks world domain
Initial state: s0
Goal: g
Available actions: moving a block
from the table to the top of another block
from the top of another block to the table
from the top of one block to the top of another block
Α Β C
Α
Β
C
s0 g
![Page 9: Intro to AI STRIPS Planning & Applications in Video-games Lecture3-Part1](https://reader033.vdocument.in/reader033/viewer/2022052301/558cc875d8b42a0c7c8b471c/html5/thumbnails/9.jpg)
Planning Domain Description Language9
Init( On(Α,Table) On(Β,Table) On(C,Table)
Clear(Α) Clear(Β) Clear(C) )
Goal( On(Α,Β) On(Β,C) )
Action( Move(b,x,y),PRECONDITIONS: On(b,x) Clear(b) Clear(y)
EFFECTS: On(b,y) Clear(x) On(b,x)
Clear(y) )
Action( MoveToTable(b,x),PRECONDITIONS: On(b,x) Clear(b)
EFFECTS: On(b,Table) Clear(x) On(b,x) )
![Page 10: Intro to AI STRIPS Planning & Applications in Video-games Lecture3-Part1](https://reader033.vdocument.in/reader033/viewer/2022052301/558cc875d8b42a0c7c8b471c/html5/thumbnails/10.jpg)
Planning Domain Description Language10
Init( On(Α,Table) On(Β,Table) On(C,Table)
Clear(Α) Clear(Β) Clear(C) )
Goal( On(Α,Β) On(Β,C) )
Action( Move(b,x,y),PRECONDITIONS: On(b,x) Clear(b) Clear(y)
EFFECTS: On(b,y) Clear(x) On(b,x)
Clear(y) )
Action( MoveToTable(b,x),PRECONDITIONS: On(b,x) Clear(b)
EFFECTS: On(b,Table) Clear(x) On(b,x) )
(:init …)
(:goal …)
(:action …)
(:action …)
![Page 11: Intro to AI STRIPS Planning & Applications in Video-games Lecture3-Part1](https://reader033.vdocument.in/reader033/viewer/2022052301/558cc875d8b42a0c7c8b471c/html5/thumbnails/11.jpg)
Planning Domain Description Language11
Init( On(Α,Table) On(Β,Table) On(C,Table)
Clear(Α) Clear(Β) Clear(C) )
Goal( On(Α,Β) On(Β,C) )
Action( Move(b,x,y),PRECONDITIONS: On(b,x) Clear(b) Clear(y)
EFFECTS: On(b,y) Clear(x) On(b,x)
Clear(y) )
Action( MoveToTable(b,x),PRECONDITIONS: On(b,x) Clear(b)
EFFECTS: On(b,Table) Clear(x) On(b,x) )
(:init …)
(:goal …)
(:action …)
(:action …)
(:objects …)
(:predicates …)
![Page 12: Intro to AI STRIPS Planning & Applications in Video-games Lecture3-Part1](https://reader033.vdocument.in/reader033/viewer/2022052301/558cc875d8b42a0c7c8b471c/html5/thumbnails/12.jpg)
Planning Domain Description Language12
(:init …)
(:goal …)
(:action …)
(:action …)
(:objects …)
(:predicates …)
DOMAIN
PROBLEM
![Page 13: Intro to AI STRIPS Planning & Applications in Video-games Lecture3-Part1](https://reader033.vdocument.in/reader033/viewer/2022052301/558cc875d8b42a0c7c8b471c/html5/thumbnails/13.jpg)
Planning Domain Description Language13
(:init …)
(:goal …)
(:action …)
(:action …)
(:objects …)
(:predicates …)
DOMAIN
PROBLEM
![Page 14: Intro to AI STRIPS Planning & Applications in Video-games Lecture3-Part1](https://reader033.vdocument.in/reader033/viewer/2022052301/558cc875d8b42a0c7c8b471c/html5/thumbnails/14.jpg)
Planning Domain Description Language14
(:init …)
(:goal …)
(:action …)
(:action …)
(:objects …)
(:predicates …)
DOMAIN
PROBLEM
![Page 15: Intro to AI STRIPS Planning & Applications in Video-games Lecture3-Part1](https://reader033.vdocument.in/reader033/viewer/2022052301/558cc875d8b42a0c7c8b471c/html5/thumbnails/15.jpg)
Planning Domain Description Language15
(:predicates …)
(:action …)
(:action …)
(:objects …)
(:init …)
(:goal …)
DOMAIN
PROBLEM
![Page 16: Intro to AI STRIPS Planning & Applications in Video-games Lecture3-Part1](https://reader033.vdocument.in/reader033/viewer/2022052301/558cc875d8b42a0c7c8b471c/html5/thumbnails/16.jpg)
Planning Domain Description Language16
On(A,B) (on a b)
On(A,B) (not (on a b))
On(A,B) On(B,C) (and (on a b) (on b c))
On(x,y) (on ?x ?y)
![Page 17: Intro to AI STRIPS Planning & Applications in Video-games Lecture3-Part1](https://reader033.vdocument.in/reader033/viewer/2022052301/558cc875d8b42a0c7c8b471c/html5/thumbnails/17.jpg)
The blocks world example in PDDL17
Blocks world domain
Available predicates (:predicates …)
Available actions (:action …)
![Page 18: Intro to AI STRIPS Planning & Applications in Video-games Lecture3-Part1](https://reader033.vdocument.in/reader033/viewer/2022052301/558cc875d8b42a0c7c8b471c/html5/thumbnails/18.jpg)
The blocks world example in PDDL18
Blocks world domain
Available predicates (:predicates
(on ?x ?y) (clear ?x)
)
![Page 19: Intro to AI STRIPS Planning & Applications in Video-games Lecture3-Part1](https://reader033.vdocument.in/reader033/viewer/2022052301/558cc875d8b42a0c7c8b471c/html5/thumbnails/19.jpg)
The blocks world example in PDDL19
Blocks world domain
Available action (:action move
:parameters (?b ?x ?y)
:precondition (and
(on ?b ?x) (clear ?b)
(clear ?y))
:effect (…)
)
![Page 20: Intro to AI STRIPS Planning & Applications in Video-games Lecture3-Part1](https://reader033.vdocument.in/reader033/viewer/2022052301/558cc875d8b42a0c7c8b471c/html5/thumbnails/20.jpg)
The blocks world example in PDDL20
Blocks world domain
Available action (:action move-to-table
:parameters (?b ?x)
:precondition (…)
:effect (…)
)
![Page 21: Intro to AI STRIPS Planning & Applications in Video-games Lecture3-Part1](https://reader033.vdocument.in/reader033/viewer/2022052301/558cc875d8b42a0c7c8b471c/html5/thumbnails/21.jpg)
The blocks world example in PDDL21
Blocks world problem
Available objects (:objects …)
Initial state (:init …)
Goal (:goal …)
![Page 22: Intro to AI STRIPS Planning & Applications in Video-games Lecture3-Part1](https://reader033.vdocument.in/reader033/viewer/2022052301/558cc875d8b42a0c7c8b471c/html5/thumbnails/22.jpg)
The blocks world example in PDDL22
Blocks world domain
Available objects (:objects
a b c table
)
![Page 23: Intro to AI STRIPS Planning & Applications in Video-games Lecture3-Part1](https://reader033.vdocument.in/reader033/viewer/2022052301/558cc875d8b42a0c7c8b471c/html5/thumbnails/23.jpg)
The blocks world example in PDDL23
Blocks world domain
Initial state (:init
(on a table) (clear a)
(on b table) (clear b)
(on c table) (clear c)
)
Α Β Γ
![Page 24: Intro to AI STRIPS Planning & Applications in Video-games Lecture3-Part1](https://reader033.vdocument.in/reader033/viewer/2022052301/558cc875d8b42a0c7c8b471c/html5/thumbnails/24.jpg)
The blocks world example in PDDL24
Blocks world domain
Goal (:goal
(and (on a b) (on b c) )
)Α
Β
Γ
![Page 25: Intro to AI STRIPS Planning & Applications in Video-games Lecture3-Part1](https://reader033.vdocument.in/reader033/viewer/2022052301/558cc875d8b42a0c7c8b471c/html5/thumbnails/25.jpg)
The blocks world example in PDDL25
blocks-domain.txt:(define (domain gripper)
(:requirements :strips)
(:predicates (on ?x ?y) (clear ?x))
(:action move
:parameters (?b ?x ?y)
:precondition (and (on ?b ?x) (clear ?b) (clear ?y))
:effect (and (not (on ?b ?x))
(not (clear ?y))
(on ?b ?y)
(clear ?x)))
…
blocks-problem1.txt:(define (problem gripper1)
(:domain gripper)
(:objects a b c table)
(:init
(on a table) (on b table) (on c table)
(clear a) (clear b) (clear c)
)
(:goal (and (on a b) (on b c)))
)
![Page 26: Intro to AI STRIPS Planning & Applications in Video-games Lecture3-Part1](https://reader033.vdocument.in/reader033/viewer/2022052301/558cc875d8b42a0c7c8b471c/html5/thumbnails/26.jpg)
Using PDDL planners26
Planning problems in
PDDL, e.g., Blocks
world, Storage, Trucks,
…
Direct comparison between
planning techniques! E.g.,
evaluation of heuristics, …
Planning Domain Definition Language (PDDL)
International Planning Competition 1998 – today
SAT Plan
TL Plan
FF
BlackBox
SHOP2
TALPlanner
…
![Page 27: Intro to AI STRIPS Planning & Applications in Video-games Lecture3-Part1](https://reader033.vdocument.in/reader033/viewer/2022052301/558cc875d8b42a0c7c8b471c/html5/thumbnails/27.jpg)
Using PDDL planners: Blocks world27
blackbox –o blocks-domain.txt –f blocks-problem1.txt
----------------------------------------------------
Begin plan
1 (move b table c)
2 (move a table b)
End plan
----------------------------------------------------
Α Β C
Α
Β
C
![Page 28: Intro to AI STRIPS Planning & Applications in Video-games Lecture3-Part1](https://reader033.vdocument.in/reader033/viewer/2022052301/558cc875d8b42a0c7c8b471c/html5/thumbnails/28.jpg)
Using PDDL planners: Blocks world28
blackbox –o blocks-domain.txt –f blocks-problem2.txt----------------------------------------------------
Begin plan
1 (move e b d)
2 (move b table e)
3 (move g f table)
4 (move f c g)
5 (move b e c)
6 (move e d f)
7 (move d a e)
8 (move b c a)
9 (move c table d)
10 (move b a c)
11 (move a table b)
End plan
----------------------------------------------------
Α Β C
Α
Β
C
D E F
G
D
F
E
G
![Page 29: Intro to AI STRIPS Planning & Applications in Video-games Lecture3-Part1](https://reader033.vdocument.in/reader033/viewer/2022052301/558cc875d8b42a0c7c8b471c/html5/thumbnails/29.jpg)
Using PDDL planners29
We can use blackbox (or any other off-the-self PDDL
planner) for any problem we can write in PDDL!
![Page 30: Intro to AI STRIPS Planning & Applications in Video-games Lecture3-Part1](https://reader033.vdocument.in/reader033/viewer/2022052301/558cc875d8b42a0c7c8b471c/html5/thumbnails/30.jpg)
Using PDDL planners: Sokoban30
We can use blackbox (or any other off-the-self PDDL
planner) for any problem we can write in PDDL!
Let’s do this for Sokoban
![Page 31: Intro to AI STRIPS Planning & Applications in Video-games Lecture3-Part1](https://reader033.vdocument.in/reader033/viewer/2022052301/558cc875d8b42a0c7c8b471c/html5/thumbnails/31.jpg)
Using PDDL planners: Sokoban31
Available predicates
Available actions
Available objects
Initial state
Goal
![Page 32: Intro to AI STRIPS Planning & Applications in Video-games Lecture3-Part1](https://reader033.vdocument.in/reader033/viewer/2022052301/558cc875d8b42a0c7c8b471c/html5/thumbnails/32.jpg)
Using PDDL planners: Sokoban32
Available predicates
![Page 33: Intro to AI STRIPS Planning & Applications in Video-games Lecture3-Part1](https://reader033.vdocument.in/reader033/viewer/2022052301/558cc875d8b42a0c7c8b471c/html5/thumbnails/33.jpg)
Using PDDL planners: Sokoban33
Available predicates
(robot-at ?loc)
(object-at ?b ?loc)
![Page 34: Intro to AI STRIPS Planning & Applications in Video-games Lecture3-Part1](https://reader033.vdocument.in/reader033/viewer/2022052301/558cc875d8b42a0c7c8b471c/html5/thumbnails/34.jpg)
Using PDDL planners: Sokoban34
Available predicates
(robot-at ?loc)
(object-at ?b ?loc)
Available objects
c1-1, c1-2, c2-1, …
box1, box2c1-1
c1-2
c1-3
c2-1
c2-2
c2-3
c3-2
c3-3
c4-2
c4-3
c4-4
c5-2
c5-3
c5-4
c6-3
c6-4
![Page 35: Intro to AI STRIPS Planning & Applications in Video-games Lecture3-Part1](https://reader033.vdocument.in/reader033/viewer/2022052301/558cc875d8b42a0c7c8b471c/html5/thumbnails/35.jpg)
Using PDDL planners: Sokoban35
Initial state
(robot-at c5-4)
(object-at box1 c3-3)
(object-at box2 c4-3)
c1-1
c1-2
c1-3
c2-1
c2-2
c2-3
c3-2 c4-2
c4-4
c5-2
c5-3 c6-3
c6-4
![Page 36: Intro to AI STRIPS Planning & Applications in Video-games Lecture3-Part1](https://reader033.vdocument.in/reader033/viewer/2022052301/558cc875d8b42a0c7c8b471c/html5/thumbnails/36.jpg)
Using PDDL planners: Sokoban36
Available actions
move(?from ?to ?dir)
:precondition (
)
![Page 37: Intro to AI STRIPS Planning & Applications in Video-games Lecture3-Part1](https://reader033.vdocument.in/reader033/viewer/2022052301/558cc875d8b42a0c7c8b471c/html5/thumbnails/37.jpg)
Using PDDL planners: Sokoban37
Available actions
move(?from ?to ?dir)
:precondition (and
(robot-at ?from)
(adjacent ?from ?to ?dir)
(empty ?to)
)
![Page 38: Intro to AI STRIPS Planning & Applications in Video-games Lecture3-Part1](https://reader033.vdocument.in/reader033/viewer/2022052301/558cc875d8b42a0c7c8b471c/html5/thumbnails/38.jpg)
Using PDDL planners: Sokoban38
Available actions
move(?from ?to ?dir)
:effect (and
)
![Page 39: Intro to AI STRIPS Planning & Applications in Video-games Lecture3-Part1](https://reader033.vdocument.in/reader033/viewer/2022052301/558cc875d8b42a0c7c8b471c/html5/thumbnails/39.jpg)
Using PDDL planners: Sokoban39
Available actions
move(?from ?to ?dir)
:effect (and
(empty ?from)
(robot-at ?to)
(not (empty ?to))
(not (robot-at ?from))
)
![Page 40: Intro to AI STRIPS Planning & Applications in Video-games Lecture3-Part1](https://reader033.vdocument.in/reader033/viewer/2022052301/558cc875d8b42a0c7c8b471c/html5/thumbnails/40.jpg)
Using PDDL planners: Sokoban40
Available predicates
(robot-at ?loc)
(object-at ?b ?loc)
(adjacent ?from ?to ?dir)
(empty ?to)
![Page 41: Intro to AI STRIPS Planning & Applications in Video-games Lecture3-Part1](https://reader033.vdocument.in/reader033/viewer/2022052301/558cc875d8b42a0c7c8b471c/html5/thumbnails/41.jpg)
Using PDDL planners: Sokoban41
Initial state
(robot-at c5-4)
(object-at box1 c3-3)
(object-at box2 c4-3)
(empty c1-1)
(empty c2-1)
(empty c1-2)
(empty c2-2)
…
c1-2
c2-1
c2-2
c2-3
c3-2
![Page 42: Intro to AI STRIPS Planning & Applications in Video-games Lecture3-Part1](https://reader033.vdocument.in/reader033/viewer/2022052301/558cc875d8b42a0c7c8b471c/html5/thumbnails/42.jpg)
Using PDDL planners: Sokoban42
Initial state
(robot-at c5-4)
(object-at box1 c3-3)
(object-at box2 c4-3)
(adjacent c2-2 c3-2 right)
(adjacent c2-2 c1-2 left)
(adjacent c2-2 c2-3 up)
(adjacent c2-2 c2-1 down)
…
c1-2
c2-1
c2-2
c2-3
c3-2
![Page 43: Intro to AI STRIPS Planning & Applications in Video-games Lecture3-Part1](https://reader033.vdocument.in/reader033/viewer/2022052301/558cc875d8b42a0c7c8b471c/html5/thumbnails/43.jpg)
Using PDDL planners: Sokoban43
Available actions
push(?rloc ?bloc ?floc ?dir ?b)
![Page 44: Intro to AI STRIPS Planning & Applications in Video-games Lecture3-Part1](https://reader033.vdocument.in/reader033/viewer/2022052301/558cc875d8b42a0c7c8b471c/html5/thumbnails/44.jpg)
Using PDDL planners: Sokoban44
Available actions
push(?rloc ?bloc ?floc ?dir ?b)
:precondition (and
(robot-at ?rloc)
(object-at ?b ?bloc)
(adjacent ?rloc ?bloc ?dir)
(adjacent ?bloc ?floc ?dir)
(empty ?floc)
)
![Page 45: Intro to AI STRIPS Planning & Applications in Video-games Lecture3-Part1](https://reader033.vdocument.in/reader033/viewer/2022052301/558cc875d8b42a0c7c8b471c/html5/thumbnails/45.jpg)
Using PDDL planners: Sokoban45
Available actions
push(?rloc ?bloc ?floc ?dir ?b)
:effect (and
(robot-at ?bloc)
(object-at ?b ?floc)
(empty ?rloc)
(not (robot-at ?rloc))
(not (object-at ?b ?bloc))
(not (empty ?floc))
)
![Page 46: Intro to AI STRIPS Planning & Applications in Video-games Lecture3-Part1](https://reader033.vdocument.in/reader033/viewer/2022052301/558cc875d8b42a0c7c8b471c/html5/thumbnails/46.jpg)
Using PDDL planners: Sokoban46
Goal
(object-at box1 c4-3)
(object-at box2 c5-3)
c1-1
c1-2
c1-3
c2-1
c2-2
c2-3
c3-2 c4-2
c4-4
c5-2
c6-3
c6-4
![Page 47: Intro to AI STRIPS Planning & Applications in Video-games Lecture3-Part1](https://reader033.vdocument.in/reader033/viewer/2022052301/558cc875d8b42a0c7c8b471c/html5/thumbnails/47.jpg)
Using PDDL planners: Sokoban47
blackbox –o sokoban-domain.txt –f sokoban-problem.txt
----------------------------------------------------
Begin plan
1 (push c4-4 c4-3 c4-2 down box1)
2 (push c4-3 c3-3 c2-3 left box2)
3 (move c3-3 c3-2 down)
4 (move c3-2 c2-2 left)
5 (move c2-2 c1-2 left)
…
27 (move c2-2 c1-2 left)
28 (move c1-2 c1-3 up)
29 (push c1-3 c2-3 c3-3 right box1)
30 (push c2-3 c3-3 c4-3 right box1)
End plan
----------------------------------------------------
![Page 48: Intro to AI STRIPS Planning & Applications in Video-games Lecture3-Part1](https://reader033.vdocument.in/reader033/viewer/2022052301/558cc875d8b42a0c7c8b471c/html5/thumbnails/48.jpg)
Using PDDL planners: SimpleGame48
SimpleGame domain
turn(?fromd ?tod)
move(?froml ?tol
?dir)
pickup(?o ?l)
stab(?l ?knife)
shoot(?locn ?locp
?dir ?gun )
![Page 49: Intro to AI STRIPS Planning & Applications in Video-games Lecture3-Part1](https://reader033.vdocument.in/reader033/viewer/2022052301/558cc875d8b42a0c7c8b471c/html5/thumbnails/49.jpg)
Building your own PDDL planner49
Pyperplan
Lightweight STRIPS planner written in Python. Developed during the planning course at Albert-Ludwigs-Universität Freiburg 2010/2011, GNU General Public License 3
https://bitbucket.org/malte/pyperplan
Source code of academic planners
BlackBox: http://www.cs.rochester.edu/u/kautz/satplan/blackbox/
FastForward: http://www.loria.fr/~hoffmanj/ff.html
FastDownward: http://www.fast-downward.org/
ANTLR Parser Generator
http://www.antlr.org/
http://www.antlr.org/grammar/1222962012944/Pddl.g
![Page 50: Intro to AI STRIPS Planning & Applications in Video-games Lecture3-Part1](https://reader033.vdocument.in/reader033/viewer/2022052301/558cc875d8b42a0c7c8b471c/html5/thumbnails/50.jpg)
Building your own PDDL planner50
Quick overview of the provided PROLOG code
Good for quick prototyping ;-)
![Page 51: Intro to AI STRIPS Planning & Applications in Video-games Lecture3-Part1](https://reader033.vdocument.in/reader033/viewer/2022052301/558cc875d8b42a0c7c8b471c/html5/thumbnails/51.jpg)
Building your own PDDL planner51
Quick overview of the provided PROLOG code
Works with SWI Prolog 6.x (tested with 6.0.2)
Predicates provided
parsePDDL(+DomainFile, +ProblemFile)
get_init(-InitialState)
get_goal(-Goal)
satisfies_goal(+State)
progress(+State, -Action, -NextState)
h(+State, -Value)
{dfs,astar}planner(+DomainFile, +ProblemFile)
![Page 52: Intro to AI STRIPS Planning & Applications in Video-games Lecture3-Part1](https://reader033.vdocument.in/reader033/viewer/2022052301/558cc875d8b42a0c7c8b471c/html5/thumbnails/52.jpg)
Planning Domain Description Language52
Planning Domain Definition Language (PDDL)
International Planning Competition 1998 – today
SAT Plan
TL Plan
FF
BlackBox
SHOP2
TALPlanner
…
Sokoban
Direct comparison between
planning techniques! E.g.,
evaluation of heuristics, …
![Page 53: Intro to AI STRIPS Planning & Applications in Video-games Lecture3-Part1](https://reader033.vdocument.in/reader033/viewer/2022052301/558cc875d8b42a0c7c8b471c/html5/thumbnails/53.jpg)
Using PDDL planners53
FastDownward [Helmert 2006]
Introduced a new type of heuristic that is not based on
an empty list of negative actions
Efficient implementation of all notable forward search
methods and heuristics (including the more recent ones)
Requires a number of preprocessing steps that
transforms the STRIPS planning problem…
![Page 54: Intro to AI STRIPS Planning & Applications in Video-games Lecture3-Part1](https://reader033.vdocument.in/reader033/viewer/2022052301/558cc875d8b42a0c7c8b471c/html5/thumbnails/54.jpg)
Using PDDL planners54
FastDownward [Helmert 2006]
Introduced a new type of heuristic that is not based on
an empty list of negative actions
Efficient implementation of all notable forward search
methods and heuristics (including the more recent ones)
Requires a number of preprocessing steps that
transforms the STRIPS planning problem…
Can be used as a framework to evaluate forward
search planning methods
![Page 55: Intro to AI STRIPS Planning & Applications in Video-games Lecture3-Part1](https://reader033.vdocument.in/reader033/viewer/2022052301/558cc875d8b42a0c7c8b471c/html5/thumbnails/55.jpg)
Using PDDL planners55
FastDownward [Helmert 2006]
translate/translate.py sokoban-domain.txt \
sokoban.problem.txt
preprocess/preprocess < output.sas
search/downward --search SearchConfiguration < output
http://www.fast-downward.org
![Page 56: Intro to AI STRIPS Planning & Applications in Video-games Lecture3-Part1](https://reader033.vdocument.in/reader033/viewer/2022052301/558cc875d8b42a0c7c8b471c/html5/thumbnails/56.jpg)
Using PDDL planners: Sokoban56
search/downward --search "astar(blind())" <output
![Page 57: Intro to AI STRIPS Planning & Applications in Video-games Lecture3-Part1](https://reader033.vdocument.in/reader033/viewer/2022052301/558cc875d8b42a0c7c8b471c/html5/thumbnails/57.jpg)
Using PDDL planners: Sokoban57
search/downward --search "astar(goalcount())"
![Page 58: Intro to AI STRIPS Planning & Applications in Video-games Lecture3-Part1](https://reader033.vdocument.in/reader033/viewer/2022052301/558cc875d8b42a0c7c8b471c/html5/thumbnails/58.jpg)
Using PDDL planners: Sokoban58
search/downward --search "astar(hmax())" <output
![Page 59: Intro to AI STRIPS Planning & Applications in Video-games Lecture3-Part1](https://reader033.vdocument.in/reader033/viewer/2022052301/558cc875d8b42a0c7c8b471c/html5/thumbnails/59.jpg)
Using PDDL planners: Sokoban59
search/downward --search "astar(add())" <output
![Page 60: Intro to AI STRIPS Planning & Applications in Video-games Lecture3-Part1](https://reader033.vdocument.in/reader033/viewer/2022052301/558cc875d8b42a0c7c8b471c/html5/thumbnails/60.jpg)
Using PDDL planners: Sokoban60
search/downward --search "lazy_greedy(ff())" <output
![Page 61: Intro to AI STRIPS Planning & Applications in Video-games Lecture3-Part1](https://reader033.vdocument.in/reader033/viewer/2022052301/558cc875d8b42a0c7c8b471c/html5/thumbnails/61.jpg)
Using PDDL planners: Sokoban61
Notice that the planner does not know anything
about the planning problem we are solving
The heuristics we tried are domain independent
goal count
hmax
hadd
FF
We will see how each one works in Lecture 4 (after
we first go over planning graphs that are needed)
![Page 62: Intro to AI STRIPS Planning & Applications in Video-games Lecture3-Part1](https://reader033.vdocument.in/reader033/viewer/2022052301/558cc875d8b42a0c7c8b471c/html5/thumbnails/62.jpg)
62
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 63: Intro to AI STRIPS Planning & Applications in Video-games Lecture3-Part1](https://reader033.vdocument.in/reader033/viewer/2022052301/558cc875d8b42a0c7c8b471c/html5/thumbnails/63.jpg)
Bibliography63
Material
Artificial Intelligence: A Modern Approach 2nd Ed. Stuart Russell, Peter
Norvig. Prentice Hall, 2003 Section 11.4
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.
Unifying SAT-Based and Graph-Based Planning. Henry Kautz, Bart
Selman. In Proceedings of the International Joint Conference on
Artificial Intelligence (IJCAI), 1999
The Fast Downward Planning System. Malte Helmert. Artificial
Intelligence Research (JAIR), Vol. 26, 2006