120 likes | 371 Views
Simulated Annealing. Contents 1. Basic Concepts 2. Algorithm 3. Practical considerations. t . . . Basic Concepts. Allows moves to inferior solutions in order not to get stuck in a poor local optimum. c = F ( S new ) - F ( S old ) F has to be minimised.
E N D
Simulated Annealing Contents 1. Basic Concepts 2. Algorithm 3. Practical considerations
t 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 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
Algorithm Step 1. k=1 Select an initial schedule S1 using some heuristic and set Sbest = S1 Select an initial temperature t0 > 0Select 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 If Uk < then Sk+1 = Sc else Sk+1 = Sk else Sbest = Sc Sk+1 = Sc
Step 3. tk = (t) k = k+1 ; If stopping condition = true then STOP else go to Step 2
Exercise. Consider the following scheduling problem for minimizing the total Weighted tardiness (tardiness is amount a job exceeds deadline) . Apply the simulated annealing to the problem starting out with the3, 1, 4, 2 as an initial sequence. Neighbourhood: all schedules that can be obtained throughadjacent 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, ...
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 > = 1.35*10-13 S3= 1, 3, 4, 2 t = 0.729
Sc = 1, 4, 3, 2 F(Sc) = 319 > F(Sbest) U3 = 0.91 > = 0.016 S4= S4 = 1, 3, 4, 2 t = 0.6561 ...
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] is typically close to 0 • Stopping condition • given number of iterations • no improvement has been obtained for a given number of iteration