AI 24/25 Project Software
Documentation for the AI 24/25 course programming project software
Loading...
Searching...
No Matches
ilao_policy_generator.h
1#ifndef PROBFD_CARTESIAN_ABSTRACTIONS_ILAO_POLICY_GENERATOR_H
2#define PROBFD_CARTESIAN_ABSTRACTIONS_ILAO_POLICY_GENERATOR_H
3
4#include "probfd/cartesian_abstractions/policy_generator.h"
5#include "probfd/cartesian_abstractions/types.h"
6
7#include <memory>
8
9// Forward Declarations
10namespace utils {
11class CountdownTimer;
12}
13
14namespace probfd::quotients {
15template <typename, typename>
16struct QuotientState;
17template <typename>
18struct QuotientAction;
19} // namespace probfd::quotients
20
21namespace probfd::policy_pickers {
22template <typename State, typename Action>
23class ArbitraryTiebreaker;
24}
25
26namespace probfd::cartesian_abstractions {
27class AbstractState;
28class CartesianAbstraction;
29class CartesianHeuristic;
30struct ProbabilisticTransition;
31} // namespace probfd::cartesian_abstractions
32
33namespace probfd::cartesian_abstractions {
34
38class ILAOPolicyGenerator : public PolicyGenerator {
39 std::shared_ptr<policy_pickers::ArbitraryTiebreaker<
40 quotients::QuotientState<int, const ProbabilisticTransition*>,
41 quotients::QuotientAction<const ProbabilisticTransition*>>>
42 picker_;
43
44public:
46
47 std::unique_ptr<Solution> find_solution(
48 CartesianAbstraction& abstraction,
49 const AbstractState* init_id,
50 CartesianHeuristic& heuristic,
51 utils::CountdownTimer& time_limit) override;
52};
53
54} // namespace probfd::cartesian_abstractions
55
56#endif // PROBFD_CARTESIAN_ABSTRACTIONS_ILAO_POLICY_GENERATOR_H
Find an optimal policy using ILAO*.
Definition ilao_policy_generator.h:38
QuotientAction
Represents an action in the probabilistic bisimulation quotient.
Definition types.h:12
QuotientState
Represents a state in the probabilistic bisimulation quotient.
Definition types.h:9