Add self-terminating random descent algorithm that generates all moves when a new current solution has been adopted, randomly validating and evaluating one of these moves in every subsequent step until an improvement is found or the entire neighbourhood has been explored.
Advantage: automatically terminates when the neighbourhood does not contain further improvements.
Disadvantage: overhead for generating all moves instead of a single random move.
Instead of this algorithm, a first descent strategy will be provided (see #19). First descent also terminates automatically and avoids that all moves have to be generated.
Add self-terminating random descent algorithm that generates all moves when a new current solution has been adopted, randomly validating and evaluating one of these moves in every subsequent step until an improvement is found or the entire neighbourhood has been explored.
Advantage: automatically terminates when the neighbourhood does not contain further improvements.
Disadvantage: overhead for generating all moves instead of a single random move.