AI 24/25 Project Software
Documentation for the AI 24/25 course programming project software
Loading...
Searching...
No Matches
landmark_sum_heuristic.h
1#ifndef LANDMARKS_LANDMARK_SUM_HEURISTIC_H
2#define LANDMARKS_LANDMARK_SUM_HEURISTIC_H
3
4#include "downward/landmarks/landmark_heuristic.h"
5
6namespace landmarks {
7class LandmarkSumHeuristic : public LandmarkHeuristic {
8 const bool dead_ends_reliable;
9
10 std::vector<int> min_first_achiever_costs;
11 std::vector<int> min_possible_achiever_costs;
12
13 int
14 get_min_cost_of_achievers(const std::unordered_set<int>& achievers) const;
15 void compute_landmark_costs();
16
17 int get_heuristic_value(const State& ancestor_state) override;
18
19public:
20 LandmarkSumHeuristic(
21 const std::shared_ptr<LandmarkFactory>& lm_factory,
22 bool pref,
23 bool prog_goal,
24 bool prog_gn,
25 bool prog_r,
26 const std::shared_ptr<AbstractTask>& transform,
27 bool cache_estimates,
28 const std::string& description,
29 utils::Verbosity verbosity);
30
31 virtual bool dead_ends_are_reliable() const override;
32};
33} // namespace landmarks
34
35#endif