1#ifndef DOWNWARD_LANDMARKS_LANDMARK_COST_PARTITIONING_HEURISTIC_H
2#define DOWNWARD_LANDMARKS_LANDMARK_COST_PARTITIONING_HEURISTIC_H
4#include "downward/landmarks/landmark_heuristic.h"
6#include "downward/lp/lp_solver.h"
9class CostPartitioningAlgorithm;
11enum class CostPartitioningMethod {
16class LandmarkCostPartitioningHeuristic :
public LandmarkHeuristic {
17 std::unique_ptr<CostPartitioningAlgorithm> cost_partitioning_algorithm;
19 void check_unsupported_features(
20 const std::shared_ptr<LandmarkFactory>& lm_factory);
21 void set_cost_partitioning_algorithm(
22 CostPartitioningMethod cost_partitioning,
23 lp::LPSolverType lpsolver,
26 int get_heuristic_value(
const State& ancestor_state)
override;
29 LandmarkCostPartitioningHeuristic(
30 const std::shared_ptr<LandmarkFactory>& lm_factory,
35 const std::shared_ptr<AbstractTask>& transform,
37 const std::string& description,
38 utils::Verbosity verbosity,
39 CostPartitioningMethod cost_partitioning,
41 lp::LPSolverType lpsolver);
43 ~LandmarkCostPartitioningHeuristic()
override;
45 virtual bool dead_ends_are_reliable()
const override;