1#ifndef MERGE_AND_SHRINK_UTILS_H
2#define MERGE_AND_SHRINK_UTILS_H
4#include "downward/merge_and_shrink/types.h"
13namespace merge_and_shrink {
14class FactoredTransitionSystem;
16class TransitionSystem;
31extern std::pair<int, int> compute_shrink_sizes(
34 int max_states_before_merge,
35 int max_states_after_merge);
49extern bool shrink_before_merge_step(
50 FactoredTransitionSystem& fts,
54 int max_states_before_merge,
55 int shrink_threshold_before_merge,
56 const ShrinkStrategy& shrink_strategy,
57 utils::LogProxy& log);
66extern bool prune_step(
67 FactoredTransitionSystem& fts,
69 bool prune_unreachable_states,
70 bool prune_irrelevant_states,
71 utils::LogProxy& log);
77extern std::vector<int> compute_abstraction_mapping(
79 const StateEquivalenceRelation& equivalence_relation);
81extern bool is_goal_relevant(
const TransitionSystem& ts);