Simulated annealing algorithms