Simulated Annealing Paper - Denison University

14
Simulated Annealing Nate Schmidt 1. Introduction Optimization problems have been around for a long time and many of them are NP-Complete. In this paper, we will focus especially on the Traveling Salesman Problem (TSP) and the Flow Shop Scheduling Problem (FSSP). There have been many heuristic methods developed to solve these problems, but many of these only work on very specific cases. Furthermore, these heuristic methods generally only find a local optimum instead of the global optimum. For the TSP and FSSP, in particular, these heuristics do not work well because these problems have many locally optimal solutions, but only one globally optimal solution. In 1953, Metropolis developed a method for solving optimization problems that mimics the way thermodynamic systems go from one energy level to another [2]. He thought of this after simulating a heat bath on certain chemicals. This method, “require[s] that a system of particles exhibit energy levels in a manner that maximizes the thermodynamic entropy at a given temperature value.” [2] Also, the average energy level must be proportional to the temperature, which is constant [2]. This method is called Simulated Annealing (SA). Kirkpatrick originally thought of using SA on computer related problems. He did this in 1983 and applied SA to various optimization problems [1]. From there, many other people have worked on it and have applied it to many optimization problems. SA is

Transcript of Simulated Annealing Paper - Denison University

Page 1: Simulated Annealing Paper - Denison University

Simulated Annealing

Nate Schmidt

1. Introduction

Optimization problems have been around for a long time and many of them are

NP-Complete. In this paper, we will focus especially on the Traveling Salesman Problem

(TSP) and the Flow Shop Scheduling Problem (FSSP). There have been many heuristic

methods developed to solve these problems, but many of these only work on very

specific cases. Furthermore, these heuristic methods generally only find a local optimum

instead of the global optimum. For the TSP and FSSP, in particular, these heuristics do

not work well because these problems have many locally optimal solutions, but only one

globally optimal solution.

In 1953, Metropolis developed a method for solving optimization problems that

mimics the way thermodynamic systems go from one energy level to another [2]. He

thought of this after simulating a heat bath on certain chemicals. This method,

“require[s] that a system of particles exhibit energy levels in a manner that maximizes the

thermodynamic entropy at a given temperature value.” [2] Also, the average energy level

must be proportional to the temperature, which is constant [2]. This method is called

Simulated Annealing (SA).

Kirkpatrick originally thought of using SA on computer related problems. He did

this in 1983 and applied SA to various optimization problems [1]. From there, many

other people have worked on it and have applied it to many optimization problems. SA is

Page 2: Simulated Annealing Paper - Denison University

2

a good algorithm because it is relatively general and tends to not get stuck in local

minimum or maximum.

SA is based on the annealing of metals. If a metal is cooled slowly, it forms into a

smooth piece because its molecules have entered a crystal structure. This crystal

structure represents the minimum energy state, or the optimal solution, for an

optimization problem. If a metal is cooled too fast, the metal will form a jagged piece

that is rough and covered with bumps. These bumps and jagged edges represent the local

minimums and maximums.

Metropolis created an algorithm, which is also known as the Metropolis rule of

probability, to simulate annealing through a series of moves. During each move, the

system has some probability of changing its current configuration. The probability can

be summarized by e-(E2-E1)/kT

, where E1 is the cost of the current configuration and E2 is

the cost of the changed configuration [1]. This equation can also be called the Metropolis

Criterion in relation to the SA algorithm. This ability to change configurations is what

enables SA to jump out of local maxima or minima where most algorithms get stuck.

Several parameters need to be included in an implementation of SA. These are

summarized nicely by Davidson and Harel [1]:

-The set of configurations, or states, of the system, including an initial

configuration (which is often chosen at random).

-A generation rule for new configurations, which is usually obtained by

defining the neighborhood of each configuration and choosing the next

configuration randomly from the neighborhood of the current one.

Page 3: Simulated Annealing Paper - Denison University

3

-The target, or cost, function, to be minimized over the configuration

space. (This is the analogue of the energy.)

-The cooling schedule of the control parameter, including initial values

and rules for when and how to change it. (This is the analogue of the

temperature and its decreases.)

-The termination condition, which is usually based on the time and the

values of the cost function and/or the control parameter.

In order to get a better idea of how a general SA algorithm works, the following

example will run through the basic idea for an SA algorithm. First, we need to decide a

start and stop temperature. At any given time during the algorithm, the temperature, T,

will be in-between the starting and stopping temperatures. This is important because

