AI 24/25 Project Software
Documentation for the AI 24/25 course programming project software
Loading...
Searching...
No Matches
occupation_measure_heuristic.h
1#ifndef PROBFD_HEURISTICS_OCCUPATION_MEASURE_HEURISTIC_H
2#define PROBFD_HEURISTICS_OCCUPATION_MEASURE_HEURISTIC_H
3
4#include "probfd/heuristics/lp_heuristic.h"
5#include "probfd/task_evaluator_factory.h"
6
7#include <memory>
8
9// Forward Declarations
11class ConstraintGenerator;
12}
13
14namespace probfd::heuristics {
15
21 : public LPHeuristic<OccupationMeasureHeuristic> {
23
24protected:
25 std::shared_ptr<occupation_measures::ConstraintGenerator>
26 constraint_generator_;
27
28public:
30 std::shared_ptr<ProbabilisticTask> task,
31 std::shared_ptr<FDRCostFunction> task_cost_function,
32 utils::LogProxy log,
33 lp::LPSolverType solver_type,
34 std::shared_ptr<occupation_measures::ConstraintGenerator>
35 constraint_generator);
36
37private:
38 void update_constraints(const State& state) const;
39 void reset_constraints(const State& state) const;
40};
41
42class OccupationMeasureHeuristicFactory : public TaskEvaluatorFactory {
43 const utils::Verbosity verbosity_;
44 const lp::LPSolverType lp_solver_type_;
45 const std::shared_ptr<occupation_measures::ConstraintGenerator>
46 constraints_;
47
48public:
49 OccupationMeasureHeuristicFactory(
50 utils::Verbosity verbosity,
51 lp::LPSolverType lp_solver_type,
52 const std::shared_ptr<occupation_measures::ConstraintGenerator>&
53 constraints);
54
55 std::unique_ptr<FDREvaluator> create_evaluator(
56 std::shared_ptr<ProbabilisticTask> task,
57 std::shared_ptr<FDRCostFunction> task_cost_function) override;
58};
59
60} // namespace probfd::heuristics
61
62#endif // PROBFD_HEURISTICS_OCCUPATION_MEASURE_HEURISTIC_H
Base class for heuristics based on linear programming.
Definition lp_heuristic.h:24
Implements an occupation measure heuristic built from the specified LP constraints.
Definition occupation_measure_heuristic.h:21
This namespace contains heuristic implementations.
Definition additive_cartesian_heuristic.h:19
Namespace dedicated to occupation measure heuristic base classes.
Definition occupation_measure_heuristic.h:10