1#ifndef MERGE_AND_SHRINK_MERGE_TREE_FACTORY_LINEAR_H
2#define MERGE_AND_SHRINK_MERGE_TREE_FACTORY_LINEAR_H
4#include "downward/merge_and_shrink/merge_tree_factory.h"
6#include "downward/task_utils/variable_order_finder.h"
9class RandomNumberGenerator;
12namespace merge_and_shrink {
13class MergeTreeFactoryLinear :
public MergeTreeFactory {
14 variable_order_finder::VariableOrderType variable_order_type;
15 std::shared_ptr<utils::RandomNumberGenerator> rng;
18 virtual std::string name()
const override;
20 dump_tree_specific_options(utils::LogProxy& log)
const override;
23 MergeTreeFactoryLinear(
24 variable_order_finder::VariableOrderType variable_order,
26 UpdateOption update_option);
27 virtual std::unique_ptr<MergeTree>
28 compute_merge_tree(
const TaskProxy& task_proxy)
override;
29 virtual std::unique_ptr<MergeTree> compute_merge_tree(
30 const TaskProxy& task_proxy,
31 const FactoredTransitionSystem& fts,
32 const std::vector<int>& indices_subset)
override;
34 virtual bool requires_init_distances()
const override {
return false; }
36 virtual bool requires_goal_distances()
const override {
return false; }