The method of SA has been employed successfully in the literature to solve various classes of complex optimisation problems. The SA approach has specifically also been used in a number of cases to solve GMS model instances based on a single objective function. In 1991, Satoh and Nara [187], implemented the method of SA to solve a GMS model instance with the objective of minimising the sum total of production cost and maintenance cost. Saraiva et al. [185] formulated an MILP GMS model with the aim of minimising the operation cost over all the planning periods, and solved this model by means of SA by penalising unsupplied energy by a monetary value. Schl¨unz and van Vuuren [188, 189] presented an adapted benchmark system, called the IEEE-RTS, to which SA was applied in order to find good solutions in terms of minimising the sum of squared reserves. The SA approach has also been combined with other solution methodologies within the context of GMS, such as evolutionary techniques [37, 53, 141, 162] and constraint programming [98].
The method of SA was first introduced in 1983 by Kirkpatrick et al. [129] as a trajectory- based metaheuristic for solving optimisation problems and is based on the physical process of annealing in metallurgy. It was initially introduced as an approximate solution methodology for single-objective optimisation problems but has since been adapted for use in the context of multi-objective optimisation problems as well [18, 50, 197]. The method is described here in the original single-objective context. The search consists of iterative application of a modification process called the Metropolis algorithm and requires the following inputs:
• an initial solution, • an initial temperature,
• an appropriate cooling schedule, • an epoch10 management strategy,
• a neighbourhood move operator, and • end-of-search termination criteria.
The algorithm is initialised with an initial temperature T0 and an initial solution η0. During
each iteration of the search, the current solution ηi is modified by a selection
η0∈ N (ηi), (2.46)
where N (ηi) denotes the neighbourhood of ηi. This neighbourhood of a solution ηηη is populated by exhaustively applying a so-called move operator to η which entails perturbing η locally. A randomly selected neighbouring solution η0 is then compared to the current solution ηi. If η0 achieves an improvement in the objective function, which is also called the energy of the system, when compared to that of the corresponding value of ηi, the neighbouring solution is accepted with a probability of 1 (i.e. with certainty) and becomes the current new solution, i.e. ηi+1←η0. If, however, the neighbouring solution’s objective function value does not achieve an improvement over that of the current solution, the neighbouring solution is accepted with prob- ability exp(−∆E(ηi, η0)/Tk); i.e ηi+1←η0 if q < exp(−∆E(ηi, η0)/Tk), where q is a uniformly
distributed random variable on the unit interval, ∆E is the change in the energy and Tk is the
temperature of the search during the current epoch, k. The reason behind allowing the algo- rithm to accept a worsening solution with a certain probability is that it enables the algorithm to escape local optima. At a high temperature, the algorithm will accept the majority of worsening solutions, because then exp(−∆E(η, η0)/Tk) is close to 1. As the temperature decreases, how-
ever, exp(−∆E(η, η0)/Tk) tends to zero, which is expected to result in fewer worsening solutions
being accepted. For this reason, the SA algorithm should have a high initial temperature which will enable the algorithm initially to explore as many solutions in the solution space as possible, whereafter the algorithm is expected to converge to a locally optimal solution, or possibly a globally optimal solution, as the temperature decreases according to the cooling schedule in use. The two most commonly adopted cooling schedules in the literature on the GMS problem is an adaptive schedule proposed by Van Laarhoven and Aarts [211] and the more rigid geometric schedule. In both these schedules, a constant temperature is maintained for the entire epoch. The temperature of the search is decreased at the end of each epoch, and the durations of these epochs are determined dynamically during the search so as to promote metaheuristic flexibility. According to Dreo et al. [62], a general rule of thumb which may be used to terminate an epoch is when 12N solutions have been accepted or when 100N solutions have been attempted during the epoch, where N denotes a measure of the number of degrees of freedom of the search. The maximum length of an epoch is typically proportional to the number of possible neighbouring solutions, which is a measure of the number of degrees of freedom [189].
According to the cooling schedule proposed by Van Laarhoven and Aarts [211],
Tk+1 = Tk 1 1 +ln(1+δ)3σ k Tk ! , k = 0, 1, 2, . . . , (2.47)
where δ is a small real number and σk is the standard deviation of the change in objective
function at the end of epoch k. This schedule has proved to be very successful in the context of GMS problems, but is computationally expensive and time consuming to implement [1, 189]. The second cooling schedule is the geometric schedule which is more commonly used in practice due to the simplicity of implementing it and the rapid convergence to good solutions often obtained [2, 189, 205]. According to the geometric schedule,
Tk+1 = αTk, k = 0, 1, 2, . . . , (2.48)
where α is called the cooling parameter and is typically assigned a value between 0.5 and 0.99 [126]. Apart from the two cooling schedules mentioned above, there are also other cooling schedules in the literature which are not used as often. One such cooling schedule is that of Huang et al. [109] according to which
Tk+1= Tkexp −λTk σk , k = 0, 1, 2, . . . , (2.49)
where λ is a parameter that is typically assigned the value 0.7 [109, 189]. Another cooling schedule is the schedule proposed by Triki et al. [205] in 2005 according to which
Tk+1 = Tk 1 − Tk ∆k σ2 k , k = 0, 1, 2, . . . , (2.50)
where ∆k denotes the decrease in the mean objective function value during epoch k and σk is
again the standard deviation of the change in objective function during epoch k.
In 1987, van Laarhoven et al. [211] presented a method for calculating a problem-specific initial temperature T0 for the method of SA. The initial temperature is defined as T0 = −∆E(+)/χ0,
where ∆E(+) is the average increase in the objective function value (i.e. energy) of the system
for a minimisation problem (for maximisation it would be ∆E(−), the average decrease in the
objective function value) and where χ0 is the so-called acceptance ratio. This ratio is defined as
the number of accepted solutions which exhibit a deterioration in the objective function value divided by the number of attempted solutions which exhibit a deterioration in the objective function value. The ratio is typically set to a value between 0.5 and 0.8, as suggested by Busetti [38]. The average increase in the objective function value ∆E(+)is determined during a random
walk over a certain pre-specified length in the solution space, using the same initial solution as the starting point of the random walk as would be used during execution of the SA algorithm. Busetti [38] stated that the number of iterations spent in a single epoch k should be problem- dependent, rather than being a function of the epoch. A Markov chain of length Lk may be
used to determine the number of iterations within epoch k. Ideally, one would require a pre- specified parameter Amin which specifies the minimum number of move acceptances during
epoch k before lowering the temperature and moving on to the next epoch. As Tk approaches
zero, the probability of accepting non-improving solutions decreases which, in turn, increases the number of iterations required to achieve the minimum number Amin of move acceptances
per epoch. Therefore, an epoch will be terminated once a certain number of moves L have been attempted by reheating the temperature of the system to the initial temperature or decreasing the temperature according to the cooling schedule once Amin moves have been accepted, where
Amin and L are pre-specified parameters satisfying Amin < L. Dreo et al. [62] proposed that
Amin= 12N and L = 100N , where N is a measure of the number of degrees of freedom of the
optimisation problem under consideration.
During execution of the SA algorithm, the nondominated solution11 is archived. The initial solution is the first entry in the archive. If a neighbouring solution of the current solution is not dominated by the current archived solution, the neighbouring solution is archived and the previously archived solution is removed from the archive. The algorithm is typically initialised by an initial solution to a GMS problem instance by selecting a random starting time, according to a uniform distribution, for planned maintenance on PGU u ∈ U within the scheduling window of the problem. When selecting such a random starting time, the algorithm takes into account the service duration required to complete maintenance on PGU u ∈ U , but may violate the other soft constraints. This procedure is repeated for all PGUs in the power system.
The SA algorithm typically terminates when either one of two pre-specified states are reached within the system. The first is when the algorithm does not accept the minimum required acceptance number of 12N candidate solutions for three consecutive epochs. This state is referred to as the frozen state, since no more significant improvements can be made in the system. The second termination criterion for the SA algorithm is when a maximum number of iterations Imax have been performed. This number is usually selected as a large value so as
to ensure that the system terminates due to a frozen state rather than reaching the maximum number of iterations which may terminate the algorithm prematurely. This second termination criterion is introduced to limit the operating time of the system so as to ensure that the overall computation time is acceptable to the user.