diff --git a/src/search/search_algorithms/iterated_search.cc b/src/search/search_algorithms/iterated_search.cc index 83f66890bd..5755623be2 100644 --- a/src/search/search_algorithms/iterated_search.cc +++ b/src/search/search_algorithms/iterated_search.cc @@ -47,9 +47,7 @@ shared_ptr IteratedSearch::create_current_phase() { this overrides continue_on_fail. */ if (repeat_last_phase && last_phase_found_solution) { - return get_search_algorithm( - algorithm_configs.size() - - 1); + return get_search_algorithm(algorithm_configs.size() - 1); } else { return nullptr; } @@ -63,7 +61,7 @@ SearchStatus IteratedSearch::step() { if (!current_search) { return found_solution() ? SOLVED : FAILED; } - if (pass_bound) { + if (pass_bound && best_bound < current_search->get_bound()) { current_search->set_bound(best_bound); } ++phase; @@ -143,8 +141,10 @@ class IteratedSearchFeature true); add_option( "pass_bound", - "use bound from previous search. The bound is the real cost " - "of the plan found before, regardless of the cost_type parameter.", + "use the bound of iterated search as a bound for its component " + "search algorithms, unless these already have a lower bound set. " + "The iterated search bound is tightened whenever a component finds " + "a cheaper plan.", "true"); add_option( "repeat_last",