1#ifndef SEARCH_ALGORITHMS_EAGER_SEARCH_H
2#define SEARCH_ALGORITHMS_EAGER_SEARCH_H
4#include "downward/open_list.h"
5#include "downward/search_algorithm.h"
14namespace eager_search {
15class EagerSearch :
public SearchAlgorithm {
16 const bool reopen_closed_nodes;
18 std::unique_ptr<StateOpenList> open_list;
19 std::shared_ptr<Evaluator> f_evaluator;
21 std::vector<Evaluator*> path_dependent_evaluators;
22 std::vector<std::shared_ptr<Evaluator>> preferred_operator_evaluators;
23 std::shared_ptr<Evaluator> lazy_evaluator;
25 std::shared_ptr<PruningMethod> pruning_method;
27 void start_f_value_statistics(EvaluationContext& eval_context);
28 void update_f_value_statistics(EvaluationContext& eval_context);
29 void reward_progress();
32 virtual void initialize()
override;
33 virtual SearchStatus step()
override;
37 const std::shared_ptr<OpenListFactory>& open,
39 const std::shared_ptr<Evaluator>& f_eval,
40 const std::vector<std::shared_ptr<Evaluator>>& preferred,
41 const std::shared_ptr<PruningMethod>& pruning,
42 const std::shared_ptr<Evaluator>& lazy_evaluator,
43 OperatorCost cost_type,
46 const std::string& description,
47 utils::Verbosity verbosity);
49 virtual void print_statistics()
const override;
51 void dump_search_space()
const;