EasyLocalAPI reference iolab-uniud/easylocal

easylocal::runners::BestImprovement

Best Improvement (steepest descent): at each iteration the best move of the whole neighborhood is applied, while it strictly improves the cost.

Synopsis

Declared in <easylocal/runners/best_improvement.hpp>

class BestImprovement;

Description

Of equally good moves it applies the first in the order of moves(): ties are broken deterministically.

It stops at a local optimum, or when the evaluation budget is spent; the current solution is also the best one. Requires a neighborhood explorer that enumerates its moves (moves(), or a cursor) and a cost with better().

Type Aliases

NameDescription
parameters_type The parameter block of the algorithm.
search_requirements What the algorithm asks of the services it searches with.

Member Functions

NameDescription
BestImprovement [constructor]From its parameters.
run Runs the search from solution.

Static Data Members

NameDescription
deterministic It draws nothing at random: from the same solution, every run is the same, which a pipeline stage's attempts must not repeat.