4#include "downward/evaluation_result.h"
6#include "downward/utils/logging.h"
10class EvaluationContext;
14 const std::string description;
15 const bool use_for_reporting_minima;
16 const bool use_for_boosting;
17 const bool use_for_counting_evaluations;
20 mutable utils::LogProxy log;
24 bool use_for_reporting_minima,
25 bool use_for_boosting,
26 bool use_for_counting_evaluations,
27 const std::string& description,
28 utils::Verbosity verbosity);
29 virtual ~Evaluator() =
default;
37 virtual bool dead_ends_are_reliable()
const;
49 virtual void get_path_dependent_evaluators(std::set<Evaluator*>& evals) = 0;
51 virtual void notify_initial_state(
const State& ) {}
53 virtual void notify_state_transition(
80 virtual EvaluationResult
81 compute_result(EvaluationContext& eval_context) = 0;
83 void report_value_for_initial_state(
const EvaluationResult& result)
const;
84 void report_new_minimum_value(
const EvaluationResult& result)
const;
86 const std::string& get_description()
const;
87 bool is_used_for_reporting_minima()
const;
88 bool is_used_for_boosting()
const;
89 bool is_used_for_counting_evaluations()
const;
91 virtual bool does_cache_estimates()
const;
92 virtual bool is_estimate_cached(
const State& state)
const;
97 virtual int get_cached_estimate(
const State& state)
const;