1#ifndef LANDMARKS_LANDMARK_FACTORY_RELAXATION_H
2#define LANDMARKS_LANDMARK_FACTORY_RELAXATION_H
4#include "downward/landmarks/landmark_factory.h"
9class LandmarkFactoryRelaxation :
public LandmarkFactory {
11 explicit LandmarkFactoryRelaxation(utils::Verbosity verbosity);
17 bool relaxed_task_solvable(
18 const TaskProxy& task_proxy,
19 Exploration& exploration,
20 const Landmark& exclude)
const;
25 std::vector<std::vector<bool>> compute_relaxed_reachability(
26 Exploration& exploration,
27 const Landmark& exclude)
const;
30 void generate_landmarks(
const std::shared_ptr<AbstractTask>& task)
override;
32 virtual void generate_relaxed_landmarks(
33 const std::shared_ptr<AbstractTask>& task,
34 Exploration& exploration) = 0;
35 void postprocess(
const TaskProxy& task_proxy, Exploration& exploration);
37 void calc_achievers(
const TaskProxy& task_proxy, Exploration& exploration);
45 void discard_noncausal_landmarks(
46 const TaskProxy& task_proxy,
47 Exploration& exploration);
52 bool is_causal_landmark(
53 const TaskProxy& task_proxy,
54 Exploration& exploration,
55 const Landmark& landmark)
const;