1#ifndef SEARCH_ALGORITHMS_ITERATED_SEARCH_H
2#define SEARCH_ALGORITHMS_ITERATED_SEARCH_H
4#include "downward/search_algorithm.h"
9class SearchAlgorithmFactory;
11namespace iterated_search {
13class IteratedSearch :
public SearchAlgorithm {
14 std::vector<std::shared_ptr<SearchAlgorithmFactory>> algorithm_configs;
17 bool repeat_last_phase;
18 bool continue_on_fail;
19 bool continue_on_solve;
22 bool last_phase_found_solution;
24 bool iterated_found_solution;
26 std::shared_ptr<SearchAlgorithm>
27 get_search_algorithm(
int algorithm_configs_index);
28 std::shared_ptr<SearchAlgorithm> create_current_phase();
29 SearchStatus step_return_value();
31 virtual SearchStatus step()
override;
35 OperatorCost operator_cost,
38 std::string description,
39 utils::Verbosity verbosity,
40 std::vector<std::shared_ptr<SearchAlgorithmFactory>> algorithm_configs,
43 bool continue_on_fail,
44 bool continue_on_solve);
46 ~IteratedSearch()
override;
48 virtual void save_plan_if_necessary()
override;
49 virtual void print_statistics()
const override;