1#ifndef LANDMARKS_LANDMARK_FACTORY_REASONABLE_ORDERS_HPS_H
2#define LANDMARKS_LANDMARK_FACTORY_REASONABLE_ORDERS_HPS_H
4#include "downward/landmarks/landmark_factory.h"
7class LandmarkFactoryReasonableOrdersHPS :
public LandmarkFactory {
8 std::shared_ptr<LandmarkFactory> lm_factory;
11 generate_landmarks(
const std::shared_ptr<AbstractTask>& task)
override;
13 void approximate_reasonable_orders(
const TaskProxy& task_proxy);
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,
21 bool effect_always_happens(
22 const VariablesProxy& variables,
23 const EffectsProxy& effects,
24 std::set<FactPair>& eff)
const;
27 LandmarkFactoryReasonableOrdersHPS(
28 const std::shared_ptr<LandmarkFactory>& lm_factory,
29 utils::Verbosity verbosity);
31 virtual bool supports_conditional_effects()
const override;