AI 24/25 Project Software
Documentation for the AI 24/25 course programming project software
Loading...
Searching...
No Matches
merge_selector.h
1#ifndef MERGE_AND_SHRINK_MERGE_SELECTOR_H
2#define MERGE_AND_SHRINK_MERGE_SELECTOR_H
3
4#include <string>
5#include <vector>
6
7class TaskProxy;
8
9namespace utils {
10class LogProxy;
11}
12
13namespace merge_and_shrink {
14class FactoredTransitionSystem;
15class MergeSelector {
16protected:
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;
22public:
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;
32};
33}
34
35#endif