AI 24/25 Project Software
Documentation for the AI 24/25 course programming project software
Loading...
Searching...
No Matches
additive_cartesian_heuristic.h
1#ifndef CEGAR_ADDITIVE_CARTESIAN_HEURISTIC_H
2#define CEGAR_ADDITIVE_CARTESIAN_HEURISTIC_H
3
4#include "downward/heuristic.h"
5
6#include <vector>
7
8namespace cartesian_abstractions {
9class CartesianHeuristicFunction;
10class SubtaskGenerator;
11enum class PickSplit;
12
13/*
14 Store CartesianHeuristicFunctions and compute overall heuristic by
15 summing all of their values.
16*/
17class AdditiveCartesianHeuristic : public Heuristic {
18 const std::vector<CartesianHeuristicFunction> heuristic_functions;
19
20protected:
21 virtual int compute_heuristic(const State& ancestor_state) override;
22
23public:
24 explicit AdditiveCartesianHeuristic(
25 const std::vector<std::shared_ptr<SubtaskGenerator>>& subtasks,
26 int max_states,
27 int max_transitions,
28 double max_time,
29 PickSplit pick,
30 bool use_general_costs,
31 int random_seed,
32 const std::shared_ptr<AbstractTask>& transform,
33 bool cache_estimates,
34 const std::string& description,
35 utils::Verbosity verbosity);
36};
37} // namespace cartesian_abstractions
38
39#endif