1#ifndef PDBS_PATTERN_GENERATOR_H
2#define PDBS_PATTERN_GENERATOR_H
4#include "downward/pdbs/pattern_collection_information.h"
5#include "downward/pdbs/pattern_information.h"
6#include "downward/pdbs/types.h"
8#include "downward/utils/logging.h"
16class RandomNumberGenerator;
20class PatternCollectionGenerator {
21 virtual std::string name()
const = 0;
22 virtual PatternCollectionInformation
23 compute_patterns(
const std::shared_ptr<AbstractTask>& task) = 0;
26 mutable utils::LogProxy log;
29 explicit PatternCollectionGenerator(utils::Verbosity verbosity);
30 virtual ~PatternCollectionGenerator() =
default;
32 PatternCollectionInformation
33 generate(
const std::shared_ptr<AbstractTask>& task);
36class PatternGenerator {
37 virtual std::string name()
const = 0;
38 virtual PatternInformation
39 compute_pattern(
const std::shared_ptr<AbstractTask>& task) = 0;
42 mutable utils::LogProxy log;
45 explicit PatternGenerator(utils::Verbosity verbosity);
46 virtual ~PatternGenerator() =
default;
48 PatternInformation generate(
const std::shared_ptr<AbstractTask>& task);