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
| Name | Description |
|---|---|
parameters_type | The parameter block of the algorithm. |
search_requirements | What the algorithm asks of the services it searches with. |
Member Functions
| Name | Description |
|---|---|
BestImprovement [constructor] | From its parameters. |
run | Runs the search from solution. |
Static Data Members
| Name | Description |
|---|---|
deterministic | It draws nothing at random: from the same solution, every run is the same, which a pipeline stage's attempts must not repeat. |