Software tools for Classical Planning Artificial Intelligence Qatar Fall 2018 Sep 20, 2018

Size: px
Start display at page:

Download "Software tools for Classical Planning Artificial Intelligence Qatar Fall 2018 Sep 20, 2018"

Transcription

1 Sep 20, 2018 Contact: Eduardo Feo-Flushing <efeoflus at andrew.cmu.edu>

2

3 CONTENTS 1 Quick Start Planning Problem Representation The Planning Graph Implementing GraphPlan Using A* to find plans Validate a plan API Planning problem representation Planning Graph representation and solution Search Indices and tables 13 Python Module Index 15 Index 17 i

4 ii

5 CHAPTER ONE QUICK START We introduce the most important features of the library. You can simply browse through it and take a look at the examples provided. 1.1 Planning Problem Representation A planning problem is encoded using PDDL in two separate files: the domain, and the problem instance. A planning problem is represented using the class task.task. This class and its dependencies are defined in the task module Parsing PDDL files A task object can be created from the PDDL files using the function tools.parse_pddl() which is provided to you task = parse_pddl(domain, problem) logging.info('parsed planning problem: {0}'.format(task.name)) print(task) Creating a Relaxed Version of the Problem In order to modify a task, you should first copy the task. In this way, the original problem description remains intact. task_relaxed = task.copy() For example, let s remove the preconditions of all the operators for op in task_relaxed.operators: op.clear_precondition() 1.2 The Planning Graph A planning graph is basically a sequence of levels. Each level contains an action layer and a fact layer, in this order! Note: The first level of the graph is a special one because it does not include any action. There are four classes that are used to represent the planning graph. They follow a hierarchy. First we have the layers, represented as actionlayer.actionlayer and factlayer.factlayer. 1

6 Then we have a planning graph level, represented as planning_graph_level.planninggraphlevel which aggregates an action layer and a fact layer. Lastly the planning graph, that is simply a sequence (list) of levels (planning_graph_level:planninggraphlevel). To create a planning graph you first need an instance of task.task, that represents a planning problem import logging from planning_graph import PlanningGraph from tools import parse_pddl task = parse_pddl('testbed/domain-blocks.pddl', 'testbed/blocks.pddl') logging.info('creating a planning graph for problem: {0}'.format(task.name)) pg = PlanningGraph(task) logging.info('graph has {0} levels'.format(pg.size())) Once we have created a planning graph, we can expand it one level using its planning_graph. PlanningGraph.expand_graph() method pg.expand_graph() logging.info('graph has {0} levels'.format(pg.size())) get the last level num_levels = pg.size() last_level = pg.getlevel(num_levels-1) get the fact layer of the last level last_fact_layer = last_level.getfactlayer() get the facts included in the last fact layer last_facts = last_fact_layer.getfacts() check if the goals of the planning problem are covered by the last fact layer print("are goals covered? ",task.goals <= last_facts) 1.3 Implementing GraphPlan The class graphplan.graphplan provides a skeleton for the GraphPlan algorithm. As with the planning graph, you need to supply an instance of the class task.task. The graphplan.graphplan has two methods, graphplan.graphplan.solve() and graphplan.graphplan.extract(). graphplan.graphplan.solve() is the entry point of the algorithm. It already implements some parts of the algorithm, such as the initial expansion of the graph # which consists of the initial state. self.graph = PlanningGraph(task) """ While the layer does not contain all of the propositions in the goal state, or some of these propositions are mutex in the (continues on next page) 2 Chapter 1. Quick Start

