\section{moTSMoveLoopExpl$<$ M $>$ Class Template Reference}
\label{classmo_t_s_move_loop_expl}\index{moTSMoveLoopExpl@{moTSMoveLoopExpl}}
Explorer for a Tabu Search algorithm.  


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

Inheritance diagram for moTSMoveLoopExpl$<$ M $>$::\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=5cm]{classmo_t_s_move_loop_expl}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{CompactItemize}
\item 
{\bf moTSMoveLoopExpl} ({\bf moMoveInit}$<$ M $>$ \&\_\-move\_\-initializer, {\bf moNextMove}$<$ M $>$ \&\_\-next\_\-move\_\-generator, {\bf moMoveIncrEval}$<$ M $>$ \&\_\-incremental\_\-evaluation, {\bf moTabuList}$<$ M $>$ \&\_\-tabu\_\-list, {\bf moAspirCrit}$<$ M $>$ \&\_\-aspiration\_\-criterion)
\begin{CompactList}\small\item\em Constructor. \item\end{CompactList}\item 
void {\bf operator()} (const {\bf EOT} \&\_\-old\_\-solution, {\bf EOT} \&\_\-new\_\-solution)
\begin{CompactList}\small\item\em Procedure which lauches the exploration. \item\end{CompactList}\end{CompactItemize}
\subsection*{Private Types}
\begin{CompactItemize}
\item 
typedef M::EOType {\bf EOT}\label{classmo_t_s_move_loop_expl_47f42225e2ed096374b818bdb848a527}

\begin{CompactList}\small\item\em Alias for the type. \item\end{CompactList}\item 
typedef M::EOType::Fitness {\bf Fitness}\label{classmo_t_s_move_loop_expl_a1ba36c937b195ca2f7d1a24adaa7018}

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

\begin{CompactList}\small\item\em Move initialisation. \item\end{CompactList}\item 
{\bf moNextMove}$<$ M $>$ \& {\bf next\_\-move\_\-generator}\label{classmo_t_s_move_loop_expl_a2bbb593af2beefb05a307277c22b3d5}

\begin{CompactList}\small\item\em Neighborhood explorer. \item\end{CompactList}\item 
{\bf moMoveIncrEval}$<$ M $>$ \& {\bf incremental\_\-evaluation}\label{classmo_t_s_move_loop_expl_491fa46e1cb7935cb515b27b85bf8765}

\begin{CompactList}\small\item\em Efficient evaluation. \item\end{CompactList}\item 
{\bf moBestImprSelect}$<$ M $>$ {\bf move\_\-selection}\label{classmo_t_s_move_loop_expl_1caa6939fbe65ec4255e9e6dc3ce333b}

\begin{CompactList}\small\item\em Move selector. \item\end{CompactList}\item 
{\bf moTabuList}$<$ M $>$ \& {\bf tabu\_\-list}\label{classmo_t_s_move_loop_expl_0e5988a940ba218e87c53b7e56d79790}

\begin{CompactList}\small\item\em Tabu list. \item\end{CompactList}\item 
{\bf moAspirCrit}$<$ M $>$ \& {\bf aspiration\_\-criterion}\label{classmo_t_s_move_loop_expl_bdfc8efb22599c150b3c3d44cd416b09}

\begin{CompactList}\small\item\em Aspiration criterion. \item\end{CompactList}\end{CompactItemize}


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

Explorer for a Tabu Search algorithm. 

It is used by a \doxyref{moTS}{p.}{classmo_t_s}. 

Definition at line 53 of file moTSMoveLoopExpl.h.

\subsection{Constructor \& Destructor Documentation}
\index{moTSMoveLoopExpl@{moTSMoveLoopExpl}!moTSMoveLoopExpl@{moTSMoveLoopExpl}}
\index{moTSMoveLoopExpl@{moTSMoveLoopExpl}!moTSMoveLoopExpl@{moTSMoveLoopExpl}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ {\bf moTSMoveLoopExpl}$<$ M $>$::{\bf moTSMoveLoopExpl} ({\bf moMoveInit}$<$ M $>$ \& {\em \_\-move\_\-initializer}, {\bf moNextMove}$<$ M $>$ \& {\em \_\-next\_\-move\_\-generator}, {\bf moMoveIncrEval}$<$ M $>$ \& {\em \_\-incremental\_\-evaluation}, {\bf moTabuList}$<$ M $>$ \& {\em \_\-tabu\_\-list}, {\bf moAspirCrit}$<$ M $>$ \& {\em \_\-aspiration\_\-criterion})\hspace{0.3cm}{\tt  [inline]}}\label{classmo_t_s_move_loop_expl_be5cf0853777718c3bbcbef456b50bc7}


Constructor. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em \_\-move\_\-initializer}]The move initializer. \item[{\em \_\-next\_\-move\_\-generator}]The neighbourhood explorer. \item[{\em \_\-incremental\_\-evaluation}]A (generally) efficient evaluation. \item[{\em \_\-tabu\_\-list}]The tabu list. \item[{\em \_\-aspiration\_\-criterion}]An aspiration criterion. \end{description}
\end{Desc}


Definition at line 71 of file moTSMoveLoopExpl.h.

References moTSMoveLoopExpl$<$ M $>$::aspiration\_\-criterion, and moTSMoveLoopExpl$<$ M $>$::tabu\_\-list.

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


Procedure which lauches the exploration. 

The exploration continues while the chosen move is not in the tabu list or the aspiration criterion is true. If these 2 conditions are not true, the exploration stops if the move selector update function returns false.

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em \_\-old\_\-solution}]the initial solution \item[{\em \_\-new\_\-solution}]the new solution \end{description}
\end{Desc}


Implements {\bf eoBF$<$ const M::EOType \&, M::EOType \&, void $>$}.

Definition at line 90 of file moTSMoveLoopExpl.h.

References moTSMoveLoopExpl$<$ M $>$::aspiration\_\-criterion, moTSMoveLoopExpl$<$ M $>$::incremental\_\-evaluation, moTSMoveLoopExpl$<$ M $>$::move\_\-initializer, moTSMoveLoopExpl$<$ M $>$::move\_\-selection, moTSMoveLoopExpl$<$ M $>$::next\_\-move\_\-generator, and moTSMoveLoopExpl$<$ M $>$::tabu\_\-list.

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