AI 24/25 Project Software
Documentation for the AI 24/25 course programming project software
Loading...
Searching...
No Matches
probabilistic_successor_generator.h
1#ifndef PROBFD_TASK_UTILS_PROBABILISTIC_SUCCESSOR_GENERATOR_H
2#define PROBFD_TASK_UTILS_PROBABILISTIC_SUCCESSOR_GENERATOR_H
3
4#include <memory>
5#include <vector>
6
7// Forward Declarations
8class OperatorID;
9class State;
10class PlanningTaskProxy;
11
12namespace probfd {
13class TaskStateSpace;
14template <typename>
15struct Transition;
16} // namespace probfd
17
18namespace probfd::successor_generator {
19class ProbabilisticGeneratorBase;
20}
21
22namespace probfd::successor_generator {
23class ProbabilisticSuccessorGenerator {
24 std::unique_ptr<ProbabilisticGeneratorBase> root_;
25
26public:
27 explicit ProbabilisticSuccessorGenerator(
28 const PlanningTaskProxy& task_proxy);
29 /*
30 We cannot use the default destructor (implicitly or explicitly)
31 here because GeneratorBase is a forward declaration and the
32 incomplete type cannot be destroyed.
33 */
34 ~ProbabilisticSuccessorGenerator();
35
36 void generate_applicable_ops(
37 const State& state,
38 std::vector<OperatorID>& applicable_ops) const;
39
40 void generate_transitions(
41 const State& state,
42 std::vector<Transition<OperatorID>>& transitions,
43 TaskStateSpace& task_state_space) const;
44};
45
46} // namespace probfd::successor_generator
47
48#endif
The top-level namespace of probabilistic Fast Downward.
Definition command_line.h:8