1#ifndef MERGE_AND_SHRINK_MERGE_SELECTOR_H
2#define MERGE_AND_SHRINK_MERGE_SELECTOR_H
13namespace merge_and_shrink {
14class FactoredTransitionSystem;
17 virtual std::string name()
const = 0;
18 virtual void dump_selector_specific_options(utils::LogProxy &)
const {}
19 std::vector<std::pair<int, int>> compute_merge_candidates(
20 const FactoredTransitionSystem &fts,
21 const std::vector<int> &indices_subset)
const;
23 MergeSelector() =
default;
24 virtual ~MergeSelector() =
default;
25 virtual std::pair<int, int> select_merge(
26 const FactoredTransitionSystem &fts,
27 const std::vector<int> &indices_subset = std::vector<int>())
const = 0;
28 virtual void initialize(
const TaskProxy &task_proxy) = 0;
29 void dump_options(utils::LogProxy &log)
const;
30 virtual bool requires_init_distances()
const = 0;
31 virtual bool requires_goal_distances()
const = 0;