1#ifndef LANDMARKS_LANDMARK_SUM_HEURISTIC_H
2#define LANDMARKS_LANDMARK_SUM_HEURISTIC_H
4#include "downward/landmarks/landmark_heuristic.h"
7class LandmarkSumHeuristic :
public LandmarkHeuristic {
8 const bool dead_ends_reliable;
10 std::vector<int> min_first_achiever_costs;
11 std::vector<int> min_possible_achiever_costs;
14 get_min_cost_of_achievers(
const std::unordered_set<int>& achievers)
const;
15 void compute_landmark_costs();
17 int get_heuristic_value(
const State& ancestor_state)
override;
21 const std::shared_ptr<LandmarkFactory>& lm_factory,
26 const std::shared_ptr<AbstractTask>& transform,
28 const std::string& description,
29 utils::Verbosity verbosity);
31 virtual bool dead_ends_are_reliable()
const override;