1#ifndef PROBFD_HEURISTICS_DEAD_END_PRUNING_H
2#define PROBFD_HEURISTICS_DEAD_END_PRUNING_H
4#include "probfd/evaluator.h"
5#include "probfd/fdr_types.h"
6#include "probfd/task_evaluator_factory.h"
7#include "probfd/value_type.h"
25 const std::shared_ptr<::Evaluator> pruning_function_;
37 std::shared_ptr<::Evaluator> pruning_function,
41 value_t evaluate(
const State& state)
const override;
46class DeadEndPruningHeuristicFactory :
public TaskEvaluatorFactory {
47 const std::shared_ptr<::Evaluator> evaluator_;
50 explicit DeadEndPruningHeuristicFactory(
51 std::shared_ptr<::Evaluator> evaluator);
53 std::unique_ptr<FDREvaluator> create_evaluator(
54 std::shared_ptr<ProbabilisticTask> task,
55 std::shared_ptr<FDRCostFunction> task_cost_function)
override;
Uses a classical heuristic on the all-outcomes-determinization to prune dead-ends.
Definition dead_end_pruning.h:24
DeadEndPruningHeuristic(std::shared_ptr<::Evaluator > pruning_function, value_t dead_end_value)
Construct with the given classical heuristic.
void print_statistics() const override
Prints statistics, e.g. the number of queries made to the interface.
This namespace contains heuristic implementations.
Definition additive_cartesian_heuristic.h:19
double value_t
Typedef for the state value type.
Definition aliases.h:7