1#ifndef PROBFD_PDBS_CEGAR_PUCS_FLAW_FINDER_H
2#define PROBFD_PDBS_CEGAR_PUCS_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 "probfd/value_type.h"
12#include "downward/algorithms/priority_queues.h"
14#include "downward/task_proxy.h"
17#include <unordered_set>
23namespace probfd::pdbs::cegar {
25class PUCSFlawFinder :
public FlawFindingStrategy {
26 struct ExpansionInfo {
27 bool expanded =
false;
28 value_t path_probability = 0_vt;
31 priority_queues::HeapQueue<value_t, State> pq_;
32 storage::PerStateStorage<ExpansionInfo> probabilities_;
34 const int max_search_states_;
37 explicit PUCSFlawFinder(
int max_search_states);
40 const ProbabilisticTaskProxy& task_proxy,
41 const StateRankingFunction& state_ranking_function,
42 const ProjectionStateSpace& mdp,
43 const ProjectionMultiPolicy& policy,
44 std::vector<Flaw>& flaws,
45 const std::function<
bool(
const Flaw&)>& notify_flaw,
46 utils::CountdownTimer& timer)
override;
48 std::string get_name()
override;
double value_t
Typedef for the state value type.
Definition aliases.h:7