AI 24/25 Project Software
Documentation for the AI 24/25 course programming project software
Loading...
Searching...
No Matches
flaw_generator.h
1#ifndef PROBFD_CARTESIAN_FLAW_GENERATOR_H
2#define PROBFD_CARTESIAN_FLAW_GENERATOR_H
3
4#include "probfd/cartesian_abstractions/flaw.h"
5
6#include <memory>
7#include <optional>
8#include <vector>
9
10// Forward Declarations
11namespace utils {
12class CountdownTimer;
13class LogProxy;
14} // namespace utils
15
16namespace probfd {
17class ProbabilisticTaskProxy;
18}
19
20namespace probfd::cartesian_abstractions {
21class AbstractState;
22class CartesianAbstraction;
23class CartesianHeuristic;
24} // namespace probfd::cartesian_abstractions
25
26namespace probfd::cartesian_abstractions {
27
32public:
33 virtual ~FlawGenerator() = default;
34
35 virtual std::optional<Flaw> generate_flaw(
36 const ProbabilisticTaskProxy& task_proxy,
37 const std::vector<int>& domain_sizes,
38 CartesianAbstraction& abstraction,
39 const AbstractState* init_id,
40 CartesianHeuristic& heuristic,
41 utils::LogProxy& log,
42 utils::CountdownTimer& timer) = 0;
43
44 virtual void notify_split() = 0;
45
46 virtual void print_statistics(utils::LogProxy& log) = 0;
47};
48
49class FlawGeneratorFactory {
50public:
51 virtual ~FlawGeneratorFactory() = default;
52 virtual std::unique_ptr<FlawGenerator> create_flaw_generator() = 0;
53};
54
55} // namespace probfd::cartesian_abstractions
56
57#endif // PROBFD_CARTESIAN_FLAW_GENERATOR_H
Proxy class used to inspect a probabilistic planning task.
Definition task_proxy.h:194
Find flaws in the abstraction.
Definition flaw_generator.h:31
The top-level namespace of probabilistic Fast Downward.
Definition command_line.h:8