Simulated Annealing

Description

Mutation Function

References

Thomas Weise - Metaheuristic Optimization

Th.Bäck A.E.Eiben J.N.Kok H.P.Spaink - Natural Computing Series

Pseudo Code
\begin{algorithm}
\caption{SA Algorithm}
\begin{algorithmic}
                \STATE $f \gets \text{the objective function subject to minization}$
                \STATE $shouldTerminate \gets \text{the termination criterion}$
                \STATE $x_{new} \gets random() \text{the newly generated individual}$
                \STATE $x_{cur} \gets x_new \text{the point currently investigated}$
                \STATE $\textit{Best} \gets x_cur \text{the best individual ever discovered}$
                \STATE $\textit{T} \gets \text{the temperature of the system which is decreased over time}$
                \STATE $t \gets 0$
                \WHILE{$shouldTerminate$}
                    \STATE $x_{new} \gets mutation(x_{cur})$
                    \STATE $\Delta E \gets x_{new} - x_{cur} $
                    \IF{$\Delta E \leq 0$}
                        \STATE $x_{cur} \gets x_{new}$
                        \IF{$f(\textit{Best}) > f(x_{cur})$}
                            \STATE $\textit{Best} \gets x_{cur}$
                        \ENDIF
                    \ELSE
                        \STATE $T \gets getsTemperature()$
                        \IF{$\text{randomly from [0,1]} < e^{-(\Delta E/T)}$}
                            \STATE $x_{cur} \gets x_{new}$
                        \ENDIF
                    \ENDIF
                    \STATE $t \gets t+1$
                \ENDWHILE
                \RETURN $\textit{Best}$
\end{algorithmic}
\end{algorithm}