AI 24/25 Project Software
Documentation for the AI 24/25 course programming project software
Loading...
Searching...
No Matches
task_proxy.h
1#ifndef PROBFD_TASK_PROXY_H
2#define PROBFD_TASK_PROXY_H
3
4#include "probfd/value_type.h"
5
6#include "downward/operator_id.h"
7
8#include "downward/task_proxy.h"
9
10// Forward Declarations
11namespace probfd {
12class ProbabilisticEffectProxy;
13class ProbabilisticEffectConditionsProxy;
14class ProbabilisticEffectsProxy;
15
16class ProbabilisticOperatorProxy;
17class ProbabilisticOperatorsProxy;
18
19class ProbabilisticOutcomeProxy;
20class ProbabilisticOutcomesProxy;
21
22class ProbabilisticTaskProxy;
23class ProbabilisticTask;
24} // namespace probfd
25
26namespace probfd::causal_graph {
27class ProbabilisticCausalGraph;
28}
29
30namespace probfd {
31
36 : public ProxyCollection<ProbabilisticEffectConditionsProxy> {
37 const ProbabilisticTask* task_;
38
39 int op_index_;
40 int outcome_index_;
41 int eff_index_;
42
43public:
45 const ProbabilisticTask& task,
46 int op_index,
47 int outcome_index,
48 int eff_index);
49
51 [[nodiscard]]
52 std::size_t size() const;
53
55 FactProxy operator[](std::size_t index) const;
56};
57
61 const ProbabilisticTask* task_;
62 int op_index_;
63 int outcome_index_;
64 int eff_index_;
65
66public:
68 const ProbabilisticTask& task,
69 int op_index,
70 int outcome_index,
71 int eff_index);
72
74 [[nodiscard]]
76
78 [[nodiscard]]
79 FactProxy get_fact() const;
80};
81
86 : public ProxyCollection<ProbabilisticEffectsProxy> {
87 const ProbabilisticTask* task_;
88 int op_index_;
89 int outcome_index_;
90
91public:
93 const ProbabilisticTask& task,
94 int op_index,
95 int outcome_index);
96
98 [[nodiscard]]
99 std::size_t size() const;
100
102 ProbabilisticEffectProxy operator[](std::size_t eff_index) const;
103};
104
108 const ProbabilisticTask* task_;
109 int op_index_;
110 int outcome_index_;
111
112public:
114 const ProbabilisticTask& task,
115 int op_index,
116 int outcome_index);
117
119 [[nodiscard]]
121
123 [[nodiscard]]
125
127 [[nodiscard]]
129
131 [[nodiscard]]
133};
134
139 : public ProxyCollection<ProbabilisticOutcomesProxy> {
140 const ProbabilisticTask* task_;
141 int op_index_;
142
143public:
144 ProbabilisticOutcomesProxy(const ProbabilisticTask& task, int op_index);
145
147 [[nodiscard]]
149
151 [[nodiscard]]
152 std::size_t size() const;
153
155 ProbabilisticOutcomeProxy operator[](std::size_t eff_index) const;
156};
157
159class ProbabilisticOperatorProxy : public PartialOperatorProxy {
160public:
161 ProbabilisticOperatorProxy(const ProbabilisticTask& task, int index);
162
164 [[nodiscard]]
166
168 [[nodiscard]]
170};
171
176 : public ProxyCollection<ProbabilisticOperatorsProxy> {
177 const ProbabilisticTask* task_;
178
179public:
181
183 [[nodiscard]]
184 std::size_t size() const;
185
187 ProbabilisticOperatorProxy operator[](std::size_t index) const;
188
191};
192
194class ProbabilisticTaskProxy : public PlanningTaskProxy {
195public:
196 explicit ProbabilisticTaskProxy(const ProbabilisticTask& task);
197
199 [[nodiscard]]
201
202 const causal_graph::ProbabilisticCausalGraph& get_causal_graph() const;
203};
204
206bool does_fire(const ProbabilisticEffectProxy& effect, const State& state);
207
208} // namespace probfd
209
210#endif
Proxy class used to inspect the list of effect conditions of a conditional effect of a probabilistic ...
Definition task_proxy.h:36
FactProxy operator[](std::size_t index) const
Accesses a specific effect condition by its list index.
std::size_t size() const
Returns the number of effect conditions.
Proxy class used to inspect a probabilistic effect of a probabilistic operator.
Definition task_proxy.h:60
FactProxy get_fact() const
Get a proxy for the established fact of the probabilistic effect.
ProbabilisticEffectConditionsProxy get_conditions() const
Get a proxy for the conditions of the probabilistic effect.
Proxy class used to inspect the list of probabilistic effects of a probabilistic operator....
Definition task_proxy.h:86
std::size_t size() const
Returns the number of probabilistic effects.
ProbabilisticEffectProxy operator[](std::size_t eff_index) const
Accesses a specific probabilistic effect by its list index.
Proxy class used to inspect a single probabilistic operator.
Definition task_proxy.h:159
ProbabilisticOutcomesProxy get_outcomes() const
Get a proxy to the outcomes of the operator.
value_t get_cost() const
Get the cost of the operator.
Proxy class used to inspect a list of probabilistic operators of a probabilistic task....
Definition task_proxy.h:176
ProbabilisticOperatorProxy operator[](std::size_t index) const
Get a proxy for a specific probabilistic operator by list index.
std::size_t size() const
Returns the number of probabilistic operators in the list.
ProbabilisticOperatorProxy operator[](OperatorID id) const
Get a proxy for a specific probabilistic operator by operator id.
Proxy class used to inspect a single probabilistic outcome of a probabilistic operator.
Definition task_proxy.h:107
ProbabilisticEffectsProxy get_effects() const
Get a proxy to the probabilistic effects of this outcome.
ProbabilisticOperatorProxy get_operator() const
Get this outcome's operator.
value_t get_probability() const
Get the probability of this outcome.
int get_determinization_id() const
Get the ID of this outcome's operator in the determinization.
Proxy class used to inspect the list of probabilistic outcomes of a probabilistic operator....
Definition task_proxy.h:139
ProbabilisticOperatorProxy get_operator() const
Get the operator of the outcomes.
ProbabilisticOutcomeProxy operator[](std::size_t eff_index) const
Get a proxy to a specific outcome by its list index.
std::size_t size() const
Returns the number of outcomes of the probabilistic operator.
Represents a probabilistic planning task with axioms and conditional effects.
Definition probabilistic_task.h:19
Proxy class used to inspect a probabilistic planning task.
Definition task_proxy.h:194
ProbabilisticOperatorsProxy get_operators() const
Returns a proxy for the list of probabilistic operators.
The top-level namespace of probabilistic Fast Downward.
Definition command_line.h:8
bool does_fire(const ProbabilisticEffectProxy &effect, const State &state)
Checks if the conditions of a probabilistic effect are fulfilled in a state.
double value_t
Typedef for the state value type.
Definition aliases.h:7