temperature, T, is used in the probability equation. The probability equation, as defined

by Metropolis, is e-(E2-E1)/kT

, where k is some constant that is chosen to suit the specific

problem, E2 is the new configuration, and E1 is the current configuration. This

probability equation can be completely changed to better suit a specific problem, which

we will see later on. Whatever the probability equation ends up being it is used to

determine whether a new configuration is accepted or not. SA starts by choosing some

random configuration that solves the problem. There is an objective function that

determines the cost of the given configuration. It is this function that is being minimized

(or maximized depending on what the optimal solution is). The cost of the original,

randomly chosen configuration is then computed. Considering we are still at the original

temperature, SA generates n new configurations one at a time. Each new configuration is

based off of the old configuration. The costs of the two configurations are then

Page 4: Simulated Annealing Paper - Denison University

4

compared. If the new configuration is better than the current configuration it is

automatically accepted. If the new configuration is worse than the current one it is then

accepted or not based on the outcome of the probability equation, where E1 is the cost of

the current configuration and E2 is the cost of the new configuration. After this process

of finding a new configuration, comparing it to the current configuration, and either

accepting or rejecting it is done n times, the temperature changes. The rate of change for

the temperature is also based on the specific problem and the amount of time the user

wants SA to run for. The number of iterations, n, is also chosen this way. This process

then repeats until the stopping temperature is reached. As the temperature cools, the

probability for selecting a new configuration becomes less. This makes sense because

this is similar to the molecules in a piece of metal, the configurations are not moving

around as much. This is the basic idea behind SA and how it works.

One final thing to note before looking at specific examples of SA is that SA does

have a random property. It is for this reason that SA might not always or, in some cases

never, find the optimal solution to a given problem. However, it will almost always find

a better solution than traditional heuristics. Also, if the cost function has really steep

maxima or minima and is really jagged, the probability of SA finding them decreases

significantly [1]. It should also be noted that, in order for SA to work with a specific

problem, the probability equation for changing configurations has to change in order to fit

the problem.

2. Simulated Annealing and the Traveling Salesperson Problem.

Page 5: Simulated Annealing Paper - Denison University

5

The first problem to which we will apply SA is perhaps one of the oldest NP-

Complete problems: the Traveling Salesperson Problem. The definition of the problem

is as follows: you have n cities with the distances between these cities being non-

negative in a weighted graph and the goal is to find the least costly way to make a tour by

touching all the nodes exactly once and returning to the source. So far, the only way to

guarantee that the globally optimal solution is found is to use backtracking. This,

however, requires O(n!) time.

When SA is applied to the TSP there is a possibility that the solution will not be

globally optional. However, the solution will usually be better than the standard local

optimization algorithm. The algorithm starts at a random temperature. Then a sequence

of moves is taken during that temperature. A move consists of creating a new

configuration and then either accepting or rejecting it based on the probability equation.

When a move is accepted, the temperature is changed and this is repeated. The higher the

temperature, the more likely SA is going to accept a given step [5]. According to

Schneider [5], this probability can be represented using the Hamiltonian Equation, p(_i ->

_i+1) = min{1, exp(-_H /T)}, where _H = H(_i+1) – H(_i) represents the difference

between the two different configurations [5].

Schneider developed a time-dependent algorithm for the Traveling Salesperson

Problem, which accounts for the amount of time that the salesman would spend in traffic

jams. In order to do this Schneider had to change the definition of the problem to include

a traffic jam factor f > 1. This f factor is multiplied by the time it takes to get from point

A to point B. If there is a lot of traffic between point A and point B, then the f factor is

larger. If there is not that much traffic, then the f factor is smaller with lower bounds of

Page 6: Simulated Annealing Paper - Denison University

6

one. Taking this into consideration, the Hamiltonian Equation then becomes H = Hopt +

Hde + Htime where Hopt + Hde is the original length of the tour plus the detour and Htime is

the amount of time the salesman had to wait in traffic jams [5]. This takes care of the

compromises that the salesman has to make as he makes his way through the city (he will

have to decide whether to take alternative roads in order to go around congestion.) This

problem is still being researched and SA is being used in order to find optimal solutions.

Taking traffic jams into account makes it substantially harder to write a heuristic

algorithm for this problem because it creates more local maximums and minimums, but

due to SA’s special nature, SA can still be applied.

Herault [3] noticed that SA took a long time to find an optimal solution. To

