AI 24/25 Project Software
Documentation for the AI 24/25 course programming project software
Loading...
Searching...
No Matches
merge_scoring_function_miasm.h
1#ifndef MERGE_AND_SHRINK_MERGE_SCORING_FUNCTION_MIASM_H
2#define MERGE_AND_SHRINK_MERGE_SCORING_FUNCTION_MIASM_H
3
4#include "downward/merge_and_shrink/merge_scoring_function.h"
5
6#include "downward/utils/logging.h"
7
8#include <memory>
9#include <optional>
10
11namespace merge_and_shrink {
12class ShrinkStrategy;
13class MergeScoringFunctionMIASM : public MergeScoringFunction {
14 const bool use_caching;
15 std::shared_ptr<ShrinkStrategy> shrink_strategy;
16 const int max_states;
17 const int max_states_before_merge;
18 const int shrink_threshold_before_merge;
19 utils::LogProxy silent_log;
20 std::vector<std::vector<std::optional<double>>>
21 cached_scores_by_merge_candidate_indices;
22
23 virtual std::string name() const override;
24 virtual void
25 dump_function_specific_options(utils::LogProxy& log) const override;
26
27public:
28 MergeScoringFunctionMIASM(
29 std::shared_ptr<ShrinkStrategy> shrink_strategy,
30 int max_states,
31 int max_states_before_merge,
32 int threshold_before_merge,
33 bool use_caching);
34 virtual std::vector<double> compute_scores(
35 const FactoredTransitionSystem& fts,
36 const std::vector<std::pair<int, int>>& merge_candidates) override;
37 virtual void initialize(const TaskProxy& task_proxy) override;
38
39 virtual bool requires_init_distances() const override { return true; }
40
41 virtual bool requires_goal_distances() const override { return true; }
42};
43} // namespace merge_and_shrink
44
45#endif