1#ifndef MERGE_AND_SHRINK_MERGE_STRATEGY_FACTORY_SCCS_H
2#define MERGE_AND_SHRINK_MERGE_STRATEGY_FACTORY_SCCS_H
4#include "downward/merge_and_shrink/merge_strategy_factory.h"
6namespace merge_and_shrink {
10enum class OrderOfSCCs {
17class MergeStrategyFactorySCCs :
public MergeStrategyFactory {
18 OrderOfSCCs order_of_sccs;
19 std::shared_ptr<MergeTreeFactory> merge_tree_factory;
20 std::shared_ptr<MergeSelector> merge_selector;
23 virtual std::string name()
const override;
24 virtual void dump_strategy_specific_options()
const override;
27 MergeStrategyFactorySCCs(
28 const OrderOfSCCs& order_of_sccs,
29 const std::shared_ptr<MergeTreeFactory>& merge_tree,
30 const std::shared_ptr<MergeSelector>& merge_selector,
31 utils::Verbosity verbosity);
32 virtual std::unique_ptr<MergeStrategy> compute_merge_strategy(
33 const TaskProxy& task_proxy,
34 const FactoredTransitionSystem& fts)
override;
35 virtual bool requires_init_distances()
const override;
36 virtual bool requires_goal_distances()
const override;