7 layer and we have not reached the fixed point, continue expanding the graph """ (continued from previous page) logging.info("initial expansion of planning graph...") """ Initial expansion of the planning graph until it has leveled off and the mutex are covered and non-mutex in the last level """ while not self.graph.has_non_mutex_goals(): if self.graph.has_leveled_off(): return None # this means we stopped the while loop # above because we reached a fixed point and the main loop. Note that the algorithm calls the graphplan.graphplan.extract() to extract a solution. If a solution cannot be extracted, i.e., extract returns None, a new level is expanded. Expansions occur until the planning graph has leveled off. You should implement the graphplan.graphplan.extract() method, using the backward search approach introduced in the lecture. The graphplan.graphplan.nogoods can be used to store the sets of actions that have been considered during the backward search at each level in the planning graph. 1.4 Using A* to find plans The module a_star provides an implementation of the A* algorithm. You need to supply an instance of the class task.task and an heuristic (derived from heuristic_base.heuristic) Defining heuristics You need to define a class that derives from heuristic_base.heuristic and reimplements the method heuristic_base.heuristic. call (). Take a look at the example blind heuristic provided in heuristic_blind.blindheuristic Calling search In order to use A* you should use the function a_star.astar_search(), passing a task instance and your heuristic. from a_star import astar_search from heuristic_blind import BlindHeuristic from tools import parse_pddl heuristic = BlindHeuristic(task) solution = astar_search(task, heuristic) 1.5 Validate a plan A plan is represented by a list of actions (task.operator). A plan is a valid (not necessarily optimal) solution to the planning problem if, starting from the initial state, we apply one by one the actions of the plan, in the appearance 1.4. Using A* to find plans 3

8 order, and we obtain a state that covers the goals. The function validateplan.validate() provides this functionality. 4 Chapter 1. Quick Start

9 CHAPTER TWO API The most relevant modules are documented below. task planning_graph planning_graph_level actionlayer factlayer a_star tools heuristic_base heuristic_blind validateplan Classes that are used to represent a planning problem. Representation of an action layer Representation of a fact layer Implements the A* (a-star) search algorithm. Utility functions Base class for the implementation of heuristics 2.1 Planning problem representation task module Classes that are used to represent a planning problem. A planning problem is basically an instance of the Task class. Note: A task object can be created from a PDDL file using the parser. Example: from tools import parse_pddl task = parse_pddl('testbed/domain-blocks.pddl', 'testbed/blocks.pddl') print("planning problem parsed ") print(task) class task.operator(name, preconditions, add_effects, del_effects) This class represents an operator (action). preconditions frozenset Represent the facts that have to be true before the operator can be applied. add_effects frozenset The facts that the operator makes true. 5

10 delete_effects frozenset The facts that the operator makes false. applicable(state: set) bool Check if the operator can be applied to a given state Operators are applicable when their set of preconditions is a subset of the facts that are true in state. Parameters state The state from which to check if the operator is applicable Returns True if the operator s preconditions is a subset of the state, False otherwise apply(state: set) set Apply operator to a given state Applying an operator implies removing the facts that are made false the operator from the set of true facts in state and adding the facts made true. Note that therefore it is possible to have operands that make a fact both false and true. This results in the fact being true at the end. Parameters state (set) The state from which the operator should be applied to Returns A new state (set of facts) after the application ofthe operator clear_add_effects(add_facts=set()) Clear the add effects Clear the facts that are added by this operator clear_del_effects(del_facts=set()) Clear the delete effects Clear the facts that are removed by this operator clear_precondition(precond=set()) Clear the preconditions set_add_effects(add_facts=set()) Set the add effects Set the facts that are added by this operator set_del_effects(del_facts=set()) Set the delete effects Set the facts that are removed by this operator set_precondition(precond=set()) Set the preconditions class task.task(name, facts, initial_state, goals, operators) A planning task Atrributes: name (string): The task s name facts (set): A set of all the fact names that are valid in the domain initial_state (set): A set of fact names that are true at the beginning goals (set): A set of fact names that must be true to solve the problem operators(set): A set of task.operator representing the valid actions in the problem copy() Get a deep copy of the task Returns A copy of this task object 6 Chapter 2. API

11 get_successor_states(state: set) list Get the successor states from a given state The successor states result from the application of all the applicable operators to a given state Parameters state The state from which to generate the successors Returns A list with (op, new_state) pairs where op is the applicable operator (instance of task.operator) and new_state the state that results when op is applied in state state. goal_reached(state: set) bool Check if the goal has been reached at a given state The goal has been reached if all facts that are true in goals are true in state. Parameters state The state that is being checked Returns True if all the goals are reached, False otherwise 2.2 Planning Graph representation and solution actionlayer module Representation of an action layer class actionlayer.actionlayer A class for an action layer in a level of the planning graph. It contains not only a list of actions, but also the mutexes among them. actions set The actions in this layer as a set of task.operator mutex_actions set The mutex actions, represented as a set of tuples (task.operator, task.operator) actions_for_prop dict A map between facts and the set of task.operator s that have them in the add_effects addaction(act) Add an action to the layer Parameters act (task.operator) The action to add addmutexactions(action1, action2) Add a mutex between action1 and action2 Parameters action1 (task.operator) action2 (task.operator) effectexists(fact) Check if there is an action in this layer that adds a given fact Parameters fact The fact to check inside the add_effects of the actions in this layer Returns True if at least one of the actions in this layer has the fact/proposition fact in its add list Return type bool getactions() Get the actions in this layer 2.2. Planning Graph representation and solution 7

12 Returns A set of task.operator getactionsforcondition(fact) Get all the actions in this layer that have the fact in its add list Parameters fact The fact to check Returns A set of task.operator that have fact in their task.operator. add_effects Return type set getmutexactions() Get the set of mutexes Returns The mutexes as a set of pairs (task.operator, task.operator) ismutex(action1, action2) Parameters action1 (task.operator) action2 (task.operator) Returns True if the actions action1 action2 are mutex in this action layer, False otherwise Return type bool removeactions(act) Remove an action from the layer Parameters act (task.operator) The action to remove factlayer module Representation of a fact layer class factlayer.factlayer(facts=set()) A class for a fact layer in a level of the planning graph. It contains not only a list of facts, but also the mutexes among them. actions set The facts in this layer as a list of string mutex_actions set The mutex between the facts, represented as a set of tuples (string, string) addfact(fact) Add a fact to the layer Parameters act (string) The fact to add addmutexprop(fact1, fact2) Add a mutex between fact1 and fact2 Parameters fact1 (task.operator) fact2 (task.operator) applicable(op) Check if a given action can be applied from this layer, i.e., if all facts that are preconditions of the action exist in this layer 8 Chapter 2. API

13 Parameters op (task.operator) The action to check Returns True if all facts that are preconditions of the action exist in this layer (i.e. the action can be applied) Return type bool getfacts() Get the facts in this layer Returns A set of task.operator getmutexfacts() Get the set of mutexes Returns The mutexes as a set of pairs (task.operator, task.operator) ismutex(fact1, fact2) Parameters fact1 (task.operator) fact2 (task.operator) Returns True if the facts fact1 and fact2 are mutex in this fact layer, False otherwise Return type bool removefact(fact) Remove a fact from the layer Parameters act (task.operator) The fact to remove planning_graph_level module class planning_graph_level.planninggraphlevel(action_layer=<actionlayer.actionlayer object>, fact_layer=<factlayer.factlayer object>) A class for representing a level in the planning graph. Each level consists of one action layer and one fact layer at this level in this order. Note: The first level of a planning graph is a special one because does not contain any action, i.e., the action layer is empty. getactionlayer() Returns the action layer getfactlayer() Returns the fact layer setactionlayer(alayer) Sets the action layer setfactlayer(flayer) Sets the fact layer summary() Prints out the number of actions, facts, and mutexes 2.2. Planning Graph representation and solution 9

14 2.2.4 planning_graph module class planning_graph.planninggraph(task) A planning graph is just a sequence of levels (instances of PlanningGraphLevel. It is created from a planning problem represented as a task (instance of Task). You can access each level directly using the graph.levels member variable, or using the provided getlevel() method. Note that there s no need to use the private methods prefixed with underscore (_). actions_independent(op1, op2) Returns True of actions op1 and op2 are independent expand_graph() Create a new level by expanding the current one has_leveled_off() Returns True if the graph has leveled off has_non_mutex_goals() Returns True if the goals are covered in the last level of the planning graph, conflict-free (no two goals are mutex) initialize() Initialization of the planning graph graphplan module class graphplan.graphplan(task) A class for initializing and running the graphplan algorithm task task.task The planning problem nogoods list sets of operators that have been considered during backward search, used for memoization. no- Goods[i] refers to level i of the planning graph. extract(subgoals, level) The backward search part of graphplan that tries to extract a plan when all goal propositions exist in a graph plan level. Must return a plan represented as a list of operators. TO BE COMPLETED solve(state=none) The graphplan algorithm applied to state. If state is None, it is asumed that the algorithm is applied to the initial state. The code calls the extract function which you should complete below. nogoods[i] represent the states that have been explored so far from level i. You can use nogoods for memoization and reduce the computation time. Using nogoods is NOT mandatory. 2.3 Search a_star module Implements the A* (a-star) search algorithm. a_star.astar_search(task, heuristic, make_open_entry=<function ordered_node_astar>) Searches for a plan in the given task using A* task The task to be heuristic A heuristic callable which computes the estimated steps 10 Chapter 2. API

15 from a search node to reach the make_open_entry An optional parameter to change the bahavior of the astar search. The callable should return a search node, possible values are ordered_node_astar, ordered_node_weighted_astar and ordered_node_greedy_best_first with obvious meanings. a_star.ordered_node_astar(node, h, node_tiebreaker) Creates an ordered search node (basically, a tuple containing the node itself and an ordering) for A* node The node heuristic A heuristic function to be node_tiebreaker An increasing value to prefer the value first inserted if the ordering is the A tuple to be inserted into priority queues heuristic_base module Base class for the implementation of heuristics class heuristic_base.heuristic Base class for A* heuristics heuristic_blind module class heuristic_blind.blindheuristic(task) Implements a simple blind heuristic for illustration purposes. It returns 0 if the goal was reached and 1 otherwise validateplan module validateplan.validate(task, plan) Validates a plan with respect to a problem instance Parameters task (task.task) The planning problem plan (list) The plan to validate Returns True if the plan is valid, False otherwise 2.3. Search 11

16 12 Chapter 2. API

17 CHAPTER THREE INDICES AND TABLES genindex modindex search 13

18 14 Chapter 3. Indices and tables

19 PYTHON MODULE INDEX a actionlayer, 7 f factlayer, 8 g graphplan, 10 h heuristic_base, 11 p planning_graph_level, 9 v validateplan, 11 15

20 16 Python Module Index

21 INDEX A a_star (module), 10 ActionLayer (class in actionlayer), 7 actionlayer (module), 7 actions (actionlayer.actionlayer attribute), 7 actions (factlayer.factlayer attribute), 8 actions_for_prop (actionlayer.actionlayer attribute), 7 actions_independent() (planning_graph.planninggraph method), 10 add_effects (task.operator attribute), 5 addaction() (actionlayer.actionlayer method), 7 addfact() (factlayer.factlayer method), 8 addmutexactions() (actionlayer.actionlayer method), 7 addmutexprop() (factlayer.factlayer method), 8 applicable() (factlayer.factlayer method), 8 applicable() (task.operator method), 6 apply() (task.operator method), 6 astar_search() (in module a_star), 10 B BlindHeuristic (class in heuristic_blind), 11 C clear_add_effects() (task.operator method), 6 clear_del_effects() (task.operator method), 6 clear_precondition() (task.operator method), 6 copy() (task.task method), 6 D delete_effects (task.operator attribute), 5 E effectexists() (actionlayer.actionlayer method), 7 expand_graph() (planning_graph.planninggraph method), 10 extract() (graphplan.graphplan method), 10 F FactLayer (class in factlayer), 8 factlayer (module), 8 G get_successor_states() (task.task method), 6 getactionlayer() (planning_graph_level.planninggraphlevel method), 9 getactions() (actionlayer.actionlayer method), 7 getactionsforcondition() (actionlayer.actionlayer method), 8 getfactlayer() (planning_graph_level.planninggraphlevel method), 9 getfacts() (factlayer.factlayer method), 9 getmutexactions() (actionlayer.actionlayer method), 8 getmutexfacts() (factlayer.factlayer method), 9 goal_reached() (task.task method), 7 GraphPlan (class in graphplan), 10 graphplan (module), 10 H has_leveled_off() (planning_graph.planninggraph method), 10 has_non_mutex_goals() (planning_graph.planninggraph method), 10 Heuristic (class in heuristic_base), 11 heuristic_base (module), 11 heuristic_blind (module), 11 I initialize() (planning_graph.planninggraph method), 10 ismutex() (actionlayer.actionlayer method), 8 ismutex() (factlayer.factlayer method), 9 M mutex_actions (actionlayer.actionlayer attribute), 7 mutex_actions (factlayer.factlayer attribute), 8 N nogoods (graphplan.graphplan attribute), 10 O Operator (class in task), 5 ordered_node_astar() (in module a_star), 11 17

22 P planning_graph (module), 10 planning_graph_level (module), 9 PlanningGraph (class in planning_graph), 10 PlanningGraphLevel (class in planning_graph_level), 9 preconditions (task.operator attribute), 5 R removeactions() (actionlayer.actionlayer method), 8 removefact() (factlayer.factlayer method), 9 S set_add_effects() (task.operator method), 6 set_del_effects() (task.operator method), 6 set_precondition() (task.operator method), 6 setactionlayer() (planning_graph_level.planninggraphlevel method), 9 setfactlayer() (planning_graph_level.planninggraphlevel method), 9 solve() (graphplan.graphplan method), 10 summary() (planning_graph_level.planninggraphlevel method), 9 T Task (class in task), 6 task (graphplan.graphplan attribute), 10 task (module), 5 V validate() (in module validateplan), 11 validateplan (module), Index

CMU-Q Lecture 6: Planning Graph GRAPHPLAN. Teacher: Gianni A. Di Caro

CMU-Q Lecture 6: Planning Graph GRAPHPLAN. Teacher: Gianni A. Di Caro CMU-Q 15-381 Lecture 6: Planning Graph GRAPHPLAN Teacher: Gianni A. Di Caro PLANNING GRAPHS Graph-based data structure representing a polynomial-size/time approximation of the exponential search tree Can

More information

freeze Documentation Release 0.7.0alpha Jean-Louis Fuchs

freeze Documentation Release 0.7.0alpha Jean-Louis Fuchs freeze Documentation Release 0.7.0alpha Jean-Louis Fuchs April 10, 2014 Contents i ii freeze.freeze(data_structure) Freeze tries to convert any data-structure in a hierarchy of tuples. freeze.object_to_items(data_structure)

More information

CSC2542 Planning-Graph Techniques

CSC2542 Planning-Graph Techniques 1 Administrative Announcements Discussion of tutorial time Email me to set up a time to meet to discuss your project in the next week. Fridays are best CSC2542 Planning-Graph Techniques Sheila McIlraith

More information

Question II. A) Because there will be additional actions supporting such conditions (at least Noops), relaxing the mutex propagation.

Question II. A) Because there will be additional actions supporting such conditions (at least Noops), relaxing the mutex propagation. Homework III Solutions uestion I A) Optimal parallel plan: B) Graphplan plan:. No step optimal C) e can change the action interference definition such that two actions and are interfering if their interacting

More information

Activity Planning and Execution I: Operator-based Planning and Plan Graphs. Assignments

Activity Planning and Execution I: Operator-based Planning and Plan Graphs. Assignments Activity Planning and Execution I: Operator-based Planning and Plan Graphs Slides draw upon material from: Prof. Maria Fox, Univ Strathclyde Brian C. Williams 16.410-13 October 4 th, 2010 Assignments Remember:

More information

prompt Documentation Release Stefan Fischer

prompt Documentation Release Stefan Fischer prompt Documentation Release 0.4.1 Stefan Fischer Nov 14, 2017 Contents: 1 Examples 1 2 API 3 3 Indices and tables 7 Python Module Index 9 i ii CHAPTER 1 Examples 1. Ask for a floating point number: >>>

More information

redis-lua Documentation

redis-lua Documentation redis-lua Documentation Release 2.0.8 Julien Kauffmann October 12, 2016 Contents 1 Quick start 3 1.1 Step-by-step analysis........................................... 3 2 What s the magic at play here?

More information

Kiki Documentation. Release 0.7a1. Stephen Burrows

Kiki Documentation. Release 0.7a1. Stephen Burrows Kiki Documentation Release 0.7a1 Stephen Burrows August 14, 2013 CONTENTS i ii Kiki Documentation, Release 0.7a1 Kiki is envisioned as a Django-based mailing list manager which can replace Mailman. CONTENTS

More information

PyZabbixObj Documentation

PyZabbixObj Documentation PyZabbixObj Documentation Release 0.1 Fabio Toscano Aug 26, 2017 Contents Python Module Index 3 i ii PyZabbixObj Documentation, Release 0.1 PyZabbixObj is a Python module for working with Zabbix API,

More information

django-redis-cache Documentation

django-redis-cache Documentation django-redis-cache Documentation Release 1.5.2 Sean Bleier Nov 15, 2018 Contents 1 Intro and Quick Start 3 1.1 Intro................................................... 3 1.2 Quick Start................................................

More information

python-anyvcs Documentation

python-anyvcs Documentation python-anyvcs Documentation Release 1.4.0 Scott Duckworth Sep 27, 2017 Contents 1 Getting Started 3 2 Contents 5 2.1 The primary API............................................. 5 2.2 Git-specific functionality.........................................

More information

Sherlock Documentation

Sherlock Documentation Sherlock Documentation Release 0.3.0 Vaidik Kapoor May 05, 2015 Contents 1 Overview 3 1.1 Features.................................................. 3 1.2 Supported Backends and Client Libraries................................

More information

tld Documentation Release 0.9 Artur Barseghyan

tld Documentation Release 0.9 Artur Barseghyan tld Documentation Release 0.9 Artur Barseghyan Jun 13, 2018 Contents 1 Prerequisites 3 2 Documentation 5 3 Installation 7 4 Usage examples 9 5 Update the list of TLD names

More information

pyramid_assetmutator Documentation

pyramid_assetmutator Documentation pyramid_assetmutator Documentation Release 1.0b1 Seth Davis February 22, 2017 Contents 1 Overview 1 2 Installation 3 3 Setup 5 4 Usage 7 5 Mutators 11 6 Settings 13 7 Asset Concatenation (a.k.a Asset

More information

Principles of Autonomy and Decision Making

Principles of Autonomy and Decision Making Massachusetts Institute of Technology 16.410-13 Principles of Autonomy and Decision Making Problem Set #6 (distributed 10/22/04). Paper solutions are due no later than 5pm on Friday, 10/29/04. Please give

More information

python-json-patch Documentation

python-json-patch Documentation python-json-patch Documentation Release 1.21 Stefan Kögl Jan 16, 2018 Contents 1 Tutorial 3 1.1 Creating a Patch............................................. 3 1.2 Applying a Patch.............................................

More information

databuild Documentation

databuild Documentation databuild Documentation Release 0.0.10 Flavio Curella May 15, 2015 Contents 1 Contents 3 1.1 Installation................................................ 3 1.2 Quickstart................................................

More information

pylatexenc Documentation

pylatexenc Documentation pylatexenc Documentation Release 1.2 Philippe Faist Apr 28, 2017 Contents: 1 Simple Parser for LaTeX Code 3 1.1 The main LatexWalker class....................................... 3 1.2 Exception Classes............................................

More information

ers Documentation Release 0.13 ers-devs

ers Documentation Release 0.13 ers-devs ers Documentation Release 0.13 ers-devs November 14, 2013 Contents 1 Installation 3 2 Run as Virtual Machine 5 3 ers Package 7 3.1 ers Package............................................... 7 3.2 daemon

More information

Planning Graphs and Graphplan

Planning Graphs and Graphplan Sec. 11.4 p.1/20 Planning Graphs and Graphplan Section 11.4 Sec. 11.4 p.2/20 Outline The planning graph Planning graph example The graphplan algorithm Using planning graphs for heuristics Additional reference

More information

Script language: Python Data structures

Script language: Python Data structures Script language: Python Data structures Cédric Saule Technische Fakultät Universität Bielefeld 3. Februar 2015 Immutable vs. Mutable Previously known types: int and string. Both are Immutable but what

More information

Chapter 6 Planning-Graph Techniques

Chapter 6 Planning-Graph Techniques Lecture slides for Automated Planning: Theory and Practice Chapter 6 Planning-Graph Techniques Dana S. Nau CMSC 722, AI Planning University of Maryland, Spring 2008 1 Motivation A big source of inefficiency

More information

Dipartimento di Elettronica Informazione e Bioingegneria. Cognitive Robotics. SATplan. Act1. Pre1. Fact. G. Gini Act2

Dipartimento di Elettronica Informazione e Bioingegneria. Cognitive Robotics. SATplan. Act1. Pre1. Fact. G. Gini Act2 Dipartimento di Elettronica Informazione e Bioingegneria Cognitive Robotics SATplan Pre1 Pre2 @ 2015 Act1 Act2 Fact why SAT (satisfability)? 2 Classical planning has been observed as a form of logical

More information

mprpc Documentation Release Studio Ousia

mprpc Documentation Release Studio Ousia mprpc Documentation Release 0.1.13 Studio Ousia Apr 05, 2017 Contents 1 Introduction 3 1.1 Installation................................................ 3 1.2 Examples.................................................

More information

The STRIPS Subset of PDDL for the Learning Track of IPC-08

The STRIPS Subset of PDDL for the Learning Track of IPC-08 The STRIPS Subset of PDDL for the Learning Track of IPC-08 Alan Fern School of Electrical Engineering and Computer Science Oregon State University April 9, 2008 This document defines two subsets of PDDL

More information

Torndb Release 0.3 Aug 30, 2017

Torndb Release 0.3 Aug 30, 2017 Torndb Release 0.3 Aug 30, 2017 Contents 1 Release history 3 1.1 Version 0.3, Jul 25 2014......................................... 3 1.2 Version 0.2, Dec 22 2013........................................

More information

This article was published in an Elsevier journal. The attached copy is furnished to the author for non-commercial research and education use, including for instruction at the author s institution, sharing

More information

django-auditlog Documentation

django-auditlog Documentation django-auditlog Documentation Release 0.4.3 Jan-Jelle Kester Jul 05, 2017 Contents 1 Contents 3 1.1 Installation................................................ 3 1.2 Usage...................................................

More information

Fast Forward Planning. By J. Hoffmann and B. Nebel

Fast Forward Planning. By J. Hoffmann and B. Nebel Fast Forward Planning By J. Hoffmann and B. Nebel Chronology faster Traditional Optimal Sub-optimal ««1995 Graphplan-based Satplan-based 2000 Heuristic-based Fast Forward (FF) Winner of AIPS2000 Forward-chaining

More information

Dogeon Documentation. Release Lin Ju

Dogeon Documentation. Release Lin Ju Dogeon Documentation Release 1.0.0 Lin Ju June 07, 2014 Contents 1 Indices and tables 7 Python Module Index 9 i ii DSON (Doge Serialized Object Notation) is a data-interchange format,

More information

Set 9: Planning Classical Planning Systems. ICS 271 Fall 2013

Set 9: Planning Classical Planning Systems. ICS 271 Fall 2013 Set 9: Planning Classical Planning Systems ICS 271 Fall 2013 Outline: Planning Classical Planning: Situation calculus PDDL: Planning domain definition language STRIPS Planning Planning graphs Readings:

More information

Planning. Introduction

Planning. Introduction Planning Introduction Planning vs. Problem-Solving Representation in Planning Systems Situation Calculus The Frame Problem STRIPS representation language Blocks World Planning with State-Space Search Progression

More information

tolerance Documentation

tolerance Documentation tolerance Documentation Release Alisue Apr 1, 217 Contents 1 tolerance 1 1.1 Features.................................................. 1 1.2 Installation................................................

More information

bzz Documentation Release Rafael Floriano and Bernardo Heynemann

bzz Documentation Release Rafael Floriano and Bernardo Heynemann bzz Documentation Release 0.1.0 Rafael Floriano and Bernardo Heynemann Nov 15, 2017 Contents 1 Getting Started 3 2 Flattening routes 5 3 Indices and tables 7 3.1 Model Hive................................................

More information

striatum Documentation

striatum Documentation striatum Documentation Release 0.0.1 Y.-Y. Yang, Y.-A. Lin November 11, 2016 Contents 1 API Reference 3 1.1 striatum.bandit package......................................... 3 1.2 striatum.storage package.........................................

More information

Planning as Search. Progression. Partial-Order causal link: UCPOP. Node. World State. Partial Plans World States. Regress Action.

Planning as Search. Progression. Partial-Order causal link: UCPOP. Node. World State. Partial Plans World States. Regress Action. Planning as Search State Space Plan Space Algorihtm Progression Regression Partial-Order causal link: UCPOP Node World State Set of Partial Plans World States Edge Apply Action If prec satisfied, Add adds,

More information

CS 4240: Compilers and Interpreters Project Phase 1: Scanner and Parser Due Date: October 4 th 2015 (11:59 pm) (via T-square)

CS 4240: Compilers and Interpreters Project Phase 1: Scanner and Parser Due Date: October 4 th 2015 (11:59 pm) (via T-square) CS 4240: Compilers and Interpreters Project Phase 1: Scanner and Parser Due Date: October 4 th 2015 (11:59 pm) (via T-square) Introduction This semester, through a project split into 3 phases, we are going

More information

Instruction Selection and Scheduling

Instruction Selection and Scheduling Instruction Selection and Scheduling The Problem Writing a compiler is a lot of work Would like to reuse components whenever possible Would like to automate construction of components Front End Middle

More information

Python Release September 11, 2014

Python Release September 11, 2014 Python Release September 11, 2014 Contents 1 Overview 3 2 History 5 3 Changes 7 4 API 9 4.1 Basic usage................................................ 9 4.2 Exceptions................................................

More information

Good Luck! CSC207, Fall 2012: Quiz 1 Duration 25 minutes Aids allowed: none. Student Number:

Good Luck! CSC207, Fall 2012: Quiz 1 Duration 25 minutes Aids allowed: none. Student Number: CSC207, Fall 2012: Quiz 1 Duration 25 minutes Aids allowed: none Student Number: Last Name: Lecture Section: L0101 First Name: Instructor: Horton Please fill out the identification section above as well

More information

CNRS ANF PYTHON Objects everywhere

CNRS ANF PYTHON Objects everywhere CNRS ANF PYTHON Objects everywhere Marc Poinot Numerical Simulation Dept. Outline Python Object oriented features Basic OO concepts syntax More on Python classes multiple inheritance reuse introspection

More information

Classical Planning. CS 486/686: Introduction to Artificial Intelligence Winter 2016

Classical Planning. CS 486/686: Introduction to Artificial Intelligence Winter 2016 Classical Planning CS 486/686: Introduction to Artificial Intelligence Winter 2016 1 Classical Planning A plan is a collection of actions for performing some task (reaching some goal) If we have a robot

More information

Scrapy-Redis Documentation

Scrapy-Redis Documentation Scrapy-Redis Documentation Release 0.7.0-dev Rolando Espinoza Nov 13, 2017 Contents 1 Scrapy-Redis 3 1.1 Features.................................................. 3 1.2 Requirements...............................................

More information

General Methods and Search Algorithms

General Methods and Search Algorithms DM811 HEURISTICS AND LOCAL SEARCH ALGORITHMS FOR COMBINATORIAL OPTIMZATION Lecture 3 General Methods and Search Algorithms Marco Chiarandini 2 Methods and Algorithms A Method is a general framework for

More information

Acknowledgements. Outline

Acknowledgements. Outline Acknowledgements Heuristic Search for Planning Sheila McIlraith University of Toronto Fall 2010 Many of the slides used in today s lecture are modifications of slides developed by Malte Helmert, Bernhard

More information

CSC148 Recipe for Designing Classes

CSC148 Recipe for Designing Classes Part 1: Define the API for the class CSC148 Recipe for Designing Classes Download the sample code here: https://www.teach.cs.toronto.edu/~csc148h/fall/lectures/object-oriented-programming/common/course.

More information

Artificial Intelligence

Artificial Intelligence Artificial Intelligence Lecturer 7 - Planning Lecturer: Truong Tuan Anh HCMUT - CSE 1 Outline Planning problem State-space search Partial-order planning Planning graphs Planning with propositional logic

More information

Kong Documentation. Release Hong Minhee

Kong Documentation. Release Hong Minhee Kong Documentation Release 0.1.0 Hong Minhee August 18, 2014 Contents 1 kong Tofu implementation 3 1.1 kong.ast Abstract Syntax Tree.................................. 3 1.2 kong.parser Tofu parser.....................................

More information

FIQL Parser. Release 0.15

FIQL Parser. Release 0.15 FIQL Parser Release 0.15 July 02, 2016 Contents 1 What is FIQL? 3 2 How does FIQL work? 5 3 Installing fiql_parser 7 4 Using fiql_parser 9 4.1 Parsing a FIQL formatted string.....................................

More information

pyprika Documentation

pyprika Documentation pyprika Documentation Release 1.0.0 Paul Kilgo February 16, 2014 Contents i ii Pyprika is a Python library for parsing and managing recipes. Its major features are: Support for recognizing a human-friendly

More information

Improving Graphplan s search with EBL & DDB Techniques

Improving Graphplan s search with EBL & DDB Techniques Improving Graphplan s search with EBL & DDB Techniques Subbarao Kambhampati Department of Computer Science and Engineering Arizona State University, Tempe AZ 85287-5406 email: rao@asu.edu URL: rakaposhi.eas.asu.edu/yochan.html

More information

Intelligent Agents. Planning Graphs - The Graph Plan Algorithm. Ute Schmid. Cognitive Systems, Applied Computer Science, Bamberg University

Intelligent Agents. Planning Graphs - The Graph Plan Algorithm. Ute Schmid. Cognitive Systems, Applied Computer Science, Bamberg University Intelligent Agents Planning Graphs - The Graph Plan Algorithm Ute Schmid Cognitive Systems, Applied Computer Science, Bamberg University last change: July 9, 2015 U. Schmid (CogSys) Intelligent Agents

More information

! A* is best first search with f(n) = g(n) + h(n) ! Three changes make it an anytime algorithm:

! A* is best first search with f(n) = g(n) + h(n) ! Three changes make it an anytime algorithm: Anytime A* Today s s lecture Lecture 5: Search - 4 Hierarchical A* Jiaying Shen CMPSCI 683 Fall 2004 Other Examples of Hierarchical Problem Solving Reviews of A* and its varations 2 Anytime algorithms

More information

Set 9: Planning Classical Planning Systems. ICS 271 Fall 2014

Set 9: Planning Classical Planning Systems. ICS 271 Fall 2014 Set 9: Planning Classical Planning Systems ICS 271 Fall 2014 Planning environments Classical Planning: Outline: Planning Situation calculus PDDL: Planning domain definition language STRIPS Planning Planning

More information

Postfix Notation is a notation in which the operator follows its operands in the expression (e.g ).

Postfix Notation is a notation in which the operator follows its operands in the expression (e.g ). Assignment 5 Introduction For this assignment, you will write classes to evaluate arithmetic expressions represented as text. For example, the string "1 2 ( * 4)" would evaluate to 15. This process will

More information

Data Structure using C++ Lecture 04. Data Structures and algorithm analysis in C++ Chapter , 3.2, 3.2.1

Data Structure using C++ Lecture 04. Data Structures and algorithm analysis in C++ Chapter , 3.2, 3.2.1 Data Structure using C++ Lecture 04 Reading Material Data Structures and algorithm analysis in C++ Chapter. 3 3.1, 3.2, 3.2.1 Summary Infix to Postfix Example 1: Infix to Postfix Example 2: Postfix Evaluation

More information

django-embed-video Documentation

django-embed-video Documentation django-embed-video Documentation Release 1.1.2-stable Juda Kaleta Nov 10, 2017 Contents 1 Installation & Setup 3 1.1 Installation................................................ 3 1.2 Setup...................................................

More information

Solving Problems by Searching

Solving Problems by Searching Solving Problems by Searching 1 Terminology State State Space Initial State Goal Test Action Step Cost Path Cost State Change Function State-Space Search 2 Formal State-Space Model Problem = (S, s, A,

More information

YouTube API Wrapper Documentation

YouTube API Wrapper Documentation YouTube API Wrapper Documentation Release 0.1 Alessandro De Noia (Global Radio) June 09, 2016 Contents 1 Installation 3 1.1 Install the library............................................. 3 2 Basic usage

More information

Linux Distribution - a Linux OS platform information API

Linux Distribution - a Linux OS platform information API Linux Distribution - a Linux OS platform information API Release 1.2.0 Nir Cohen, Andreas Maier Dec 24, 2017 Contents 1 Overview and motivation 3 2 Compatibility 5 3 Data sources 7 4 Access to the information

More information

Plan Generation Classical Planning

Plan Generation Classical Planning Plan Generation Classical Planning Manuela Veloso Carnegie Mellon University School of Computer Science 15-887 Planning, Execution, and Learning Fall 2016 Outline What is a State and Goal What is an Action

More information

Kaiso Documentation. Release 0.1-dev. onefinestay

Kaiso Documentation. Release 0.1-dev. onefinestay Kaiso Documentation Release 0.1-dev onefinestay Sep 27, 2017 Contents 1 Neo4j visualization style 3 2 Contents 5 2.1 API Reference.............................................. 5 3 Indices and tables

More information

yarl Documentation Release Andrew Svetlov

yarl Documentation Release Andrew Svetlov yarl Documentation Release 1.2.0- Andrew Svetlov Apr 30, 2018 Contents 1 Introduction 3 2 Installation 5 3 Dependencies 7 4 API documentation 9 5 Comparison with other URL libraries 11 6 Source code 13

More information

FriendlyShell Documentation

FriendlyShell Documentation FriendlyShell Documentation Release 0.0.0.dev0 Kevin S. Phillips Nov 15, 2018 Contents: 1 friendlyshell 3 1.1 friendlyshell package........................................... 3 2 Overview 9 3 Indices

More information

INF Kunstig intelligens. Agents That Plan. Roar Fjellheim. INF5390-AI-06 Agents That Plan 1

INF Kunstig intelligens. Agents That Plan. Roar Fjellheim. INF5390-AI-06 Agents That Plan 1 INF5390 - Kunstig intelligens Agents That Plan Roar Fjellheim INF5390-AI-06 Agents That Plan 1 Outline Planning agents Plan representation State-space search Planning graphs GRAPHPLAN algorithm Partial-order

More information

API Wrapper Documentation

API Wrapper Documentation API Wrapper Documentation Release 0.1.7 Ardy Dedase February 09, 2017 Contents 1 API Wrapper 3 1.1 Overview................................................. 3 1.2 Installation................................................

More information

Planning. Planning. What is Planning. Why not standard search?

Planning. Planning. What is Planning. Why not standard search? Based on slides prepared by Tom Lenaerts SWITCH, Vlaams Interuniversitair Instituut voor Biotechnologie Modifications by Jacek.Malec@cs.lth.se Original slides can be found at http://aima.cs.berkeley.edu

More information

Python Mock Tutorial Documentation

Python Mock Tutorial Documentation Python Mock Tutorial Documentation Release 0.1 Javier Collado Nov 14, 2017 Contents 1 Introduction 3 2 Mock 5 2.1 What is a mock object?.......................................... 5 2.2 What makes mock

More information

15-780: Graduate AI Homework Assignment #2 Solutions

15-780: Graduate AI Homework Assignment #2 Solutions 15-780: Graduate AI Homework Assignment #2 Solutions Out: February 12, 2015 Due: February 25, 2015 Collaboration Policy: You may discuss the problems with others, but you must write all code and your writeup

More information

Lecture #15: Generic Functions and Expressivity. Last modified: Wed Mar 1 15:51: CS61A: Lecture #16 1

Lecture #15: Generic Functions and Expressivity. Last modified: Wed Mar 1 15:51: CS61A: Lecture #16 1 Lecture #15: Generic Functions and Expressivity Last modified: Wed Mar 1 15:51:48 2017 CS61A: Lecture #16 1 Consider the function find: Generic Programming def find(l, x, k): """Return the index in L of