remedy this, he decided to create an algorithm based on SA that helps to lessen the run

time of SA called rescaled simulated annealing (RSA). The only thing that Herault

changed about SA is the Metropolis Criterion. At the end of it he rescaled the energy

state Ei = (E(1/2)

– (Etarget)(1/2)

)2 where E represents the new configuration and Etarget

represents the current configuration. Now, “at high target energies, the minima of the

rescaled energy landscape correspond to the maxima of the function to be minimized.

Thus, if initially Etarget is high, the most probable states at the beginning of the search are

the minima of the rescaled energy landscape, i.e. the crests of the original energy

landscape” [3]. It should be noted that when Herault says energy landscape it stands for

configuration. When E gets smaller, the configuration converges towards the original

configuration and eventually the minima in the rescaled energy landscape will be equal to

the minima in the original energy landscape, these are then also the optimal solution. The

pseudo-code for Herault’s algorithm, where _E is the change in cost, c is equal to c0,

Page 7: Simulated Annealing Paper - Denison University

7

which is the temperature of the first trial, and _ is equal to _1/2

= a1/2

= E1/2

/c0 is as

follows: [3]

While “stopping criterion” is not satisfied do

While “inner loop criterion” is not satisfied do

If i is the current state, generate a state j in the

neighborhood of i.

Compute _E = Ej – Ei.

Rescale the energy variation: _E := _E – 2_c((Ei + _E)(1/2)

Ei(1/2)

).

Accept the transition with the probability Aij:

Aij(c) = 1 if _E <= 0

exp(-_E/cm) otherwise

end while

Update the temperature parameter cm+1 := Update(cm).

M := m + 1

end while

When Herault’s algorithm is implemented for TSP the results are what we would

expect them to be. The results can be seen by the two following graphs [3].

Page 8: Simulated Annealing Paper - Denison University

8

As can be seen, RSA performed just as well as SA and took less time [3].

3. Simulated Annealing and the Flow Shop Problem.

Page 9: Simulated Annealing Paper - Denison University

9

The Flow Shop Problem is another optimization problem that can be solved using

SA. The problem is defined as follows: n jobs are to be run on machines 1, 2, … , m, in

that order. The run time of job j on machine i is stated as p(i, j). A sequence of jobs {J1,

J2, … , Jn} can be run in a given configuration Cmar = C(m, Jn). The following minimizes

this configuration: [4]

C(1, J1) = p(1, J1)

C(1, Jj) = C(1, Jj-1) + p(1, Jj), j = 2, …, n.

C(i, J1) = C(1, J1) + p(i, J1), i = 2, …, m.

C(i, Jj) = max {C(i, Jj-1), C(i-1, Jj)} + p(i, Jj), j = 2, …, n; i = 2, …, m.

This problem is NP-Complete, which was proved by Rinnooy Kan in 1976 [4]. Liu

noticed that a lot of research had been done on improving the parameters of the cooling

schedule for SA, however, not much has been done on configurations (a configuration

being a structure that achieves the specifications of the problems, but not necessarily

being the globally optimal solution). Recall that SA starts out with a relatively random

solution. Another temporary solution is then created based on the configuration of the

first solution. If the temporary solution is a more optimal solution than the current

solution, then it is accepted and becomes the current solution. If the temporary solution

is not more optimal than the current solution, then it is either accepted or rejected based

on the probability equation and the process repeats. Liu decided to use the FSSP to test

out different sized neighborhoods and he found that SA fluctuated greatly when the size

of the neighborhood changed (in this case the neighborhood would be the number of jobs

and the number of machines). Liu used the following notation for parameters: initial

temperature is denoted as C0, the temperature-decreasing factor is denoted as _, the

number of trials for each temperature is N0, and the initial acceptance probability is _0. In

order to have the same fixed _0 for all SA procedures being tested Liu made a small

Page 10: Simulated Annealing Paper - Denison University

10

change to the SA probability of acceptance equation by adding the Boltzmann constant k,

_0 = exp{-[Cmax(s) – Cmax(s0)]/kc} [4] where C0 is the initial temperature, Cends is the

stopping temperature, and k is estimated by computing Cmax(s) – Cmax(s0).

Liu then ran the Taillard (1993) set of benchmarks for the FSSP using 3 SA

algorithms; he compared two SA algorithms and an SA algorithm with a variable

neighborhood size. The results can be seen on the following table [4].

Liu found that in terms of performance all SA algorithms performed well. The

