AI 24/25 Project Software
Documentation for the AI 24/25 course programming project software
Loading...
Searching...
No Matches
merge_tree_factory_linear.h
1#ifndef MERGE_AND_SHRINK_MERGE_TREE_FACTORY_LINEAR_H
2#define MERGE_AND_SHRINK_MERGE_TREE_FACTORY_LINEAR_H
3
4#include "downward/merge_and_shrink/merge_tree_factory.h"
5
6#include "downward/task_utils/variable_order_finder.h"
7
8namespace utils {
9class RandomNumberGenerator;
10}
11
12namespace merge_and_shrink {
13class MergeTreeFactoryLinear : public MergeTreeFactory {
14 variable_order_finder::VariableOrderType variable_order_type;
15 std::shared_ptr<utils::RandomNumberGenerator> rng;
16
17protected:
18 virtual std::string name() const override;
19 virtual void
20 dump_tree_specific_options(utils::LogProxy& log) const override;
21
22public:
23 MergeTreeFactoryLinear(
24 variable_order_finder::VariableOrderType variable_order,
25 int random_seed,
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;
33
34 virtual bool requires_init_distances() const override { return false; }
35
36 virtual bool requires_goal_distances() const override { return false; }
37};
38} // namespace merge_and_shrink
39
40#endif