More information

certbot-dns-rfc2136 Documentation

certbot-dns-rfc2136 Documentation certbot-dns-rfc2136 Documentation Release 0 Certbot Project Aug 29, 2018 Contents: 1 Named Arguments 3 2 Credentials 5 2.1 Sample BIND configuration....................................... 6 3 Examples

More information

sanction Documentation

sanction Documentation sanction Documentation Release 0.4 Demian Brecht May 14, 2014 Contents 1 Overview 3 2 Quickstart 5 2.1 Instantiation............................................... 5 2.2 Authorization Request..........................................

More information

State Agnostic Planning Graphs: Deterministic, Non-Deterministic, and Probabilistic Planning

State Agnostic Planning Graphs: Deterministic, Non-Deterministic, and Probabilistic Planning State Agnostic Planning Graphs: Deterministic, Non-Deterministic, and Probabilistic Planning Daniel Bryce, a William Cushing, b and Subbarao Kambhampati b a Utah State University, Department of Computer

More information

pymemcache Documentation

pymemcache Documentation pymemcache Documentation Release 2.1.0 Charles Gordon, Nicholas Charriere, Jon Parise, Joe Gordon Jan 08, 2019 Contents 1 Getting started! 3 1.1 Basic Usage...............................................

More information

pylog Documentation Release nir0s

