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 TASKS_COST_ADAPTED_TASK_H
2#define TASKS_COST_ADAPTED_TASK_H
3
4#include "downward/tasks/delegating_task.h"
5
6#include "downward/operator_cost.h"
7
8namespace tasks {
9/*
10 Task transformation that changes operator costs. If the parent task assigns
11 costs 'c' to an operator, its adjusted costs, depending on the value of the
12 cost_type option, are:
13
14 NORMAL: c
15 ONE: 1
16 PLUSONE: 1, if all operators have cost 1 in the parent task, else c + 1
17
18 Regardless of the cost_type value, axioms will always keep their original
19 cost, which is 0 by default.
20*/
21class CostAdaptedTask : public DelegatingTask {
22 const OperatorCost cost_type;
23 const bool parent_is_unit_cost;
24
25public:
26 CostAdaptedTask(
27 const std::shared_ptr<AbstractTask>& parent,
28 OperatorCost cost_type);
29 virtual ~CostAdaptedTask() override = default;
30
31 virtual int get_operator_cost(int index) const override;
32};
33} // namespace tasks
34
35#endif