1#ifndef PROBFD_PDBS_CEGAR_SAMPLING_FLAW_FINDER_H
2#define PROBFD_PDBS_CEGAR_SAMPLING_FLAW_FINDER_H
4#include "probfd/pdbs/cegar/flaw_finding_strategy.h"
6#include "probfd/storage/per_state_storage.h"
8#include "probfd/distribution.h"
12#include <unordered_set>
20class RandomNumberGenerator;
24class ProbabilisticTaskProxy;
27namespace probfd::pdbs::cegar {
29class SamplingFlawFinder :
public FlawFindingStrategy {
30 struct ExplorationInfo {
31 bool explored =
false;
32 Distribution<StateID> successors;
35 std::vector<State> stk_;
36 storage::PerStateStorage<ExplorationInfo> einfos_;
38 const std::shared_ptr<utils::RandomNumberGenerator> rng_;
39 const int max_search_states_;
42 explicit SamplingFlawFinder(
43 std::shared_ptr<utils::RandomNumberGenerator> rng,
44 int max_search_states);
46 ~SamplingFlawFinder()
override;
49 const ProbabilisticTaskProxy& task_proxy,
50 const StateRankingFunction& state_ranking_function,
51 const ProjectionStateSpace& mdp,
52 const ProjectionMultiPolicy& policy,
53 std::vector<Flaw>& flaws,
54 const std::function<
bool(
const Flaw&)>& notify_flaw,
55 utils::CountdownTimer& timer)
override;
57 std::string get_name()
override;
The top-level namespace of probabilistic Fast Downward.
Definition command_line.h:8