AI 24/25 Project Software
Documentation for the AI 24/25 course programming project software
Loading...
Searching...
No Matches
determinization_task.h
1#ifndef PROBFD_TASKS_DETERMINIZATION_TASK_H
2#define PROBFD_TASKS_DETERMINIZATION_TASK_H
3
4#include "downward/abstract_task.h"
5
6#include <string>
7#include <utility>
8#include <vector>
9
10// Forward Declarations
11namespace probfd {
12class ProbabilisticTask;
13}
14
15namespace probfd::tasks {
16
27class DeterminizationTask final : public AbstractTask {
28 std::shared_ptr<ProbabilisticTask> parent_task_;
29
30 std::vector<std::pair<int, int>> det_to_prob_index_;
31
32public:
36 std::shared_ptr<ProbabilisticTask> parent_task);
37
38 ~DeterminizationTask() final = default;
39
40 int get_num_variables() const final;
41
42 std::string get_variable_name(int var) const final;
43
44 int get_variable_domain_size(int var) const final;
45
46 int get_variable_axiom_layer(int var) const final;
47
48 int get_variable_default_axiom_value(int var) const final;
49
50 std::string get_fact_name(const FactPair& fact) const final;
51
52 bool
53 are_facts_mutex(const FactPair& fact1, const FactPair& fact2) const final;
54
55 int get_num_axioms() const final;
56
57 std::string get_axiom_name(int index) const final;
58
59 int get_num_axiom_preconditions(int index) const final;
60
61 FactPair get_axiom_precondition(int op_index, int fact_index) const final;
62
63 int get_num_axiom_effects(int op_index) const final;
64
65 int
66 get_num_axiom_effect_conditions(int op_index, int eff_index) const final;
67
68 FactPair
69 get_axiom_effect_condition(int op_index, int eff_index, int cond_index)
70 const final;
71
72 FactPair get_axiom_effect(int op_index, int eff_index) const final;
73
74 int get_operator_cost(int index) const final;
75
76 std::string get_operator_name(int index) const final;
77
78 int get_num_operators() const final;
79
80 int get_num_operator_preconditions(int index) const final;
81
82 FactPair
83 get_operator_precondition(int op_index, int fact_index) const final;
84
85 int get_num_operator_effects(int op_index) const final;
86
87 int
88 get_num_operator_effect_conditions(int op_index, int eff_index) const final;
89
90 FactPair
91 get_operator_effect_condition(int op_index, int eff_index, int cond_index)
92 const final;
93
94 FactPair get_operator_effect(int op_index, int eff_index) const final;
95
96 int get_num_goals() const final;
97
98 FactPair get_goal_fact(int index) const final;
99
100 std::vector<int> get_initial_state_values() const final;
101
102 void convert_ancestor_state_values(
103 std::vector<int>&,
104 const PlanningTask* ancestor_task) const final;
105
106 int convert_operator_index(int index, const PlanningTask* ancestor_task)
107 const final;
108
109private:
110 std::pair<int, int>
111 get_parent_indices(int deterministic_operator_index) const;
112};
113
114} // namespace probfd::tasks
115
116#endif
Deterministic planning task representing the all-outcomes determinization of a probabilistic planning...
Definition determinization_task.h:27
DeterminizationTask(std::shared_ptr< ProbabilisticTask > parent_task)
Constructs the all-outcomes determinization of the input probabilistic planning task.
This namespace contains implementations of probabilistic planning tasks.
Definition cost_adapted_task.h:12
The top-level namespace of probabilistic Fast Downward.
Definition command_line.h:8
STL namespace.