200 likes | 325 Vues
This document explores the concept and applications of planning systems, particularly in software engineering. It defines planning systems as action-based frameworks that create sequences of parameterized actions to transition from initial to goal states. Key aspects include the Agent Planning Package (APP), which aids in creating intelligent agents and is domain-independent. The work also discusses planning languages like PDDL and highlights the modeling and model-checking capabilities that allow for verification of planning actions in software systems. Additionally, it presents practical examples and outlines how APP automatically generates plans, enhancing error detection and validation processes.
E N D
Planning systems and its’ applications in software engineering Saša Tošić,M. Ivanović Risan, 2007
Contents • What are planning systems • Agent planning package • Planning systems and SE • Example
What are planning systems? • Action-based systems that generates plans • Plan is a sequence of parameterized actions which transforms initial states into a goal state • Planning formalisms and languages: Strips, ADL, PDDL … • PDDL (planning domain definition language): standard planning language
Example • Planning sequence • Plan: A(x, y), B(x, y), C(x, y) A(x, y) B(x,y) C(x, y) Goal State Initial State Temporary states
What do we need? • Planning instance • Planning Domain • Actions • Predicates • Functions • Types • Constants • Planning problem • Initial state of a system • Goal (set of tasks to be achieved)
Actions in planning systems • Actions in planning systems • Name • Parameters • Preconditions • Effects • Duration (default 1) • Cost, probability, …
APP – Agent planning package • Developed at University in Novi Sad • Helps to create intelligent agents • Domain independent planning system for PDDL2.1 • Written in Java in form of a Java package • Enables plan creation and execution
APP – Agent planning package • APP can handle several planning instances • Generated plans are part of a planning instance
APP – Agent planning package • Modules • Data manipulation • Plan searching • Plan execution and monitoring • Plan validation and verification
APP – Agent planning package • Types of a plan • SingleAction • Serial plan • Parallel plan • Alternative plan • Multiple plans • Plans can be mixed
Modeling and model checking • We can create a model of our software and check it • Modeling • Initial state must be modeled (using objects, constants, predicates, functions…) • One action in planning domain is one or more actions in our software
Model checking • Planning systems can check if actions are modeled well • Model checking • How we can do something in our software? • What is the plan for that goal? • How we can detect errors? • No plan (it is not possible to do it) • Invalid plan
Example • Planning sequence • Plan: A(x, y), B(x, y), C(x, y) A(x, y) B(x,y) C(x, y) Goal State Initial State Temporary states
Example • (action A :parameters (?x ?y – objects) :precondition (and (point ?x)) :effects (connected ?x ?y)) • (action B :parameters (?x ?y – objects) :precondition (selected ?x ?y) :effects (connected ?x ?y))
Example • (action C :parameters (?x ?y – objects) :precondition (connected ?x ?y) :effects (doneC)) • Initial state: (point x) (point y) • Goal: (doneC)
Example • Plan generated by APP: no plan is found • Reason: (action A :parameters (?x ?y – objects) :precondition (and (point ?x) (point ?y)) :effects (connected ?x ?y))
Example • Plan generated by APP: A(x, y), C(x, y) • Reason: (action A :parameters (?x ?y – objects) :precondition (and (point ?x)(point ?y)) :effects (selected ?x ?y))
Example • Plan generated by APP: • A(x, y), B(x, y), C(x, y) • APP can automatically create plans for large number of goals
Conclusion • Powerful tool for model checking • Detects different kinds of errors • Simulation of plan execution can help to detect errors
The End Thank you for your attention