SA algorithm that has a neighborhood variable performed better on large neighborhoods

when run quickly (with a small N0). For small neighborhoods, the SA algorithm with a

neighborhood variable performs better when run with a large N0 [4].

Zegordi, Itoh, and Enkawa [6] also used SA on the FSSP. They proposed that the

optimal way to solve this problem is to move jobs either forward or backward in the

sequence, and then apply the SA algorithm to that. The cost for moving a job forward or

backwards is given in terms of the Move Desirability of Jobs index (MDJ index) [6].

This MDJ index is generated by breaking down all the jobs to a theoretical two machine

system. For the MDJ index, the jobs that have increasing processing time as the jobs run

through are given a higher priority compared to jobs that have decreasing processing

Page 11: Simulated Annealing Paper - Denison University

11

time. SA is then run on the system. Zegordi, Itoh, and Emkawa [6] used Connolloy’s

method, which consists of doing a number of random pairwise exchanges in order to see

the resulting changes in the objective function. From this, _fmax and _fmin are calculated

by performing a few random pairwise exchanges and recording the result of the change in

the objective function for each [6]. The objective function is the function that determines

the cost of the given solution. T0, the initial temperature, and Tf, the final temperature,

are set by using the following equations: [6]

T0 = _fmin + (1/10)( _fmax - _fmin),

Tf = _fmin

The temperature is then changed by the equation Ti+1 = Ti * .95, which is incremented

when the index of the MDJ is less than or equal to 0. SA then runs until “all of the pairs

are either a member of FB1 or FB2” (FB1 denotes a set of already chosen pairs that were

rejected during the accepting process for the current temperature and FB2 is a set of

previously accepted pairs) or the final temperature is reached. When either of these

criterions is satisfied the algorithm stops [6]. The following, figure 2, is a flow chart for

the algorithm as given by Zegordi, Itoh, and Enkawa [6].

Page 12: Simulated Annealing Paper - Denison University

12

Page 13: Simulated Annealing Paper - Denison University

13

SA performed better than both CDS (the method of Campbell, Dudek, and Smith)

and NEH (the method of Naway, Enscore, and Ham) for relatively small size problems

[6]. On medium sized problems, SA performed better than both NEH and CDS by a

larger margin [6]. On larger scale problems, SA easily beat NEH and CDS [6]. The

newly proposed SA produced better solutions than NEH in 89% of the cases and 100% of

the cases against CDS [6].

4. Conclusion.

In conclusion, Simulated Annealing is one of the best algorithms today for

solving optimization problems. It solves optimal problems by simulating how metal

cools into a crystal structure; if the minimal and maximum points on a dried piece of

metal can be determined, then so can many things in computer science. We have

discussed two algorithms each for two different problems. The basic SA algorithm

doesn’t work well for either the Traveling Salesman Problem or the Flow Shop Problem.

However, when the algorithm is modified a little to better suit the problem, SA works

extremely well. Due to the fact that there is no general SA algorithm that works well for

all problems out there, there is still much to be done in terms of research about SA.

5. References.

[1] Davidson, Ron and David Harel. 1996. Drawing Graphs Nicely Using Simulated

Annealing. ACM Transactions on Graphics, Vol. 15, No. 4, pp. 301-331.

[2] Fleischer, Mark. 1995. Simulated Annealing: Past, Present, and Future.

Proceedings of the 1995 Winter Simulation Conference, Department of

Engineering Management, Old Dominion University, Norfolk, VA.

Page 14: Simulated Annealing Paper - Denison University

14

[3] Herault, L. 2000. Rescaled Simulated Annealing-Accelerating Convergence of

Simulated Annealing by Rescaling the States Energies. Journal of Heuristics, No.

6, pp. 215-252.

[4] Liu, Jiyin. 1999. The Impact of Neighbourhood Size on the Process of Simulated

Annealing: Computational Experiments on the Flowshop Scheduling Problem.

Computer & Industrial Engineering, No. 37, pp. 285-288.

[5] Schneider, Johannes. 2002. The Time-Dependent Traveling Salesman Problem.

Physica, Vol. A, No. 314, pp. 151-155.

[6] Zegordi, Seyed H., Kenji Itoh, and Takao Enkawa. 1995. Minimizing the

Makespan for Flow Shop Scheduling by Combining Simulated Annealing with

Sequencing Knowledge. European Journal of Operational Research, No. 85, pp.

515-531.