CS4601: Introduction to Intelligent Computing

Simulated Annealing (SA)


Motivation behind Simulated Annealing:

Basic Terms of SA:

SA Flowchart:

Step 1:
Choose a start point and set a high starting temperature T. Set the iteration count k to 1.
Step 2:
Evaluate the objective function:

Step 3:
Select with probability determined by the generating function . Set the new point equal to . (In conventional SA, also known as Boltzmann machines, the generating function is a Gaussian probability density function:

where () is the deviation of the new point from the current one, T is the temperature, and n is the dimension of the space under exploration.)

Step 4:
Calculate the new value of the objective function:

Step 5:
Set to and E to with probability determined by the acceptance function , where .
Step 6:
Reduce the temperature T according to the annealing schedule (usually by simply setting T equal to , where is a constant between 0 and 1).
Step 7:
Increment iteration count k. If k reaches the maximum iteration count, stop the iterating. Otherwise, go back to step 3.

SA for Discrete (Combinatorial) Optimization: An Example:

Travel Salesperson problem (TSP): how to transverse n cities once and only once with the minimal total distance?

Travel salesperson problem
Move sets for TSP:
Three possible types of move sets for travel salesperson problem
SA process:
(You can watch the animation of SA optimization process for TSP by executing the MATLAB file tsp.m located at ftp://ftp.cs.nthu.edu.tw/pub/CS/papers/jang/book/soft.)
Initial random path A path during SA process Final path after SA process


Results of variant problems:
Cost of cross the circle = 0 Cost of cross the circle = 0.5 Cost of cross the circle = -0.3


Advantages of SAs:

Weakness of SA:

Reported SA Applications:

Reference: Neuro-Fuzzy and Soft Computing


This page is maintained by Jyh-Shing Roger Jang. Comments and suggestions are welcome: jang@cs.nthu.edu.tw.