AI 24/25 Project Software
Documentation for the AI 24/25 course programming project software
Loading...
Searching...
No Matches
cost_adapted_task.h
1#ifndef PROBFD_TASKS_COST_ADAPTED_TASK_H
2#define PROBFD_TASKS_COST_ADAPTED_TASK_H
3
4#include "probfd/tasks/delegating_task.h" // IWYU pragma: export
5
6#include "probfd/value_type.h"
7
8#include "downward/operator_cost.h"
9
10#include <memory>
11
12namespace probfd::tasks {
13
14/*
15 Task transformation that changes operator costs. If the parent task assigns
16 costs 'c' to an operator, its adjusted costs, depending on the value of the
17 cost_type option, are:
18
19 NORMAL: c
20 ONE: 1
21 PLUSONE: 1, if all operators have cost 1 in the parent task, else c + 1
22
23 Regardless of the cost_type value, axioms will always keep their original
24 cost, which is 0 by default.
25*/
26class CostAdaptedTask : public DelegatingTask {
27 const OperatorCost cost_type_;
28 const bool parent_is_unit_cost_;
29
30public:
31 CostAdaptedTask(
32 const std::shared_ptr<ProbabilisticTask>& parent,
33 OperatorCost cost_type);
34
35 value_t get_operator_cost(int index) const override;
36};
37
38} // namespace probfd::tasks
39
40#endif
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