AI 24/25 Project Software
Documentation for the AI 24/25 course programming project software
Loading...
Searching...
No Matches
merge_scoring_function.h
1#ifndef MERGE_AND_SHRINK_MERGE_SCORING_FUNCTION_H
2#define MERGE_AND_SHRINK_MERGE_SCORING_FUNCTION_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 MergeScoringFunction {
16 virtual std::string name() const = 0;
17 virtual void dump_function_specific_options(utils::LogProxy &) const {}
18
19protected:
20 bool initialized;
21
22public:
23 MergeScoringFunction();
24 virtual ~MergeScoringFunction() = default;
25 virtual std::vector<double> compute_scores(
26 const FactoredTransitionSystem &fts,
27 const std::vector<std::pair<int, int>> &merge_candidates) = 0;
28 virtual bool requires_init_distances() const = 0;
29 virtual bool requires_goal_distances() const = 0;
30
31 // Overriding methods must set initialized to true.
32 virtual void initialize(const TaskProxy &) {
33 initialized = true;
34 }
35
36 void dump_options(utils::LogProxy &log) const;
37};
38}
39
40#endif