AI 24/25 Project Software
Documentation for the AI 24/25 course programming project software
Loading...
Searching...
No Matches
landmark_factory_reasonable_orders_hps.h
1#ifndef LANDMARKS_LANDMARK_FACTORY_REASONABLE_ORDERS_HPS_H
2#define LANDMARKS_LANDMARK_FACTORY_REASONABLE_ORDERS_HPS_H
3
4#include "downward/landmarks/landmark_factory.h"
5
6namespace landmarks {
7class LandmarkFactoryReasonableOrdersHPS : public LandmarkFactory {
8 std::shared_ptr<LandmarkFactory> lm_factory;
9
10 virtual void
11 generate_landmarks(const std::shared_ptr<AbstractTask>& task) override;
12
13 void approximate_reasonable_orders(const TaskProxy& task_proxy);
14 bool interferes(
15 const TaskProxy& task_proxy,
16 const Landmark& landmark_a,
17 const Landmark& landmark_b) const;
18 void collect_ancestors(
19 std::unordered_set<LandmarkNode*>& result,
20 LandmarkNode& node);
21 bool effect_always_happens(
22 const VariablesProxy& variables,
23 const EffectsProxy& effects,
24 std::set<FactPair>& eff) const;
25
26public:
27 LandmarkFactoryReasonableOrdersHPS(
28 const std::shared_ptr<LandmarkFactory>& lm_factory,
29 utils::Verbosity verbosity);
30
31 virtual bool supports_conditional_effects() const override;
32};
33} // namespace landmarks
34
35#endif