pylog Documentation Release nir0s pylog Documentation Release 0.1.4 nir0s August 03, 2014 Contents 1 Quick Start 3 2 Installation 5 3 CLI 7 4 Configuration 9 5 Advanced Configuration 11 6 Formatters 13 7 Transports 15 8 API 17 9 Indices

More information

INTRODUCTION TO HEURISTIC SEARCH

INTRODUCTION TO HEURISTIC SEARCH INTRODUCTION TO HEURISTIC SEARCH What is heuristic search? Given a problem in which we must make a series of decisions, determine the sequence of decisions which provably optimizes some criterion. What

More information

State Space Search. Many problems can be represented as a set of states and a set of rules of how one state is transformed to another.

State Space Search. Many problems can be represented as a set of states and a set of rules of how one state is transformed to another. State Space Search Many problems can be represented as a set of states and a set of rules of how one state is transformed to another. The problem is how to reach a particular goal state, starting from

More information

Index. Cambridge University Press Functional Programming Using F# Michael R. Hansen and Hans Rischel. Index.

Index. Cambridge University Press Functional Programming Using F# Michael R. Hansen and Hans Rischel. Index. (),23 (*,3 ->,3,32 *,11 *),3.[...], 27, 186 //,3 ///,3 ::, 71, 80 :=, 182 ;, 179 ;;,1 @, 79, 80 @"...",26 >,38,35

