Dealing with Local Optima: Randomization and Restarts
Randomization can be an invaluable ally in local search. It is typically used in two
ways: to pick a random initial solution, for instance a random graph partition; and
to choose a local move when several are available.
When there are many local optima, randomization is a way of making sure that
there is at least some probability of getting to the right one. The local search can
then be repeated several times, with a different random seed on each invocation,
and the best solution returned. If the probability of reaching a good local optimum
on any given run is p, then within O (1 / p) runs such a solution is likely to be found.