AI 24/25 Project Software
Documentation for the AI 24/25 course programming project software
Loading...
Searching...
No Matches
hpom_constraints.h
1#ifndef PROBFD_OCCUPATION_MEASURES_HPOM_CONSTRAINTS_H
2#define PROBFD_OCCUPATION_MEASURES_HPOM_CONSTRAINTS_H
3
4#include "probfd/occupation_measures/constraint_generator.h"
5
6#include "probfd/fdr_types.h"
7
8#include <memory>
9#include <vector>
10
11// Forward Declarations
12class State;
13
14namespace lp {
15class LPSolver;
16class LinearProgram;
17} // namespace lp
18
19namespace probfd {
20class ProbabilisticTask;
21class ProbabilisticTaskProxy;
22} // namespace probfd
23
25
30class HPOMGenerator : public ConstraintGenerator {
31 std::vector<int> offset_;
32 mutable std::vector<int> reset_indices_;
33
34public:
35 void initialize_constraints(
36 const std::shared_ptr<ProbabilisticTask>& task,
37 const std::shared_ptr<FDRCostFunction>& task_cost_function,
38 lp::LinearProgram& lp) final;
39
40 void update_constraints(const State& state, lp::LPSolver& solver) final;
41 void reset_constraints(const State& state, lp::LPSolver& solver) final;
42
43 static void generate_hpom_lp(
44 const ProbabilisticTaskProxy& task_proxy,
45 const FDRCostFunction& task_cost_function,
46 lp::LinearProgram& lp,
47 std::vector<int>& offsets);
48};
49
50} // namespace probfd::occupation_measures
51
52#endif // PROBFD_OCCUPATION_MEASURES_HPOM_CONSTRAINTS_H
Proxy class used to inspect a probabilistic planning task.
Definition task_proxy.h:194
Implements the projection occupation measure heuristic constraints trevizan:etal:icaps-17 .
Definition hpom_constraints.h:30
Namespace dedicated to occupation measure heuristic base classes.
Definition occupation_measure_heuristic.h:10
The top-level namespace of probabilistic Fast Downward.
Definition command_line.h:8
SimpleCostFunction< State, OperatorID > FDRCostFunction
Type alias for cost functions for MDPs in FDR.
Definition fdr_types.h:36