AI 24/25 Project Software
Documentation for the AI 24/25 course programming project software
Loading...
Searching...
No Matches
pruning_method.h
1#ifndef PRUNING_METHOD_H
2#define PRUNING_METHOD_H
3
4#include "downward/operator_id.h"
5
6#include "downward/utils/logging.h"
7#include "downward/utils/timer.h"
8
9#include <memory>
10#include <vector>
11
12class AbstractTask;
13class State;
14
15namespace limited_pruning {
16class LimitedPruning;
17}
18
19class PruningMethod {
20 utils::Timer timer;
21 friend class limited_pruning::LimitedPruning;
22
23 virtual void prune(const State& state, std::vector<OperatorID>& op_ids) = 0;
24
25protected:
26 mutable utils::LogProxy log;
27 std::shared_ptr<AbstractTask> task;
28 long num_successors_before_pruning;
29 long num_successors_after_pruning;
30
31public:
32 explicit PruningMethod(utils::Verbosity verbosity);
33 virtual ~PruningMethod() = default;
34 virtual void initialize(const std::shared_ptr<AbstractTask>& task);
35 void prune_operators(const State& state, std::vector<OperatorID>& op_ids);
36 virtual void print_statistics() const;
37};
38
39#endif