AI 24/25 Project Software
Documentation for the AI 24/25 course programming project software
Loading...
Searching...
No Matches
delegating_task.h
1#ifndef PROBFD_TASKS_DELEGATING_TASK_H
2#define PROBFD_TASKS_DELEGATING_TASK_H
3
4#include "probfd/probabilistic_task.h" // IWYU pragma: export
5
6#include "probfd/value_type.h"
7
8#include <memory>
9#include <string>
10#include <vector>
11
12namespace probfd::tasks {
13
14class DelegatingTask : public ProbabilisticTask {
15protected:
16 const std::shared_ptr<ProbabilisticTask> parent_;
17
18public:
19 explicit DelegatingTask(const std::shared_ptr<ProbabilisticTask>& parent);
20
21 value_t get_non_goal_termination_cost() const override;
22
23 int get_num_variables() const override;
24 std::string get_variable_name(int var) const override;
25 int get_variable_domain_size(int var) const override;
26 int get_variable_axiom_layer(int var) const override;
27 int get_variable_default_axiom_value(int var) const override;
28 std::string get_fact_name(const FactPair& fact) const override;
29 bool are_facts_mutex(const FactPair& fact1, const FactPair& fact2)
30 const override;
31
32 int get_num_axioms() const override;
33
34 std::string get_axiom_name(int index) const override;
35 int get_num_axiom_preconditions(int index) const override;
36 FactPair
37 get_axiom_precondition(int op_index, int fact_index) const override;
38 int get_num_axiom_effects(int op_index) const override;
39 int
40 get_num_axiom_effect_conditions(int op_index, int eff_index) const override;
41 FactPair
42 get_axiom_effect_condition(int op_index, int eff_index, int cond_index)
43 const override;
44 FactPair get_axiom_effect(int op_index, int eff_index) const override;
45
46 value_t get_operator_cost(int index) const override;
47 std::string get_operator_name(int index) const override;
48 int get_num_operators() const override;
49 int get_num_operator_preconditions(int index) const override;
50 FactPair
51 get_operator_precondition(int op_index, int fact_index) const override;
52
53 int get_num_goals() const override;
54 FactPair get_goal_fact(int index) const override;
55
56 std::vector<int> get_initial_state_values() const override;
57
58 void convert_ancestor_state_values(
59 std::vector<int>& values,
60 const PlanningTask* ancestor_task) const override;
61
62 int convert_operator_index(int index, const PlanningTask* ancestor_task)
63 const override;
64
65 int get_num_operator_outcomes(int op_index) const override;
66
67 value_t get_operator_outcome_probability(int op_index, int outcome_index)
68 const override;
69
70 int get_operator_outcome_id(int op_index, int outcome_index) const override;
71
72 int get_num_operator_outcome_effects(int op_index, int outcome_index)
73 const override;
74
75 FactPair
76 get_operator_outcome_effect(int op_index, int outcome_index, int eff_index)
77 const override;
78
79 int get_num_operator_outcome_effect_conditions(
80 int op_index,
81 int outcome_index,
82 int eff_index) const override;
83
84 FactPair get_operator_outcome_effect_condition(
85 int op_index,
86 int outcome_index,
87 int eff_index,
88 int cond_index) const override;
89
90 virtual void convert_state_values_from_parent(std::vector<int>&) const {}
91
92 virtual int convert_operator_index_to_parent(int index) const
93 {
94 return index;
95 }
96};
97
98} // namespace probfd::tasks
99
100#endif // PROBFD_TASKS_DELEGATING_TASK_H
This namespace contains implementations of probabilistic planning tasks.
Definition cost_adapted_task.h:12
double value_t
Typedef for the state value type.
Definition aliases.h:7