AI 24/25 Project Software
Documentation for the AI 24/25 course programming project software
Loading...
Searching...
No Matches
bfs_flaw_finder.h
1#ifndef PROBFD_PDBS_CEGAR_BFS_FLAW_FINDER_H
2#define PROBFD_PDBS_CEGAR_BFS_FLAW_FINDER_H
3
4#include "probfd/pdbs/cegar/flaw_finding_strategy.h"
5
6#include "probfd/pdbs/types.h"
7
8#include "probfd/storage/per_state_storage.h"
9
10#include "downward/task_proxy.h"
11
12#include <deque>
13#include <string>
14#include <unordered_set>
15#include <vector>
16
17namespace probfd::pdbs::cegar {
18
19class BFSFlawFinder : public FlawFindingStrategy {
20 std::deque<State> open_;
21 storage::PerStateStorage<bool> closed_;
22
23 const int max_search_states_;
24
25public:
26 explicit BFSFlawFinder(int max_search_states);
27
28 bool apply_policy(
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;
36
37 std::string get_name() override;
38};
39
40} // namespace probfd::pdbs::cegar
41
42#endif // PROBFD_PDBS_CEGAR_BFS_FLAW_FINDER_H