AI 24/25 Project Software
Documentation for the AI 24/25 course programming project software
|
The top-level namespace of probabilistic Fast Downward.
Namespaces | |
namespace | algorithms |
This namespace contains implementations of SSP search algorithms. | |
namespace | bisimulation |
This namespace contains the implementation of deterministic bisimulation quotients for SSPs, based on merge-and-shrink. | |
namespace | graphviz |
This namespace contains code used for dumping search spaces as dot graphs. | |
namespace | heuristics |
This namespace contains heuristic implementations. | |
namespace | iterators |
Namespace dedicated to custom iterators. | |
namespace | occupation_measures |
Namespace dedicated to occupation measure heuristic base classes. | |
namespace | open_lists |
This namespace contains implementations of open lists. | |
namespace | pdbs |
Namespace dedicated to probabilistic pattern databases. | |
namespace | preprocessing |
This namespace contains preprocessing algorithms for SSPs. | |
namespace | solvers |
This namespace contains the solver interface base class for various search algorithms. | |
namespace | storage |
This namespace contains commonly used storage and container types. | |
namespace | successor_samplers |
This namespace contains implementations of transition successor samplers. | |
namespace | tasks |
This namespace contains implementations of probabilistic planning tasks. | |
Classes | |
struct | approx_eq_to |
Unary function object for approximate equality comparison. More... | |
struct | approx_less |
Unary function object for approximate inequality comparison. More... | |
struct | approx_neq_to |
Unary function object for approximate inequality comparison. More... | |
struct | CompositeMDP |
Composes a state space and a cost function to an MDP. More... | |
class | CostFunction |
The interface specifying action and state termination costs, aswell as the goal states of a state space. More... | |
class | Distribution |
A convenience class that represents a finite probability distribution. More... | |
class | Evaluator |
The interface representing heuristic functions. More... | |
struct | Interval |
Represents a closed interval over the extended reals as a pair of lower and upper bound. More... | |
class | ItemProbabilityPair |
An item-probability pair. More... | |
class | MDP |
Basic interface for MDPs. More... | |
class | MDPAlgorithm |
Interface for MDP algorithm implementations. More... | |
class | MultiPolicy |
Represents a policy that can specify a set of actions for a state. More... | |
struct | no_normalize_t |
Disambiguator tag type. More... | |
struct | overloaded |
class | Policy |
Represents a deterministic, stationary, partial policy. More... | |
struct | PolicyDecision |
Stores an action and a bounding interval for the Q* value of this action. More... | |
class | ProbabilisticEffectConditionsProxy |
Proxy class used to inspect the list of effect conditions of a conditional effect of a probabilistic operator. Can be used as a range of FactProxies, one for each effect condition. More... | |
class | ProbabilisticEffectProxy |
Proxy class used to inspect a probabilistic effect of a probabilistic operator. More... | |
class | ProbabilisticEffectsProxy |
Proxy class used to inspect the list of probabilistic effects of a probabilistic operator. Can be used as a range of ProbabilisticEffectProxies, one for each probabilistic effect. More... | |
class | ProbabilisticOperatorProxy |
Proxy class used to inspect a single probabilistic operator. More... | |
class | ProbabilisticOperatorsProxy |
Proxy class used to inspect a list of probabilistic operators of a probabilistic task. Can be used as a range of ProbabilisticOperatorProxies, one for each probabilistic operator. More... | |
class | ProbabilisticOutcomeProxy |
Proxy class used to inspect a single probabilistic outcome of a probabilistic operator. More... | |
class | ProbabilisticOutcomesProxy |
Proxy class used to inspect the list of probabilistic outcomes of a probabilistic operator. Can be used as a range of ProbabilisticOutcomeProxies, one for each probabilistic outcome. More... | |
class | ProbabilisticTask |
Represents a probabilistic planning task with axioms and conditional effects. More... | |
class | ProbabilisticTaskProxy |
Proxy class used to inspect a probabilistic planning task. More... | |
class | ProgressReport |
A registry for print functions related to search progress. More... | |
class | SimpleMDP |
Basic interface for MDPs. More... | |
class | SolverInterface |
An interface that describes an MDP solver. More... | |
struct | StateID |
A StateID represents a state within a StateIDMap. Just like Fast Downward's StateID type, it is trivial to copy and intended for long term storage. More... | |
class | StateSpace |
An interface representing a Markov Decision Process (MDP) without objective function. More... | |
class | TerminationInfo |
Specifies the termination cost and goal status of a state. More... | |
Typedefs | |
using | FDROpenList = algorithms::OpenList<OperatorID> |
Type alias for OpenLists for MDPs in FDR. | |
using | FDRPolicyPicker = algorithms::PolicyPicker<State, OperatorID> |
Type alias for policy pickers for MDPs in FDR. | |
using | FDRTransitionSorter = algorithms::TransitionSorter<State, OperatorID> |
Type alias for TransitionSorters for MDPs in FDR. | |
using | value_t = double |
Typedef for the state value type. | |
using | FDRStateSpace = StateSpace<State, OperatorID> |
Type alias for state spaces in FDR. | |
using | FDRCostFunction = SimpleCostFunction<State, OperatorID> |
Type alias for cost functions for MDPs in FDR. | |
using | FDRSimpleCostFunction = SimpleCostFunction<State, OperatorID> |
Type alias for simple cost functions for MDPs in FDR. | |
using | FDRMDP = MDP<State, OperatorID> |
Type alias for MDPs with states in FDR. | |
using | FDRSimpleMDP = SimpleMDP<State, OperatorID> |
Type alias for simple MDPs with states in FDR. | |
using | FDREvaluator = Evaluator<State> |
Type alias for evaluators for states in FDR. | |
using | Printer = std::function<void(std::ostream&)> |
A function that prints something to an output stream. | |
using | BoundProperty = std::function<Interval()> |
A function that produces a state value bound. | |
template<typename T > | |
using | param_type |
Alias template defining the best way to pass a parameter of a given type. | |
Functions | |
std::string | usage (const std::string &progname) |
Returns a string documenting usage of the planner. Receives the program name as input. | |
template<typename State , typename Action > | |
void | compute_value_table (MDP< State, Action > &mdp, param_type< State > initial_state, const Evaluator< State > &heuristic, std::span< value_t > value_table, double max_time=std::numeric_limits< double >::infinity()) |
Computes the optimal value function of the abstraction, complete up to forward reachability from the initial state. | |
template<typename State , typename Action > | |
std::unique_ptr< MultiPolicy< State, Action > > | compute_optimal_projection_policy (MDP< State, Action > &mdp, std::span< const value_t > value_table, param_type< State > initial_state, utils::RandomNumberGenerator &rng, bool wildcard) |
Extract an abstract optimal policy from the value table. | |
template<typename State , typename Action > | |
std::unique_ptr< MultiPolicy< State, Action > > | compute_greedy_projection_policy (MDP< State, Action > &mdp, std::span< const value_t > value_table, param_type< State > initial_state, utils::RandomNumberGenerator &rng, bool wildcard) |
Extracts an abstract greedy policy from the value table, which may not be optimal if traps are existent. | |
template<typename State , typename Action > | |
void | verify (MDP< State, Action > &mdp, std::span< const value_t > value_table, lp::LPSolverType type) |
Computes the optimal value function of the abstraction, complete up to forward reachability from the initial state. | |
Interval | operator+ (Interval lhs, Interval rhs) |
Computes the component-wise addition of two intervals. | |
Interval | operator* (value_t scale_factor, Interval val) |
Scales an interval. | |
Interval | operator* (Interval val, value_t scale_factor) |
Scales an interval. | |
std::ostream & | operator<< (std::ostream &os, Interval val) |
Stream output operator. Prints '[<val.lower>,<val.upper>]'. | |
bool | does_fire (const ProbabilisticEffectProxy &effect, const State &state) |
Checks if the conditions of a probabilistic effect are fulfilled in a state. | |
constexpr value_t | operator""_vt (long double value) |
User-defined floating-point literals for state values. | |
constexpr value_t | operator""_vt (unsigned long long value) |
User-defined integer literals for state values. | |
bool | is_approx_equal (value_t v1, value_t v2, value_t epsilon=g_epsilon) |
Equivalent to \(|v_1 - v_2| \leq \epsilon\). | |
bool | is_approx_less (value_t v1, value_t v2, value_t epsilon=g_epsilon) |
Equivalent to \(v_2 - v_1 > \epsilon\). | |
bool | is_approx_greater (value_t v1, value_t v2, value_t epsilon=g_epsilon) |
Equivalent to \(v_1 - v_2 > \epsilon\). | |
Variables | |
constexpr no_normalize_t | no_normalize = no_normalize_t{} |
Disambiguator tag for Distribution constructor to indicate that the probabilities are already normalized to one. | |
value_t | g_epsilon |
The default tolerance value for approximate comparisons. | |
using probfd::FDROpenList = algorithms::OpenList<OperatorID> |
Type alias for OpenLists for MDPs in FDR.
using probfd::FDRPolicyPicker = algorithms::PolicyPicker<State, OperatorID> |
Type alias for policy pickers for MDPs in FDR.
using probfd::FDRTransitionSorter = algorithms::TransitionSorter<State, OperatorID> |
Type alias for TransitionSorters for MDPs in FDR.
using probfd::value_t = double |
Typedef for the state value type.
using probfd::FDRStateSpace = StateSpace<State, OperatorID> |
Type alias for state spaces in FDR.
using probfd::FDRCostFunction = SimpleCostFunction<State, OperatorID> |
Type alias for cost functions for MDPs in FDR.
using probfd::FDRSimpleCostFunction = SimpleCostFunction<State, OperatorID> |
Type alias for simple cost functions for MDPs in FDR.
using probfd::FDRMDP = MDP<State, OperatorID> |
Type alias for MDPs with states in FDR.
using probfd::FDRSimpleMDP = SimpleMDP<State, OperatorID> |
Type alias for simple MDPs with states in FDR.
using probfd::FDREvaluator = Evaluator<State> |
Type alias for evaluators for states in FDR.
using probfd::Printer = std::function<void(std::ostream&)> |
A function that prints something to an output stream.
using probfd::BoundProperty = std::function<Interval()> |
A function that produces a state value bound.
using probfd::param_type |
Alias template defining the best way to pass a parameter of a given type.
|
extern |
Returns a string documenting usage of the planner. Receives the program name as input.
void probfd::compute_value_table | ( | MDP< State, Action > & | mdp, |
param_type< State > | initial_state, | ||
const Evaluator< State > & | heuristic, | ||
std::span< value_t > | value_table, | ||
double | max_time = std::numeric_limits<double>::infinity() ) |
Computes the optimal value function of the abstraction, complete up to forward reachability from the initial state.
std::unique_ptr< MultiPolicy< State, Action > > probfd::compute_optimal_projection_policy | ( | MDP< State, Action > & | mdp, |
std::span< const value_t > | value_table, | ||
param_type< State > | initial_state, | ||
utils::RandomNumberGenerator & | rng, | ||
bool | wildcard ) |
Extract an abstract optimal policy from the value table.
Tie-breaking is performed randomly using the input RNG. If the wildcard
option is specified, a wildcard policy will be returned, i.e., a policy that assigns multiple equivalent operators to an abstract state.
std::unique_ptr< MultiPolicy< State, Action > > probfd::compute_greedy_projection_policy | ( | MDP< State, Action > & | mdp, |
std::span< const value_t > | value_table, | ||
param_type< State > | initial_state, | ||
utils::RandomNumberGenerator & | rng, | ||
bool | wildcard ) |
Extracts an abstract greedy policy from the value table, which may not be optimal if traps are existent.
Tie-breaking is performed randomly using the input RNG. If the wildcard
option is specified, a wildcard policy will be returned, i.e., a policy that assigns multiple equivalent operators to an abstract state.
void probfd::verify | ( | MDP< State, Action > & | mdp, |
std::span< const value_t > | value_table, | ||
lp::LPSolverType | type ) |
Computes the optimal value function of the abstraction, complete up to forward reachability from the initial state.
Computes the component-wise addition of two intervals.
lhs | - An interval \([a_1, b_1]\) |
rhs | - An interval \([a_2, b_2]\) |
Scales an interval.
scale_factor | - The scaling factor \(n\) |
val | - An interval \([a, b]\) |
Scales an interval.
scale_factor | - The scaling factor \(n\) |
val | - An interval \([a, b]\) |
std::ostream & probfd::operator<< | ( | std::ostream & | os, |
Interval | val ) |
Stream output operator. Prints '[<val.lower>,<val.upper>]'.
bool probfd::does_fire | ( | const ProbabilisticEffectProxy & | effect, |
const State & | state ) |
Checks if the conditions of a probabilistic effect are fulfilled in a state.
|
constexpr |
User-defined floating-point literals for state values.
|
constexpr |
User-defined integer literals for state values.
Equivalent to \(|v_1 - v_2| \leq \epsilon\).
Equivalent to \(v_2 - v_1 > \epsilon\).
Equivalent to \(v_1 - v_2 > \epsilon\).
|
inlineconstexpr |
Disambiguator tag for Distribution constructor to indicate that the probabilities are already normalized to one.
|
extern |
The default tolerance value for approximate comparisons.