All Classes and Interfaces
Class
Description
An action is an
event that a planner can choose to take in
service of a goal.An
event node that represents an action.Creates a copy of a
compiled problem where the
actions have been randomly shuffled to be in
a different order.An arithmetic expression is a
numeric expression whose value
if the results of applying an arithmetic operation to two
numeric values.An arithmetic operator is a singleton object that specifies how to
combine two numeric input values into a numeric output value.
An arithmetic expansion is a
numeric expression which
represents iteratively applying an arithmetic
operator to a series of numeric expressions defined by every possible
value that can be substituted for a variable.An arithmetic expansion operator is a singleton object that specifies
how an
arithmetic operator should be applied
to a series of numeric expressions.A
cost set node representing an arithmetic expression, which has an arithmetic operator and two numeric expressions on the left
and right sides.An
iterable wrapper for an array of objects.An
iterator which iterates through each element in an
array.An implementation of
a range that uses an array to store its
values and their costs.An assignment specifies that the
fluent on its left side
should now have the value of the logical expression on
its right side.An atom is a
Proposition which cannot be further simplified (meaning
Atom.simplify() always returns this atom itself).An object for managing a large table of Java
long values, similar to
an array, but with larger capacity and able to expand dynamically.A
branching event tree whose expression is of type boolean and will have
three possible branches: one where the expression is false, one where the expression is true, and the irrelevant branch.For each possible value that the tree's
expression can have, a branching event tree provides a branch containing
the events whose preconditions require the expression to have that value,
as well as an irrelevant branch which contains the
events that do not use the expression in their preconditions.A builder converts a
parse tree into an object.A character is a special
entity that represents an intelligent
being with its own (possibly wrong) beliefs about the world state and its own
utility function that it will attempt to maximize.A clause is a
conjunction of atoms.A node which represents a
conjunctive clause, a conjunction
of atomic preconditions that must all have a finite
cost before the clause can have a finite cost.A collection of command line arguments passed to the library and utility
methods for pasring them.
A comparison is a
proposition which is true if and only
if a specific relationship exists between a left expression and a right expression.An numeric operator is an
operator which compares
expressions of type number.An operator is a singleton object that represents one of the possible
binary relationship between the left and right expressions of a
comparison.A compiled action is a
ground action which defines a unique ID number that
corresponds to the action's index in its compiled problem's set of events, whose precondition
and observation function are in disjunctive normal form, and whose effect is a clause.A compiled event is a
ground event which defines a unique ID number that corresponds to the event's index in its compiled problem's set of events, whose precondition is in disjunctive normal
form, and whose effect is a clause.A compiled fluent is a
fluent whose characters and signature are ground and which defines a
unique ID number which corresponds to the
fluent's index in its compiled problem's set
of fluents.A compiled mapping is a
mapping whose get method only accepts ground characters and which always returns ground expressions.A compiled problem is a
problem which has been pre-processed
so that its fluents are compiled fluents, so that its
events are compiled events, and so that it defines a
full a state state.A compiled trigger is a
ground trigger which defines a unique ID number that
corresponds to the trigger's index in its compiled problem's set of events, whose precondition
is in disjunctive normal form, and whose effect is a clause.A conditional is a
logical expression which can have one
of several possible values depending on which of its
Boolean conditions evaluates to true.A conjunction is a
proposition made up of zero to many
arguments (or conjuncts) which are expressions of type
boolean and must all evaluate
to true for the conjunction to be true.Creates a copy of a
compiled problem where all of
its actions have preconditions that require
all of the action's consenting
characters to believe the action is possible.A
builder which always returns the same object regardless of
what input it receives.A
cost set node representing a single
value, where that value always costs 0 and all other values
always cost positive infinity.A
heuristic graph node that represents a Boolean proposition
and the cost of that proposition being true.A cost set is a collection of
values where each is associated
with a numeric cost.An interface for anything with an integer
Countable.size().A
parser which defines rules and builders for parsing many
kinds of common objects, including problems and logical formulas.A
printer which defines object
printers for many kinds of common objects, including problems, logical formulas, and plans.A
builder which returns a defined
object.A set of objects which have been defined and which may be referenced while
building an object from a parse tree.A disjunction is a
proposition made up of zero to many
arguments (or disjuncts) which are expressions of type
boolean such that at least one of them must evaluate to true for the
disjunction to be true.A node which represents a logical expression in
disjunctive normal
form, a disjunction of conjunctive clauses where at least
one clause must have a finite cost before the disjunction can have a finite
cost.Dummy actions are special
actions which are sometimes created
to update a state when a traditional action occurs.An directed edge in a
state graph extends from a parent node to a child node and has a label explaining the meaning of the transition.An effect is an
atomic assignment that must
have a fluent on the left side, a valued expression on the right side, and a condition in in disjunctive
normal form under which the assignment would occur.A node which represents an
atomic effect of an event.An entity represents a discrete object in a
problem.A
branching event tree whose expression is a fluent of type
entity and will have several possible branches: one for each possible value
the fluent could have, one where the fluent's value is unknown, and the irrelevant branch.An epistemic expression is a
logical expression about
what an character believes the value
of a logical expression to be.A node which represents an
event, which has a precondition that must have a finite cost before it can occur
and effects which may cause other nodes to take on finite
values.An
immutable set of ground events
which does not initially build an event tree, but allows
one to be built later and the result cached.A factory object used to build an
event tree from a set
of events.A wrapper around a
status object used by an event tree builder to keep track of how many branches
of an event tree have been built.All exceptions are generated from this utility class so that exception
messages can be kept in one place for easy comparison and modification.
Explanation-first search is a type of
progression
search that requires every action in a plan to be explained before it will consider
adding additional actions to the plan.A finite state is a
state which can return the beliefs of any character
as a state object, such that the graph of all states is finite.Adds additional
compiled fluents and compiled triggers to a compiled
problem to make it easier to check when trigger apply in a state.A format exception is thrown when an object defined in a
planning problem is constructed in an illegal way.An
cost set node whose logical formula appears as a smaller part of some larger formula and which
needs to notify the node representing that larger formula when its gains new
values.Goal-first search is a type of
progression search
that requires a plan to achieve its goal before attempting to explain its
actions.A
cost function, meant to be used as a heuristic in a heuristic progression search, which uses a heuristic
graph to estimate how many more actions would need to be taken in some state
before a character's utility can be improved.A
max graph heuristic that calculates an
admissible lower bound on the cost of raising the node's character's utility.A
progression cost function that uses a max heuristic graph.A
progression cost function that uses a sum heuristic graph.Replaces all templates in a
problem, such as fluents and events, with Logical.isGround()
instances, such as ground fluents and ground events.An implementation of the
substitution interface backed
by a hash map.A
plan which is built by prepending actions on to the
beginning.A heuristic graph is a data structure that represents the relationships
between
propositions and
events in a ground problem to enable
various kinds of analysis.A wrapper around a Java
array that makes it read-only and provides
some additional helpful methods.A singly-linked list whose structure cannot be modified.
An
ImmutableArray which contains no duplicates.A
span of numeric values (and their associated costs) which
automatically expands to include the value positive infinity any time its upper bound increases and automatically
expands to include the value negative
infinity any time its lower bound decreases.An initial state is a
finite state which uses a logical expression to explicitly set the values of some fluents
and then assumes default values for all other fluents.A keyword is a
terminal symbol which matches exactly one token that must have a specified string value.A list for holding elements of a
HeuristicGraph heuristic graph.An
iterator for iterating through an ImmutableList.A logical formula is an atomic or complex logical proposition or the pieces
which make up a logical proposition.
A function which takes as input a
character and returns a
logical expression relevant to that character.A mapping defined by an
expression that contains a
variable representing a character.A max graph is a
heuristic graph where the cost of a
conjunction is defined to be
the maximum cost of and of its conjuncts.A memory budget is used to track how much memory a data structure has used
and prevent it from going over a defined limit.
The parent class of all
heuristic graph nodes.A
fluent node representing a non-numeric fluent, which is any fluent that has a discrete, finite set of
possible values.Represents numbers (using the Java
double data type) as values.A numeric expression is a
logical expression of type
number.A
fluent node representing a numeric fluent, which is any fluent that has a potentially infinite range of number values.An object printer defines how an object should be converted to text.
A parse exception is thrown when some failure occurs while
parsing an object.A parser converts text into objects according to rules.
A pattern determines whether a sequence of
tokens matches the
expected format to be parsed as an object.A plan is a sequence of
actions.A planner is a configurable factory object for producing
searches that solve planning problems by generating plans.A precondition is an
atomic comparison
which must have one of two formats: a variable on the left
and a parameter on the right, or a fluent on the left and a valued
expression on the right.A node which represents an
atomic precondition, which
is a comparison between a
fluent on the left and a value on the
right.A special
fluent object that may be created when reasoning
about beliefs and compiled fluents.A printer accepts any object as input and converts it to a text
representation.
Represents all the definitions needed to define a full planning task.
A problem builder assists in defining a
planning problem by
enforcing requirements on the various parts needed to define a problem.A problem compiler is a data structure for converting
fluents, events, and logical expressions into compiled fluents, compiled events, and logical expressions using compiled
elements.A progress object provides a convenient way to track whether a
search has finished, its result, how many nodes it has visited and
generated, and how much time has elapsed.A function used to measure the cost of a
search node
during a progression search.A factory object that creates
progression cost
objects.A progression node represents a node in a
search
space and its context in a progression search,
such as the temporal and epistemic depth at which the node exists in that
search.A progression
planner is a configurable factory object that
creates progression search objects for compiled problems.The types of progression search
A progression
search is a forward search through the space of
states that starts as a specified initial state and runs until its finds a solution plan which increases the author's utility to or above a
specified goal value and for which every action in the plan makes sense based on the beliefs and
intentions of the characters who take that
action.A progression space is a method of implementing the graph of states that is
searched by a
progression search.A progression tree is a large table that stores the data for each node of a
progression search
through the space of states.A
progression state space modeled as a tree, meaning
that the model makes no attempt to recognize when a duplicate state has been
generated.A proposition is a
logical expression of type
boolean.A quantified expression is a
proposition which states
that a given Quantified.argument proposition holds for some number of possible
values that can be substituted for a Quantified.variable.A quantifier is a singleton object that specifies for how many possible
values a
quantifier's proposition must hold.A range is a
cost set that defines protected methods for
setting the cost of a value and resetting the range to its original state.The reachability heuristic is a
cost function,
meant to be used as the heuristic in a
heuristic progression search, which checks only the
roots of a search to determine if it is
possible for them to achieve their goals.A
function which maps some logical expressions to simpler
expressions based on a leveled off heuristic graph.A
graph cost function, meant to be used as the heuristic in a heuristic progression search, which solves a relaxed version of the planning
problem and uses the cost of the solution to that relaxed problem as an
approximation of the cost of solving the real problem.The repeated node heuristic is a wrapper around a
cost
function that can improve the efficiency of a heuristic progression search by preventing it from revisiting the same node
multiple times.A
factory for producing repeated node heuristics.The repeated root heuristic is similar to the
repeated node heuristic, except that it only prevents a heuristic progression search from reusing the same node
as a root in the search.A
factory for producing repeated root heuristics.A result object summarizes information about the outcome of a
search (like the solution it found) and the effort spent
reaching that outcome (like the number of nodes visited and
the time spent searching).A search represents the process of finding one or more
plans
that are solutions to a planning problem.A search exception is a
RuntimeException that will be caught if it
is thrown while a search is running.A parsing
pattern that attempts to match a sequence of
tokens to any pattern in an ordered list of
patterns.A sentinel is a parsing
pattern composed of a sequence of patterns such that two non-keyword patterns
never appear next to one another.Important settings and keywords.
A signature is a name followed by an ordered list of zero to many
arguments.An interface for anything which has a
Signature.A simplifiable
logical formula is one which can possibly be
converted into a logically equivalent but smaller, simpler, or more
convenient form via the Simplifiable.simplify() method.First applies any
triggers that are satisfied in a problem's
initial state and then removes compiled events which can never occur and propositions which
are always true or always false from a compiled
problem, possibly making it smaller and simpler.A single is a
terminal symbol that matches exactly one
token.A solution is a
plan for an character to
achieve a goal that also includes explanations for every action in the plan.A solution iterator iterates through the actions in a
solution.An empty
solution that specifies an character and goal and can be used as a starting point for building
non-empty solutions by prepending actions.A state graph is made up of
nodes which are world states that are liked by two kinds of
edges: epistemic edges that define what each character believes the world state to be, and temporal edges that define how the world state changes as a result of
an event.A state node represents an assignment of a
value to every
fluent tracked by a state graph as well as the
beliefs of every character tracked by the
graph.A substitution is a
function which maps one set of objects
to other objects that will replace them.A sum graph is a
heuristic graph where the cost of a
conjunction is defined to be
the sum of the cost of its conjuncts.There are two kinds of symbols that can be used to define a grammar for a
parser to follow: terminal symbols that
represent primitive elements that cannot be broken down any further and
non-terminal symbols that represent complex patterns
that can be broken down further.A
plan which is built by appending actions on to the end.A token is a single unit of input text, such as a keyword, symbol, bracket,
string literal, number, or operator.
Represents the three basic operations the tokenizer can perform while
processing input text.
A trigger is an
event that must occur when its precondition is
satisfied.An
event node representing a trigger.Types provide a way to group values, to express relationships between
values, and to define which values are legal for variables and properties.
A typed formula is a
logical formula that has a type.A unique object is one of a collection whose
hash codes
are unique, sequential integers starting at 0.A unique map uses
Unique objects as keys and maps each key to a
value.A universe is the collection of all the things in a
planning
problem, specifically all the entities and the types of those entities.Unknown is a
value that represents a missing or empty value.A collection of miscellaneous utility methods.
A value is a
logical expression which evaluates to
itself.A variable is a placeholder for a
value.A weighted cost is a wrapper around a
cost function
that multiplies a cost by a fixed constant.A
factory for creating weighted cost functions.Worker provides a convenient way to run long, time-consuming processes that
provide occasional updates on their progress.
A getter is a
Worker whose long-running process returns a value.A runner is a
Worker whose long-running process does not return
a value.A status object stores the message that will be displayed occasionally
as a long-running process runs; the process should update this message
to reflect its current status.