AI 24/25 Project Software
Documentation for the AI 24/25 course programming project software
Loading...
Searching...
No Matches
landmark_cost_partitioning_heuristic.h
1#ifndef DOWNWARD_LANDMARKS_LANDMARK_COST_PARTITIONING_HEURISTIC_H
2#define DOWNWARD_LANDMARKS_LANDMARK_COST_PARTITIONING_HEURISTIC_H
3
4#include "downward/landmarks/landmark_heuristic.h"
5
6#include "downward/lp/lp_solver.h"
7
8namespace landmarks {
9class CostPartitioningAlgorithm;
10
11enum class CostPartitioningMethod {
12 OPTIMAL,
13 UNIFORM,
14};
15
16class LandmarkCostPartitioningHeuristic : public LandmarkHeuristic {
17 std::unique_ptr<CostPartitioningAlgorithm> cost_partitioning_algorithm;
18
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,
24 bool alm);
25
26 int get_heuristic_value(const State& ancestor_state) override;
27
28public:
29 LandmarkCostPartitioningHeuristic(
30 const std::shared_ptr<LandmarkFactory>& lm_factory,
31 bool pref,
32 bool prog_goal,
33 bool prog_gn,
34 bool prog_r,
35 const std::shared_ptr<AbstractTask>& transform,
36 bool cache_estimates,
37 const std::string& description,
38 utils::Verbosity verbosity,
39 CostPartitioningMethod cost_partitioning,
40 bool alm,
41 lp::LPSolverType lpsolver);
42
43 ~LandmarkCostPartitioningHeuristic() override;
44
45 virtual bool dead_ends_are_reliable() const override;
46};
47} // namespace landmarks
48
49#endif // DOWNWARD_LANDMARKS_LANDMARK_COST_PARTITIONING_HEURISTIC_H