AI 24/25 Project Software
Documentation for the AI 24/25 course programming project software
Loading...
Searching...
No Matches
subcollection_finder.h
1#ifndef PROBFD_PDBS_SUBCOLLECTION_FINDER_H
2#define PROBFD_PDBS_SUBCOLLECTION_FINDER_H
3
4#include "probfd/pdbs/types.h"
5
6#include "probfd/value_type.h"
7
8#include <memory>
9#include <vector>
10
11// Forward Declarations
12class State;
13
14namespace probfd::pdbs {
15
16class SubCollectionFinder {
17public:
18 virtual ~SubCollectionFinder() = default;
19
20 virtual std::shared_ptr<std::vector<PatternSubCollection>>
21 compute_subcollections(const PatternCollection&) = 0;
22
23 virtual std::vector<PatternSubCollection>
24 compute_subcollections_with_pattern(
25 const PatternCollection& patterns,
26 const std::vector<PatternSubCollection>& known_pattern_cliques,
27 const Pattern& new_pattern) = 0;
28
29 [[nodiscard]]
30 virtual value_t evaluate_subcollection(
31 const std::vector<value_t>& pdb_estimates,
32 const std::vector<int>& subcollection) const = 0;
33
34 [[nodiscard]]
35 virtual value_t combine(value_t left, value_t right) const = 0;
36
37 value_t evaluate(
38 const PPDBCollection& database,
39 const std::vector<PatternSubCollection>& subcollections,
40 const State& state,
41 value_t termination_cost);
42};
43
44} // namespace probfd::pdbs
45
46#endif // PROBFD_PDBS_SUBCOLLECTION_FINDER_H
Namespace dedicated to probabilistic pattern databases.
Definition gzocp_heuristic.h:16
double value_t
Typedef for the state value type.
Definition aliases.h:7