AI 24/25 Project Software
Documentation for the AI 24/25 course programming project software
Loading...
Searching...
No Matches
merge_strategy_factory.h
1#ifndef MERGE_AND_SHRINK_MERGE_STRATEGY_FACTORY_H
2#define MERGE_AND_SHRINK_MERGE_STRATEGY_FACTORY_H
3
4#include "downward/utils/logging.h"
5
6#include <memory>
7#include <string>
8
9class TaskProxy;
10
11namespace merge_and_shrink {
12class FactoredTransitionSystem;
13class MergeStrategy;
14
15class MergeStrategyFactory {
16protected:
17 mutable utils::LogProxy log;
18
19 virtual std::string name() const = 0;
20 virtual void dump_strategy_specific_options() const = 0;
21
22public:
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;
31};
32
33} // namespace merge_and_shrink
34
35#endif