1#ifndef PROBFD_HEURISTICS_UCP_HEURISTIC_H
2#define PROBFD_HEURISTICS_UCP_HEURISTIC_H
4#include "probfd/heuristics/task_dependent_heuristic.h"
5#include "probfd/task_evaluator_factory.h"
11class ProbabilityAwarePatternDatabase;
12class PatternCollectionGenerator;
17class UCPHeuristic :
public TaskDependentHeuristic {
18 const value_t termination_cost_;
19 std::vector<pdbs::ProbabilityAwarePatternDatabase> pdbs_;
23 std::shared_ptr<ProbabilisticTask> task,
24 std::shared_ptr<FDRCostFunction> task_cost_function,
26 std::shared_ptr<pdbs::PatternCollectionGenerator> generator);
28 ~UCPHeuristic()
override;
30 void print_statistics()
const override
36 value_t evaluate(
const State& state)
const override;
39class UCPHeuristicFactory :
public TaskEvaluatorFactory {
40 const utils::Verbosity verbosity_;
41 const std::shared_ptr<probfd::pdbs::PatternCollectionGenerator>
42 pattern_collection_generator_;
46 utils::Verbosity verbosity,
47 std::shared_ptr<probfd::pdbs::PatternCollectionGenerator> generator);
49 std::unique_ptr<FDREvaluator> create_evaluator(
50 std::shared_ptr<ProbabilisticTask> task,
51 std::shared_ptr<FDRCostFunction> task_cost_function)
override;
This namespace contains heuristic implementations.
Definition additive_cartesian_heuristic.h:19
Namespace dedicated to probabilistic pattern databases.
Definition gzocp_heuristic.h:16
double value_t
Typedef for the state value type.
Definition aliases.h:7