simulated annealing solver