AI 24/25 Project Software
Documentation for the AI 24/25 course programming project software
Loading...
Searching...
No Matches
pattern_information.h
1#ifndef PROBFD_PDBS_PATTERN_INFORMATION_H
2#define PROBFD_PDBS_PATTERN_INFORMATION_H
3
4#include "probfd/pdbs/types.h"
5
6#include "probfd/fdr_types.h"
7#include "probfd/task_proxy.h"
8
9#include <memory>
10
11namespace probfd::pdbs {
12
13class ProbabilityAwarePatternDatabase;
14
15class PatternInformation {
16 ProbabilisticTaskProxy task_proxy_;
17 std::shared_ptr<FDRSimpleCostFunction> task_cost_function_;
18 Pattern pattern_;
19 std::shared_ptr<ProbabilityAwarePatternDatabase> pdb_;
20
21 void create_pdb_if_missing();
22
23 [[nodiscard]]
24 bool information_is_valid() const;
25
26public:
27 PatternInformation(
28 ProbabilisticTaskProxy task_proxy,
29 std::shared_ptr<FDRSimpleCostFunction> task_cost_function,
30 Pattern pattern);
31
32 void set_pdb(const std::shared_ptr<ProbabilityAwarePatternDatabase>& pdb);
33
34 [[nodiscard]]
35 ProbabilisticTaskProxy get_task_proxy() const
36 {
37 return task_proxy_;
38 }
39
40 [[nodiscard]]
41 const Pattern& get_pattern() const;
42 std::shared_ptr<ProbabilityAwarePatternDatabase> get_pdb();
43};
44
45} // namespace probfd::pdbs
46
47#endif // PROBFD_PDBS_PATTERN_INFORMATION_H
Namespace dedicated to probabilistic pattern databases.
Definition gzocp_heuristic.h:16