1#ifndef PRUNING_METHOD_H
2#define PRUNING_METHOD_H
4#include "downward/operator_id.h"
6#include "downward/utils/logging.h"
7#include "downward/utils/timer.h"
15namespace limited_pruning {
21 friend class limited_pruning::LimitedPruning;
23 virtual void prune(
const State& state, std::vector<OperatorID>& op_ids) = 0;
26 mutable utils::LogProxy log;
27 std::shared_ptr<AbstractTask> task;
28 long num_successors_before_pruning;
29 long num_successors_after_pruning;
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;