More information

Algorithms Dr. Haim Levkowitz

Algorithms Dr. Haim Levkowitz 91.503 Algorithms Dr. Haim Levkowitz Fall 2007 Lecture 4 Tuesday, 25 Sep 2007 Design Patterns for Optimization Problems Greedy Algorithms 1 Greedy Algorithms 2 What is Greedy Algorithm? Similar to dynamic

More information

March 13/2003 Jayakanth Srinivasan,

March 13/2003 Jayakanth Srinivasan, Statement Effort MergeSort(A, lower_bound, upper_bound) begin T(n) if (lower_bound < upper_bound) Θ(1) mid = (lower_bound + upper_bound)/ 2 Θ(1) MergeSort(A, lower_bound, mid) T(n/2) MergeSort(A, mid+1,

More information

Planning: Wrap up CSP Planning Logic: Intro

Planning: Wrap up CSP Planning Logic: Intro Planning: Wrap up CSP Planning Logic: Intro Alan Mackworth UBC CS 322 Planning 3 ebruary 25, 2013 Textbook 8.4, 5.1 GAC vs. AC GAC = Generalized Arc Consistency (for k-ary constraints) AC = Arc Consistency

More information

Heuristic Search for Planning

Heuristic Search for Planning Heuristic Search for Planning Sheila McIlraith University of Toronto Fall 2010 S. McIlraith Heuristic Search for Planning 1 / 50 Acknowledgements Many of the slides used in today s lecture are modifications

More information

ITI Introduction to Computing II

ITI Introduction to Computing II ITI 1121. Introduction to Computing II Marcel Turcotte School of Electrical Engineering and Computer Science Binary search tree (part I) Version of March 24, 2013 Abstract These lecture notes are meant

More information

PAC-MAN is one of the most popular game

PAC-MAN is one of the most popular game SCHOOL OF DATA SCIENCE 1 Assignment1. Search in Pacman Project Report Shihan Ran - 15307130424 Abstract This project is aimed at designing a intelligent Pacman agent that is able to find optimal paths

More information

Python Type Checking Guide Documentation

Python Type Checking Guide Documentation Python Type Checking Guide Documentation Release 1.0 Chad Dombrova Mar 03, 2017 Contents 1 Background 3 1.1 Why Should I Care?........................................... 3 1.2 Enter PEP 484..............................................

More information

Advanced Algorithms and Computational Models (module A)

Advanced Algorithms and Computational Models (module A) Advanced Algorithms and Computational Models (module A) Giacomo Fiumara giacomo.fiumara@unime.it 2014-2015 1 / 34 Python's built-in classes A class is immutable if each object of that class has a xed value

More information

RobotPy networktables Documentation

RobotPy networktables Documentation RobotPy networktables Documentation Release 2018.2.0.post0.dev6 RobotPy Development Team Sep 10, 2018 Robot Programming 1 API Reference 3 1.1 Examples.................................................

More information

Principles of Automated Reasoning and Decision Making

Principles of Automated Reasoning and Decision Making Massachusetts Institute of Technology 16.410 Principles of Automated Reasoning and Decision Making Problem Set #5 Problem 1: Planning for Space Operations (30 points) In this problem you will construct

More information

json2xls Documentation

json2xls Documentation json2xls Documentation Release 0.1.3c axiaoxin Aug 10, 2017 Contents 1 3 2 5 3 API 9 i ii json2xls Documentation, Release 0.1.3c jsonexceljsonexceljson jsonjsonurljsonjson Contents 1 json2xls Documentation,

More information

linkgrabber Documentation

linkgrabber Documentation linkgrabber Documentation Release 0.2.6 Eric Bower Jun 08, 2017 Contents 1 Install 3 2 Tutorial 5 2.1 Quickie.................................................. 5 2.2 Documentation..............................................

More information

Implementing Some Foundations for a Computer-Grounded AI

Implementing Some Foundations for a Computer-Grounded AI Implementing Some Foundations for a Computer-Grounded AI Thomas Lin MIT 410 Memorial Drive Cambridge, MA 02139 tlin@mit.edu Abstract This project implemented some basic ideas about having AI programs that

More information

CS Homework 4 Employee Ranker. Due: Wednesday, February 8th, before 11:55 PM Out of 100 points. Files to submit: 1. HW4.py.

CS Homework 4 Employee Ranker. Due: Wednesday, February 8th, before 11:55 PM Out of 100 points. Files to submit: 1. HW4.py. CS 216 Homework 4 Employee Ranker Due: Wednesday, February 8th, before 11: PM Out of 0 points Files to submit: 1. HW4.py This is an INDIVIDUAL assignment! Collaboration at a reasonable level will not result

More information

Temporal Planning with a Non-Temporal Planner

Temporal Planning with a Non-Temporal Planner Temporal Planning with a Non-Temporal Planner Keith Halsey Department of Computer Science, University of Durham, UK keith.halsey@durham.ac.uk Introduction This extended abstract looks at the work that

More information

ITI Introduction to Computing II

ITI Introduction to Computing II ITI 1121. Introduction to Computing II Marcel Turcotte School of Electrical Engineering and Computer Science Binary search tree (part I) Version of March 24, 2013 Abstract These lecture notes are meant

More information

micawber Documentation

micawber Documentation micawber Documentation Release 0.3.4 charles leifer Nov 29, 2017 Contents 1 examples 3 2 integration with web frameworks 5 2.1 Installation................................................ 5 2.2 Getting

More information

Lecture 27. Lecture 27: Regular Expressions and Python Identifiers

Lecture 27. Lecture 27: Regular Expressions and Python Identifiers Lecture 27 Lecture 27: Regular Expressions and Python Identifiers Python Syntax Python syntax makes very few restrictions on the ways that we can name our variables, functions, and classes. Variables names

More information

Compilers. Compiler Construction Tutorial The Front-end

Compilers. Compiler Construction Tutorial The Front-end Compilers Compiler Construction Tutorial The Front-end Salahaddin University College of Engineering Software Engineering Department 2011-2012 Amanj Sherwany http://www.amanj.me/wiki/doku.php?id=teaching:su:compilers

More information

Vorlesung Grundlagen der Künstlichen Intelligenz

Vorlesung Grundlagen der Künstlichen Intelligenz Vorlesung Grundlagen der Künstlichen Intelligenz Reinhard Lafrenz / Prof. A. Knoll Robotics and Embedded Systems Department of Informatics I6 Technische Universität München www6.in.tum.de lafrenz@in.tum.de

More information

CS415 Compilers. Intermediate Represeation & Code Generation

CS415 Compilers. Intermediate Represeation & Code Generation CS415 Compilers Intermediate Represeation & Code Generation These slides are based on slides copyrighted by Keith Cooper, Ken Kennedy & Linda Torczon at Rice University Review - Types of Intermediate Representations

More information

goose3 Documentation Release maintainers

goose3 Documentation Release maintainers goose3 Documentation Release 3.1.6 maintainers Oct 20, 2018 Contents: 1 Goose3 API 1 1.1 Goose3.................................................. 1 1.2 Configuration...............................................

More information