1#ifndef PROBFD_CARTESIAN_ADAPTIVE_FLAW_GENERATOR_H
2#define PROBFD_CARTESIAN_ADAPTIVE_FLAW_GENERATOR_H
4#include "probfd/cartesian_abstractions/flaw.h"
5#include "probfd/cartesian_abstractions/flaw_generator.h"
19class ProbabilisticTaskProxy;
22namespace probfd::cartesian_abstractions {
24class CartesianAbstraction;
25class CartesianHeuristic;
28namespace probfd::cartesian_abstractions {
35 std::vector<std::unique_ptr<FlawGenerator>> generators_;
36 size_t current_generator_ = 0;
40 std::vector<std::unique_ptr<FlawGenerator>> generators);
42 std::optional<Flaw> generate_flaw(
44 const std::vector<int>& domain_sizes,
45 CartesianAbstraction& abstraction,
46 const AbstractState* init_id,
47 CartesianHeuristic& heuristic,
49 utils::CountdownTimer& timer)
override;
51 void notify_split()
override;
53 void print_statistics(utils::LogProxy& log)
override;
56class AdaptiveFlawGeneratorFactory :
public FlawGeneratorFactory {
57 std::vector<std::shared_ptr<FlawGeneratorFactory>> generator_factories_;
60 explicit AdaptiveFlawGeneratorFactory(
61 std::vector<std::shared_ptr<FlawGeneratorFactory>> generators);
63 std::unique_ptr<FlawGenerator> create_flaw_generator()
override;
Proxy class used to inspect a probabilistic planning task.
Definition task_proxy.h:194
A flaw generator that uses an incomplete flaw generator, with a complete flaw generator as a backup.
Definition adaptive_flaw_generator.h:34
Find flaws in the abstraction.
Definition flaw_generator.h:31
The top-level namespace of probabilistic Fast Downward.
Definition command_line.h:8