Fundamentals of Simulated Annealing