Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Simulated Annealing (SA) 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 3. 2. Scheduling, Theory, Algorithms, and Systems, Second Addition, Michael Pinedo, Prentice Hall, 2002, Chapter 14.4 3. Simulated Annealing:Theory and Applications, P.J.M. van Laarhoven and E.H.L. Aarts, Kluwer Academic Publishers, 1988. 2 Basic Concepts 1. Allows moves to inferior solutions in order not to get stuck in a poor local optimum. △c = F(Snew) - F(Sold) F is to be minimized. 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. 2. As the temperature decreases, the probability of accepting worse moves decreases. 3 △c > 0 - △c <0 inferior solution t c t c e t 4 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 Sc N(Sk). If F(Sbest) < F(Sc) If F(Sc) < F(Sk) then Sk+1 = Sc else generate acrandom uniform number Uk If Uk < e t then Sk+1 = Sc (where △c = F(Sc) - F(Sk) ) else Sk+1 = Sk else Sbest = Sc Sk+1 = Sc. 5 Step 3. tk = (t) k = k+1 ; If stopping condition = true then STOP else go to Step 2. 6 Example Consider the following scheduling problem 1 | | wjTj . j 1 2 3 4 pj 9 9 12 3 dj 10 8 5 28 wj 14 12 1 12 Apply the simulated annealing to the problem starting out with the 3, 1, 4, 2 as an initial sequence. Neighborhood: all schedules that can be obtained through adjacent pairwise interchanges. (Connectivity) 7 Select neighbors within neighborhood at random. Choose (t) = 0.9 * t t0 = 0.9 Use the following numbers as random numbers: 0.17, 0.91, ... 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) 8 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 > ( 340316) e 0.81 (= 1.35*10-13) S3= 1, 3, 4, 2 t = 0.81 · 0.9 = 0.729 9 Sc = 1, 4, 3, 2 F(Sc) = 319 > F(Sbest) U3 = 0.91 ( 319 316) > e 0.729 (= 0.016) S4= 1, 3, 4, 2 t = 0.729 · 0.9 = 0.6561 ... 10 Practical considerations Initial temperature: • must be "high" • acceptance rate: 40%-60% seems to give good results in many situations Cooling schedule: • single or multiple moves at each temperature t= ·t t= t 1 t is typically in the interval [0.9, 0.99] is typically close to 0 11 Stopping condition: • given number of iterations • given minimum temperature • no improvement has been obtained for a given number of iterations Note: SA often returns high quality solutions, in spite of its slow convergence. Threshold Accepting: - t = threshold value - if F(Sc)<F(Sk)+t, then Sk+1=Sc. 12