1#ifndef PROBFD_PDBS_PATTERN_COLLECTION_INFORMATION_H
2#define PROBFD_PDBS_PATTERN_COLLECTION_INFORMATION_H
4#include "probfd/pdbs/subcollection_finder.h"
5#include "probfd/pdbs/types.h"
7#include "probfd/fdr_types.h"
8#include "probfd/task_proxy.h"
14class PatternCollectionInformation;
31class PatternCollectionInformation {
32 ProbabilisticTaskProxy task_proxy_;
33 std::shared_ptr<FDRCostFunction> task_cost_function_;
35 std::shared_ptr<PatternCollection> patterns_;
36 std::shared_ptr<PPDBCollection> pdbs_;
37 std::shared_ptr<std::vector<PatternSubCollection>> subcollections_;
39 std::shared_ptr<SubCollectionFinder> subcollection_finder_;
41 void create_pdbs_if_missing();
42 void create_pattern_cliques_if_missing();
45 bool information_is_valid()
const;
48 PatternCollectionInformation(
49 const ProbabilisticTaskProxy& task_proxy,
50 std::shared_ptr<FDRCostFunction> task_cost_function,
51 ::pdbs::PatternCollectionInformation det_info,
52 std::shared_ptr<SubCollectionFinder> subcollection_finder);
54 PatternCollectionInformation(
55 const ProbabilisticTaskProxy& task_proxy,
56 std::shared_ptr<FDRCostFunction> task_cost_function,
57 std::shared_ptr<PatternCollection> patterns);
59 PatternCollectionInformation(
60 const ProbabilisticTaskProxy& task_proxy,
61 std::shared_ptr<FDRCostFunction> task_cost_function,
62 std::shared_ptr<PatternCollection> patterns,
63 std::shared_ptr<SubCollectionFinder> subcollection_finder);
65 void set_pdbs(
const std::shared_ptr<PPDBCollection>& pdbs);
67 set_subcollections(
const std::shared_ptr<std::vector<PatternSubCollection>>&
71 std::shared_ptr<PatternCollection> get_patterns()
const;
72 std::shared_ptr<PPDBCollection> get_pdbs();
73 std::shared_ptr<std::vector<PatternSubCollection>> get_subcollections();
74 std::shared_ptr<SubCollectionFinder> get_subcollection_finder();
Namespace dedicated to probabilistic pattern databases.
Definition gzocp_heuristic.h:16