HOME

TheInfoList



OR:

The Stanford Research Institute Problem Solver, known by its acronym STRIPS, is an automated planner developed by Richard Fikes and Nils Nilsson in 1971 at
SRI International SRI International (SRI) is an American nonprofit scientific research institute and organization headquartered in Menlo Park, California. The trustees of Stanford University established SRI in 1946 as a center of innovation to support economic ...
. The same name was later used to refer to the
formal language In logic, mathematics, computer science, and linguistics, a formal language consists of words whose letters are taken from an alphabet and are well-formed according to a specific set of rules. The alphabet of a formal language consists of sym ...
of the inputs to this planner. This language is the base for most of the languages for expressing automated planning problem instances in use today; such languages are commonly known as
action language In computer science, an action language is a language for specifying state transition systems, and is commonly used to create formal models of the effects of actions on the world. Action languages are commonly used in the artificial intelligen ...
s. This article only describes the language, not the planner.


Definition

A STRIPS instance is composed of: * An initial state; * The specification of the goal states – situations which the planner is trying to reach; * A set of actions. For each action, the following are included: ** preconditions (what must be established before the action is performed); ** postconditions (what is established after the action is performed). Mathematically, a STRIPS instance is a quadruple \langle P,O,I,G \rangle, in which each component has the following meaning: # P is a set of ''conditions'' (i.e., propositional variables); # O is a set of ''operators'' (i.e., actions); each operator is itself a quadruple \langle \alpha, \beta, \gamma, \delta \rangle, each element being a set of conditions. These four sets specify, in order, which conditions must be true for the action to be executable, which ones must be false, which ones are made true by the action and which ones are made false; # I is the initial state, given as the set of conditions that are initially true (all others are assumed false); # G is the specification of the goal state; this is given as a pair \langle N,M \rangle, which specify which conditions are true and false, respectively, in order for a state to be considered a goal state. A plan for such a planning instance is a sequence of operators that can be executed from the initial state and that leads to a goal state. Formally, a state is a set of conditions: a state is represented by the set of conditions that are true in it. Transitions between states are modeled by a transition function, which is a function mapping states into new states that result from the execution of actions. Since states are represented by sets of conditions, the transition function relative to the STRIPS instance \langle P,O,I,G \rangle is a function : \operatorname: 2^P \times O \rightarrow 2^P, where 2^P is the set of all subsets of P, and is therefore the set of all possible states. The transition function \operatorname for a state C \subseteq P, can be defined as follows, using the simplifying assumption that actions can always be executed but have no effect if their preconditions are not met: The function \operatorname can be extended to sequences of actions by the following recursive equations: :\operatorname(C, = C :\operatorname(C, _1,a_2,\ldots,a_n=\operatorname(\operatorname(C,a_1), _2,\ldots,a_n A plan for a STRIPS instance is a sequence of actions such that the state that results from executing the actions in order from the initial state satisfies the goal conditions. Formally, _1,a_2,\ldots,a_n/math> is a plan for G = \langle N,M \rangle if F=\operatorname(I, _1,a_2,\ldots,a_n satisfies the following two conditions: :N \subseteq F :M \cap F = \varnothing


Extensions

The above language is actually the propositional version of STRIPS; in practice, conditions are often about objects: for example, that the position of a robot can be modeled by a
predicate Predicate or predication may refer to: * Predicate (grammar), in linguistics * Predication (philosophy) * several closely related uses in mathematics and formal logic: **Predicate (mathematical logic) **Propositional function **Finitary relation, o ...
At, and At(room1) means that the robot is in Room1. In this case, actions can have
free variable In mathematics, and in other disciplines involving formal languages, including mathematical logic and computer science, a free variable is a notation (symbol) that specifies places in an expression where substitution may take place and is not ...
s, which are implicitly existentially quantified. In other words, an action represents all possible propositional actions that can be obtained by replacing each free variable with a value. The initial state is considered fully known in the language described above: conditions that are not in I are all assumed false. This is often a limiting assumption, as there are natural examples of planning problems in which the initial state is not fully known. Extensions of STRIPS have been developed to deal with partially known initial states.


