1#ifndef MERGE_AND_SHRINK_MERGE_STRATEGY_FACTORY_H
2#define MERGE_AND_SHRINK_MERGE_STRATEGY_FACTORY_H
4#include "downward/utils/logging.h"
11namespace merge_and_shrink {
12class FactoredTransitionSystem;
15class MergeStrategyFactory {
17 mutable utils::LogProxy log;
19 virtual std::string name()
const = 0;
20 virtual void dump_strategy_specific_options()
const = 0;
23 MergeStrategyFactory(utils::Verbosity verbosity);
24 virtual ~MergeStrategyFactory() =
default;
25 void dump_options()
const;
26 virtual std::unique_ptr<MergeStrategy> compute_merge_strategy(
27 const TaskProxy& task_proxy,
28 const FactoredTransitionSystem& fts) = 0;
29 virtual bool requires_init_distances()
const = 0;
30 virtual bool requires_goal_distances()
const = 0;