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