A sample STRIPS problem

A monkey is at location A in a lab. There is a box in location C. The monkey wants the bananas that are hanging from the ceiling in location B, but it needs to move the box and climb onto it in order to reach them. Initial state: At(A), Level(low), BoxAt(C), BananasAt(B) Goal state: Have(bananas) Actions: // move from X to Y _Move(X, Y)_ Preconditions: At(X), Level(low) Postconditions: not At(X), At(Y) // climb up on the box _ClimbUp(Location)_ Preconditions: At(Location), BoxAt(Location), Level(low) Postconditions: Level(high), not Level(low) // climb down from the box _ClimbDown(Location)_ Preconditions: At(Location), BoxAt(Location), Level(high) Postconditions: Level(low), not Level(high) // move monkey and box from X to Y _MoveBox(X, Y)_ Preconditions: At(X), BoxAt(X), Level(low) Postconditions: BoxAt(Y), not BoxAt(X), At(Y), not At(X) // take the bananas _TakeBananas(Location)_ Preconditions: At(Location), BananasAt(Location), Level(high) Postconditions: Have(bananas)


Complexity

Deciding whether any plan exists for a propositional STRIPS instance is
PSPACE-complete In computational complexity theory, a decision problem is PSPACE-complete if it can be solved using an amount of memory that is polynomial in the input length (polynomial space) and if every other problem that can be solved in polynomial space can b ...
. Various restrictions can be enforced in order to decide if a plan exists in polynomial time or at least make it an
NP-complete In computational complexity theory, a problem is NP-complete when: # it is a problem for which the correctness of each solution can be verified quickly (namely, in polynomial time) and a brute-force search algorithm can find a solution by trying ...
problem.


Macro operator

In the
monkey and banana problem Monkey is a common name that may refer to most mammals of the infraorder Simiiformes, also known as the simians. Traditionally, all animals in the group now known as simians are counted as monkeys except the apes, which constitutes an incomple ...
, the robot monkey has to execute a sequence of actions to reach the banana at the ceiling. A single action provides a small change in the game. To simplify the planning process, it make sense to invent an abstract action, which isn't available in the normal rule description. The super-action consists of low level actions and can reach high-level goals. The advantage is that the
computational complexity In computer science, the computational complexity or simply complexity of an algorithm is the amount of resources required to run it. Particular focus is given to computation time (generally measured by the number of needed elementary operations) ...
is lower, and longer tasks can be planned by the solver. Identifying new macro operators for a domain can be realized with genetic programming. The idea is, not to plan the domain itself, but in the pre-step, a heuristics is created which allows to solve the domain much faster. In the context of reinforcement learning, a macro-operator is called an option. Similar to the definition within AI planning, the idea is, to provide a temporal abstraction (span over a longer period) and to modify the game state directly on a higher layer.


See also

*
Action description language In artificial intelligence, action description language (ADL) is an automated planning and scheduling system in particular for robots. It is considered an advancement of STRIPS. Edwin Pednault (a specialist in the field of data abstraction and mod ...
(ADL) * Automated planning *
Hierarchical task network In artificial intelligence, hierarchical task network (HTN) planning is an approach to automated planning in which the dependency among actions can be given in the form of hierarchically structured networks. Planning problems are specified in the ...
* Planning Domain Definition Language (PDDL) * Sussman anomaly


References


Further reading

* C. Bäckström and B. Nebel (1995). Complexity results for SAS+ planning. ''Computational Intelligence'', 11:625-656. * T. Bylander (1991). Complexity results for planning. In ''Proceedings of the Twelfth International Joint Conference on Artificial Intelligence (IJCAI'91)'', pages 274-279. * {{DEFAULTSORT:Strips History of artificial intelligence Automated planning and scheduling SRI International software 1971 software