Simulated Annealing
Download
Report
Transcript Simulated Annealing
Simulated Annealing
Contents
1. Basic Concepts
2. Algorithm
3. Practical considerations
1
Literature
1. Modern Heuristic Techniques for Combinatorial Problems,
(Ed) C.Reeves 1995, McGraw-Hill. Chapter 2.
2. Operations Scheduling with Applications in Manufacturing
and Services, Michael Pinedo and Xiuli Chao, McGraw Hill, 2000,
Chapter 3.6.
or
Scheduling, Theory, Algorithms, and Systems, Second Addition,
Michael Pinedo, Prentice Hall, 2002, Chapter 14.4
2
Basic Concepts
Allows moves to inferior solutions in order not to get stuck in
a poor local optimum.
c = F(Snew) - F(Sold)
F has to be minimised
inferior solution (c > 0) still accepted if U e
c
t
U is a random number from (0, 1) interval
t is a cooling parameter:
t is initially high - many moves are accepted
t is decreasing - inferior moves are nearly always rejected
• As the temperature decreases, the probability of accepting
worse moves decreases.
c > 0 inferior solution
-c < 0
t
c
t
c
e t
3
Algorithm
Step 1.
k=1
Select an initial schedule S1 using some heuristic and set Sbest = S1
Select an initial temperature t0 > 0
Select a temperature reduction function (t)
Step 2.
Select ScN(Sk)
If F(Sbest) < F(Sc)
If F(Sc) < F(Sk) then Sk+1 = Sc
else
generate a random uniform number Uk
F ( Sc ) F ( S k )
t
If Uk < e
else Sk+1 = Sk
else Sbest = Sc
Sk+1 = Sc
then Sk+1 = Sc
4
Step 3.
tk = (t)
k = k+1 ;
If stopping condition = true then STOP
else go to Step 2
5
Exercise.
Consider the following scheduling problem 1 | dj | wjTj .
jobs
pj
dj
wj
1
9
10
14
2
9
8
12
3
12
5
1
4
3
28
12
Apply the simulated annealing to the problem starting out with the
3, 1, 4, 2 as an initial sequence.
Neighbourhood: all schedules that can be obtained through
adjacent pairwise interchanges.
Select neighbours within the neigbourhood at random.
Choose (t) = 0.9 * t
t0 = 0.9
Use the following numbers as random numbers: 0.17, 0.91, ...
6
Sbest = S1 = 3, 1, 4, 2
F(S1) = wjTj = 1·7 + 14·11 + 12·0+ 12 ·25 = 461 = F(Sbest)
t0 = 0.9
Sc = 1, 3, 4, 2
F(Sc) = 316 < F(Sbest)
Sbest = 1, 3, 4, 2
F(Sbest) = 316
S2 = 1, 3, 4, 2
t = 0.9 · 0.9 = 0.81
Sc = 1, 3, 2, 4
F(Sc) = 340 > F(Sbest)
U1 = 0.17 > e
S3= 1, 3, 4, 2
t = 0.729
340316
0.81
= 1.35*10-13
7
Sc = 1, 4, 3, 2
F(Sc) = 319 > F(Sbest)
U3 = 0.91 > e
319316
0.729
= 0.016
S4= S4 = 1, 3, 4, 2
t = 0.6561
...
8
Practical considerations
Initial temperature
• must be "high"
• acceptance rate: 40%-60% seems to give good results
in many situations
Cooling schedule
• a number of moves at each temperature
• one move at each temperature
t = ·t
is typically in the interval [0.9, 0.99]
t
t
1 t
is typically close to 0
Stopping condition
• given number of iterations
• no improvement has been obtained for a given number of iteration
9