Bat algorithm based on simulated annealing and Gaussian perturbations