1#ifndef PROBFD_PDBS_PATTERN_COLLECTION_GENERATOR_MULTIPLE_H
2#define PROBFD_PDBS_PATTERN_COLLECTION_GENERATOR_MULTIPLE_H
4#include "probfd/pdbs/pattern_collection_generator.h"
5#include "probfd/pdbs/projection_transformation.h"
7#include "probfd/fdr_types.h"
11#include <unordered_set>
19class RandomNumberGenerator;
23class ProbabilisticTaskProxy;
27class ProjectionStateSpace;
28class ProbabilityAwarePatternDatabase;
33class PatternCollectionGeneratorMultiple :
public PatternCollectionGenerator {
34 const int max_pdb_size_;
35 const int max_collection_size_;
36 const double pattern_generation_max_time_;
37 const double total_max_time_;
38 const double stagnation_limit_;
39 const double blacklisting_start_time_;
40 const bool enable_blacklist_on_stagnation_;
41 const bool use_saturated_costs_;
43 const std::shared_ptr<utils::RandomNumberGenerator> rng_;
45 const std::string implementation_name_;
47 bool collection_size_limit_reached(
int remaining_collection_size)
const;
48 bool time_limit_reached(
const utils::CountdownTimer& timer)
const;
50 virtual ProjectionTransformation compute_pattern(
53 const std::shared_ptr<utils::RandomNumberGenerator>& rng,
54 const ProbabilisticTaskProxy& task_proxy,
55 const std::shared_ptr<FDRSimpleCostFunction>& task_cost_function,
57 std::unordered_set<int>&& blacklisted_variables) = 0;
59 PatternCollectionInformation generate(
60 const std::shared_ptr<ProbabilisticTask>& task,
61 const std::shared_ptr<FDRCostFunction>& task_cost_function)
override;
64 explicit PatternCollectionGeneratorMultiple(
66 int max_collection_size,
67 double pattern_generation_max_time,
68 double total_max_time,
69 double stagnation_limit,
70 double blacklist_trigger_percentage,
71 bool enable_blacklist_on_stagnation,
72 bool use_saturated_costs,
73 std::shared_ptr<utils::RandomNumberGenerator> rng,
74 std::string implementation_name,
75 utils::Verbosity verbosity);
Namespace dedicated to probabilistic pattern databases.
Definition gzocp_heuristic.h:16
The top-level namespace of probabilistic Fast Downward.
Definition command_line.h:8