1#ifndef MERGE_AND_SHRINK_SHRINK_STRATEGY_H
2#define MERGE_AND_SHRINK_SHRINK_STRATEGY_H
4#include "downward/merge_and_shrink/types.h"
13namespace merge_and_shrink {
15class TransitionSystem;
19 virtual std::string name()
const = 0;
20 virtual void dump_strategy_specific_options(utils::LogProxy& log)
const = 0;
23 ShrinkStrategy() =
default;
24 virtual ~ShrinkStrategy() =
default;
40 virtual StateEquivalenceRelation compute_equivalence_relation(
41 const TransitionSystem& ts,
42 const Distances& distances,
44 utils::LogProxy& log)
const = 0;
45 virtual bool requires_init_distances()
const = 0;
46 virtual bool requires_goal_distances()
const = 0;
48 void dump_options(utils::LogProxy& log)
const;
49 std::string get_name()
const;