\section{moSA$<$ M $>$ Class Template Reference}
\label{classmo_s_a}\index{moSA@{moSA}}
Simulated Annealing (SA).  


{\tt \#include $<$moSA.h$>$}

Inherits {\bf moAlgo$<$ M::EOType $>$}.

\subsection*{Public Member Functions}
\begin{CompactItemize}
\item 
{\bf moSA} ({\bf moRandMove}$<$ M $>$ \&\_\-random\_\-move\_\-generator, {\bf moMoveIncrEval}$<$ M $>$ \&\_\-incremental\_\-evaluation, {\bf moSolContinue}$<$ {\bf EOT} $>$ \&\_\-continue, double \_\-initial\_\-temperature, {\bf moCoolingSchedule} \&\_\-cooling\_\-schedule, {\bf eoEvalFunc}$<$ {\bf EOT} $>$ \&\_\-full\_\-evaluation)
\begin{CompactList}\small\item\em SA constructor. \item\end{CompactList}\item 
bool {\bf operator()} ({\bf EOT} \&\_\-solution)
\begin{CompactList}\small\item\em function that launches the SA algorithm. \item\end{CompactList}\end{CompactItemize}
\subsection*{Private Types}
\begin{CompactItemize}
\item 
typedef M::EOType {\bf EOT}\label{classmo_s_a_d5d64a8797bdedc7b3af7893aded0bd5}

\begin{CompactList}\small\item\em Alias for the type. \item\end{CompactList}\item 
typedef EOT::Fitness {\bf Fitness}\label{classmo_s_a_97f1a40d5ab5a0b3f878d0347b34804b}

\begin{CompactList}\small\item\em Alias for the fitness. \item\end{CompactList}\end{CompactItemize}
\subsection*{Private Attributes}
\begin{CompactItemize}
\item 
{\bf moRandMove}$<$ M $>$ \& {\bf random\_\-move\_\-generator}\label{classmo_s_a_92656523f556669862fcffdccea178dd}

\begin{CompactList}\small\item\em A move generator (generally randomly). \item\end{CompactList}\item 
{\bf moMoveIncrEval}$<$ M $>$ \& {\bf incremental\_\-evaluation}\label{classmo_s_a_fdb49f837dc602624554279418c94bdb}

\begin{CompactList}\small\item\em A (generally) efficient evaluation function. \item\end{CompactList}\item 
{\bf moSolContinue}$<$ {\bf EOT} $>$ \& {\bf continu}\label{classmo_s_a_776586a839c2bbd6d12a731c12a1b748}

\begin{CompactList}\small\item\em Stopping criterion before temperature update. \item\end{CompactList}\item 
double {\bf initial\_\-temperature}\label{classmo_s_a_e07bf4ca64248e94ab85e8a1ba32aa8c}

\begin{CompactList}\small\item\em Initial temperature. \item\end{CompactList}\item 
{\bf moCoolingSchedule} \& {\bf cooling\_\-schedule}\label{classmo_s_a_f514ae01cdfc67bf0b87d5389b3792e5}

\begin{CompactList}\small\item\em The cooling schedule. \item\end{CompactList}\item 
{\bf eoEvalFunc}$<$ {\bf EOT} $>$ \& {\bf full\_\-evaluation}\label{classmo_s_a_ace30095ffc4924d84e14a0e59f7746f}

\begin{CompactList}\small\item\em A full evaluation function. \item\end{CompactList}\end{CompactItemize}


\subsection{Detailed Description}
\subsubsection*{template$<$class M$>$ class moSA$<$ M $>$}

Simulated Annealing (SA). 

Class that describes a Simulated Annealing algorithm. 

Definition at line 53 of file moSA.h.

\subsection{Constructor \& Destructor Documentation}
\index{moSA@{moSA}!moSA@{moSA}}
\index{moSA@{moSA}!moSA@{moSA}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ {\bf moSA}$<$ M $>$::{\bf moSA} ({\bf moRandMove}$<$ M $>$ \& {\em \_\-random\_\-move\_\-generator}, {\bf moMoveIncrEval}$<$ M $>$ \& {\em \_\-incremental\_\-evaluation}, {\bf moSolContinue}$<$ {\bf EOT} $>$ \& {\em \_\-continue}, double {\em \_\-initial\_\-temperature}, {\bf moCoolingSchedule} \& {\em \_\-cooling\_\-schedule}, {\bf eoEvalFunc}$<$ {\bf EOT} $>$ \& {\em \_\-full\_\-evaluation})\hspace{0.3cm}{\tt  [inline]}}\label{classmo_s_a_12e7da3a56b82daa29a30d1254da5823}


SA constructor. 

All the boxes used by a SA need to be given.

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em \_\-random\_\-move\_\-generator}]The move generator (generally randomly). \item[{\em \_\-incremental\_\-evaluation}]The (generally) efficient evaluation function \item[{\em \_\-continue}]The stopping criterion. \item[{\em \_\-initial\_\-temperature}]The initial temperature. \item[{\em \_\-cooling\_\-schedule}]The cooling schedule, describes how the temperature is modified. \item[{\em \_\-full\_\-evaluation}]The full evaluation function. \end{description}
\end{Desc}


Definition at line 74 of file moSA.h.

\subsection{Member Function Documentation}
\index{moSA@{moSA}!operator()@{operator()}}
\index{operator()@{operator()}!moSA@{moSA}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ bool {\bf moSA}$<$ M $>$::operator() ({\bf EOT} \& {\em \_\-solution})\hspace{0.3cm}{\tt  [inline, virtual]}}\label{classmo_s_a_bea8176b0c05a96696b2ab29d3f3c544}


function that launches the SA algorithm. 

As a \doxyref{moTS}{p.}{classmo_t_s} or a \doxyref{moHC}{p.}{classmo_h_c}, the SA can be used for HYBRIDATION in an evolutionary algorithm.

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em \_\-solution}]A solution to improve. \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]TRUE. \end{Desc}


Implements {\bf eoUF$<$ M::EOType \&, bool $>$}.

Definition at line 89 of file moSA.h.

References moSA$<$ M $>$::continu, moSA$<$ M $>$::cooling\_\-schedule, moSA$<$ M $>$::full\_\-evaluation, moSA$<$ M $>$::incremental\_\-evaluation, moSA$<$ M $>$::initial\_\-temperature, moSA$<$ M $>$::random\_\-move\_\-generator, and eoRng::uniform().

The documentation for this class was generated from the following file:\begin{CompactItemize}
\item 
moSA.h\end{CompactItemize}
