1#ifndef PROBFD_TASK_STATE_SPACE_H
2#define PROBFD_TASK_STATE_SPACE_H
4#include "probfd/task_utils/probabilistic_successor_generator.h"
6#include "probfd/fdr_types.h"
8#include "probfd/task_proxy.h"
9#include "probfd/types.h"
10#include "probfd/value_type.h"
12#include "downward/utils/logging.h"
14#include "downward/state_registry.h"
15#include "downward/task_proxy.h"
36 unsigned long long single_transition_generator_calls = 0;
37 unsigned long long all_transitions_generator_calls = 0;
38 unsigned long long aops_generator_calls = 0;
40 unsigned long long generated_operators = 0;
41 unsigned long long generated_states = 0;
43 unsigned long long aops_computations = 0;
44 unsigned long long computed_operators = 0;
46 unsigned long long transition_computations = 0;
47 unsigned long long computed_successors = 0;
49 void print(utils::LogProxy log)
const;
53 ProbabilisticTaskProxy task_proxy_;
54 mutable utils::LogProxy log_;
56 StateRegistry state_registry_;
57 successor_generator::ProbabilisticSuccessorGenerator gen_;
59 const std::vector<std::shared_ptr<::Evaluator>> notify_;
61 Statistics statistics_;
65 std::shared_ptr<ProbabilisticTask> task,
67 std::vector<std::shared_ptr<::Evaluator>> path_dependent_evaluators =
70 StateID get_state_id(
const State& state)
final;
71 State get_state(StateID state_id)
final;
73 void generate_applicable_actions(
75 std::vector<OperatorID>& result)
override;
77 void generate_action_transitions(
79 OperatorID operator_id,
80 Distribution<StateID>& result)
override;
82 void generate_all_transitions(
84 std::vector<OperatorID>& aops,
85 std::vector<Distribution<StateID>>& successors)
override;
87 void generate_all_transitions(
89 std::vector<TransitionType>& transitions)
override;
91 const State& get_initial_state();
93 size_t get_num_registered_states()
const;
95 virtual void print_statistics()
const;
97 void compute_successor_dist(
100 Distribution<StateID>& successors);
104 compute_applicable_operators(
const State& s, std::vector<OperatorID>& ops);
A convenience class that represents a finite probability distribution.
Definition task_state_space.h:27
Represents a probabilistic planning task with axioms and conditional effects.
Definition probabilistic_task.h:19
An interface representing a Markov Decision Process (MDP) without objective function.
Definition state_space.h:44
The top-level namespace of probabilistic Fast Downward.
Definition command_line.h:8