25class AdditiveCartesianHeuristic :
public TaskDependentHeuristic {
26 const std::vector<cartesian_abstractions::CartesianHeuristicFunction>
30 AdditiveCartesianHeuristic(
31 std::shared_ptr<ProbabilisticTask> task,
33 std::vector<std::shared_ptr<cartesian_abstractions::SubtaskGenerator>>
35 std::shared_ptr<cartesian_abstractions::FlawGeneratorFactory>
36 flaw_generator_factory,
37 std::shared_ptr<cartesian_abstractions::SplitSelectorFactory>
38 split_selector_factory,
42 bool use_general_costs);
45 value_t evaluate(
const State& ancestor_state)
const override;
48class AdditiveCartesianHeuristicFactory :
public TaskEvaluatorFactory {
50 std::shared_ptr<probfd::cartesian_abstractions ::SubtaskGenerator>>
52 const std::shared_ptr<probfd::cartesian_abstractions ::FlawGeneratorFactory>
53 flaw_generator_factory;
54 const std::shared_ptr<probfd::cartesian_abstractions ::SplitSelectorFactory>
55 split_selector_factory;
57 const int max_transitions;
58 const double max_time;
59 const bool use_general_costs;
61 const utils::LogProxy log_;
64 AdditiveCartesianHeuristicFactory(
65 std::vector<std::shared_ptr<
66 probfd::cartesian_abstractions ::SubtaskGenerator>> subtasks,
67 std::shared_ptr<probfd::cartesian_abstractions ::FlawGeneratorFactory>
68 flaw_generator_factory,
69 std::shared_ptr<probfd::cartesian_abstractions ::SplitSelectorFactory>
70 split_selector_factory,
74 bool use_general_costs,
75 utils::Verbosity verbosity);
77 std::unique_ptr<FDREvaluator> create_evaluator(
78 std::shared_ptr<ProbabilisticTask> task,
79 std::shared_ptr<FDRCostFunction> task_cost_function)
override;