simulated annealing option added