1#ifndef PROBFD_PDBS_CEGAR_BFS_FLAW_FINDER_H
2#define PROBFD_PDBS_CEGAR_BFS_FLAW_FINDER_H
4#include "probfd/pdbs/cegar/flaw_finding_strategy.h"
6#include "probfd/pdbs/types.h"
8#include "probfd/storage/per_state_storage.h"
10#include "downward/task_proxy.h"
14#include <unordered_set>
17namespace probfd::pdbs::cegar {
19class BFSFlawFinder :
public FlawFindingStrategy {
20 std::deque<State> open_;
21 storage::PerStateStorage<bool> closed_;
23 const int max_search_states_;
26 explicit BFSFlawFinder(
int max_search_states);
29 const ProbabilisticTaskProxy& task_proxy,
30 const StateRankingFunction& state_ranking_function,
31 const ProjectionStateSpace& mdp,
32 const ProjectionMultiPolicy& policy,
33 std::vector<Flaw>& flaws,
34 const std::function<
bool(
const Flaw&)>& notify_flaw,
35 utils::CountdownTimer& timer)
override;
37 std::string get_name()
override;