AI 24/25 Project Software
Documentation for the AI 24/25 course programming project software
Loading...
Searching...
No Matches
pdb_heuristic.h
1#ifndef PDBS_PDB_HEURISTIC_H
2#define PDBS_PDB_HEURISTIC_H
3
4#include "downward/pdbs/pattern_generator.h"
5
6#include "downward/heuristic.h"
7
8namespace pdbs {
9class PatternDatabase;
10
11// Implements a heuristic for a single PDB.
12class PDBHeuristic : public Heuristic {
13 std::shared_ptr<PatternDatabase> pdb;
14
15protected:
16 virtual int compute_heuristic(const State& ancestor_state) override;
17
18public:
19 /*
20 Important: It is assumed that the pattern (passed via
21 pattern_generator) is sorted, contains no duplicates and is small
22 enough so that the number of abstract states is below
23 numeric_limits<int>::max()
24 Parameters:
25 operator_costs: Can specify individual operator costs for each
26 operator. This is useful for action cost partitioning. If left
27 empty, default operator costs are used.
28 */
29 PDBHeuristic(
30 const std::shared_ptr<PatternGenerator>& pattern_generator,
31 const std::shared_ptr<AbstractTask>& transform,
32 bool cache_estimates,
33 const std::string& description,
34 utils::Verbosity verbosity);
35};
36} // namespace pdbs
37
38#endif