1#ifndef PROBFD_QUOTIENT_SYSTEM_HEURISTIC_SEARCH_INTERFACE_H
2#define PROBFD_QUOTIENT_SYSTEM_HEURISTIC_SEARCH_INTERFACE_H
4#include "probfd/algorithms/fdr_types.h"
5#include "probfd/algorithms/open_list.h"
6#include "probfd/algorithms/policy_picker.h"
7#include "probfd/algorithms/successor_sampler.h"
9#include "probfd/quotients/quotient_system.h"
11#include "probfd/evaluator.h"
13namespace probfd::quotients {
15template <
typename State,
typename Action>
16class QuotientMaxHeuristic :
public Evaluator<QuotientState<State, Action>> {
17 using QState = QuotientState<State, Action>;
19 const Evaluator<State>& original_;
22 explicit QuotientMaxHeuristic(
const Evaluator<State>& original)
29 return state.member_maximum(
30 std::bind_front(&Evaluator<State>::evaluate, std::ref(original_)));
33 void print_statistics() const final { original_.print_statistics(); }
double value_t
Typedef for the state value type.
Definition aliases.h:7
typename std::conditional_t< is_cheap_to_copy_v< T >, T, const T & > param_type
Alias template defining the best way to pass a parameter of a given type.
Definition type_traits.h:25