THE LOCAL SEARCH ALGORITHM initialize X while (fitness(X)fitness(X)) X=X' // Selection } 1. Restart As long as it doesn't devolve into random search. watch out for high numbers of local opt or deceptive landscapes 2. Simulated Annealing k = 0 T = T_max // starting temp (hot!) while (T>T_min) { for (i=0; i fitness(X)) { X = X' // good move } else { // is bad move OK? bad = fitness(X) - fitness(X') // how bad is it? (positive) if ( prob(Exp[-bad/T]) ) X = X' } } T = coolit(T, k) // T *= 0.99 k++ }