\hypertarget{classmo_neighborhood_perturb}{}\doxysection{mo\+Neighborhood\+Perturb$<$ Neighbor, Other\+Neighbor $>$ Class Template Reference} \label{classmo_neighborhood_perturb}\index{moNeighborhoodPerturb$<$ Neighbor, OtherNeighbor $>$@{moNeighborhoodPerturb$<$ Neighbor, OtherNeighbor $>$}} {\ttfamily \#include $<$mo\+Neighborhood\+Perturb.\+h$>$} Inheritance diagram for mo\+Neighborhood\+Perturb$<$ Neighbor, Other\+Neighbor $>$\+: \nopagebreak \begin{figure}[H] \begin{center} \leavevmode \includegraphics[width=350pt]{classmo_neighborhood_perturb__inherit__graph} \end{center} \end{figure} Collaboration diagram for mo\+Neighborhood\+Perturb$<$ Neighbor, Other\+Neighbor $>$\+: \nopagebreak \begin{figure}[H] \begin{center} \leavevmode \includegraphics[width=350pt]{classmo_neighborhood_perturb__coll__graph} \end{center} \end{figure} \doxysubsection*{Public Types} \begin{DoxyCompactItemize} \item \mbox{\Hypertarget{classmo_neighborhood_perturb_ac3afff17c2c05f7cd5b12eec835f711b}\label{classmo_neighborhood_perturb_ac3afff17c2c05f7cd5b12eec835f711b}} typedef \mbox{\hyperlink{classeo_bit}{Neighbor\+::\+E\+OT}} {\bfseries E\+OT} \item \mbox{\Hypertarget{classmo_neighborhood_perturb_a4180cfed1ffee1bfd95a6753bc2e7e02}\label{classmo_neighborhood_perturb_a4180cfed1ffee1bfd95a6753bc2e7e02}} typedef \mbox{\hyperlink{classmo_neighborhood}{mo\+Neighborhood}}$<$ Other\+Neighbor $>$ {\bfseries Other\+NH} \end{DoxyCompactItemize} \doxysubsection*{Public Member Functions} \begin{DoxyCompactItemize} \item \mbox{\hyperlink{classmo_neighborhood_perturb_a6d79845e0096287c18de1cbc09ba5bf6}{mo\+Neighborhood\+Perturb}} (\mbox{\hyperlink{classmo_neighborhood}{Other\+NH}} \&\+\_\+other\+Neighborhood, \mbox{\hyperlink{classmo_eval}{mo\+Eval}}$<$ Other\+Neighbor $>$ \&\+\_\+eval) \item virtual bool \mbox{\hyperlink{classmo_neighborhood_perturb_ace420bac13b264825bebf2a23c4b9657}{operator()}} (\mbox{\hyperlink{classeo_bit}{E\+OT}} \&\+\_\+solution) \item virtual void \mbox{\hyperlink{classmo_neighborhood_perturb_a08e0d5383a917b32d7cfeac81686a7b1}{init}} (\mbox{\hyperlink{classeo_bit}{E\+OT}} \&\+\_\+sol) \item virtual void \mbox{\hyperlink{classmo_neighborhood_perturb_a2e5db55a2181ae67d6af67ab530eba4f}{add}} (\mbox{\hyperlink{classeo_bit}{E\+OT}} \&\+\_\+sol, \mbox{\hyperlink{classmo_bit_neighbor}{Neighbor}} \&\+\_\+neighbor) \item virtual void \mbox{\hyperlink{classmo_neighborhood_perturb_afe1b09d56e827539d1641f4dcca49802}{update}} (\mbox{\hyperlink{classeo_bit}{E\+OT}} \&\+\_\+sol, \mbox{\hyperlink{classmo_bit_neighbor}{Neighbor}} \&\+\_\+neighbor) \item virtual void \mbox{\hyperlink{classmo_neighborhood_perturb_ae48eb040bf335ef159a96bea1ddfd532}{clear\+Memory}} () \end{DoxyCompactItemize} \doxysubsection*{Additional Inherited Members} \doxysubsection{Detailed Description} \subsubsection*{template$<$class Neighbor, class Other\+Neighbor$>$\newline class mo\+Neighborhood\+Perturb$<$ Neighbor, Other\+Neighbor $>$} Neighborhood Perturbation\+: explore the neighborhood to perturb the solution (the neighborhood could be different as the one used in the Local Search) \doxysubsection{Constructor \& Destructor Documentation} \mbox{\Hypertarget{classmo_neighborhood_perturb_a6d79845e0096287c18de1cbc09ba5bf6}\label{classmo_neighborhood_perturb_a6d79845e0096287c18de1cbc09ba5bf6}} \index{moNeighborhoodPerturb$<$ Neighbor, OtherNeighbor $>$@{moNeighborhoodPerturb$<$ Neighbor, OtherNeighbor $>$}!moNeighborhoodPerturb@{moNeighborhoodPerturb}} \index{moNeighborhoodPerturb@{moNeighborhoodPerturb}!moNeighborhoodPerturb$<$ Neighbor, OtherNeighbor $>$@{moNeighborhoodPerturb$<$ Neighbor, OtherNeighbor $>$}} \doxysubsubsection{\texorpdfstring{moNeighborhoodPerturb()}{moNeighborhoodPerturb()}} {\footnotesize\ttfamily template$<$class Neighbor , class Other\+Neighbor $>$ \\ \mbox{\hyperlink{classmo_neighborhood_perturb}{mo\+Neighborhood\+Perturb}}$<$ \mbox{\hyperlink{classmo_bit_neighbor}{Neighbor}}, Other\+Neighbor $>$\+::\mbox{\hyperlink{classmo_neighborhood_perturb}{mo\+Neighborhood\+Perturb}} (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classmo_neighborhood}{Other\+NH}} \&}]{\+\_\+other\+Neighborhood, }\item[{\mbox{\hyperlink{classmo_eval}{mo\+Eval}}$<$ Other\+Neighbor $>$ \&}]{\+\_\+eval }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}} Constructor \begin{DoxyParams}{Parameters} {\em \+\_\+other\+Neighborhood} & a neighborhood \\ \hline {\em \+\_\+eval} & an Evaluation \mbox{\hyperlink{struct_function}{Function}} \\ \hline \end{DoxyParams} \doxysubsection{Member Function Documentation} \mbox{\Hypertarget{classmo_neighborhood_perturb_a2e5db55a2181ae67d6af67ab530eba4f}\label{classmo_neighborhood_perturb_a2e5db55a2181ae67d6af67ab530eba4f}} \index{moNeighborhoodPerturb$<$ Neighbor, OtherNeighbor $>$@{moNeighborhoodPerturb$<$ Neighbor, OtherNeighbor $>$}!add@{add}} \index{add@{add}!moNeighborhoodPerturb$<$ Neighbor, OtherNeighbor $>$@{moNeighborhoodPerturb$<$ Neighbor, OtherNeighbor $>$}} \doxysubsubsection{\texorpdfstring{add()}{add()}} {\footnotesize\ttfamily template$<$class Neighbor , class Other\+Neighbor $>$ \\ virtual void \mbox{\hyperlink{classmo_neighborhood_perturb}{mo\+Neighborhood\+Perturb}}$<$ \mbox{\hyperlink{classmo_bit_neighbor}{Neighbor}}, Other\+Neighbor $>$\+::add (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classeo_bit}{E\+OT}} \&}]{\+\_\+sol, }\item[{\mbox{\hyperlink{classmo_bit_neighbor}{Neighbor}} \&}]{\+\_\+neighbor }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}} Re\+Init the neighborhood because a move was done \begin{DoxyParams}{Parameters} {\em \+\_\+sol} & the current solution \\ \hline {\em \+\_\+neighbor} & unused neighbor (always empty) \\ \hline \end{DoxyParams} Implements \mbox{\hyperlink{classmo_memory_acf319ce1a44dbf601c80bd5670dde853}{mo\+Memory$<$ Neighbor $>$}}. \mbox{\Hypertarget{classmo_neighborhood_perturb_ae48eb040bf335ef159a96bea1ddfd532}\label{classmo_neighborhood_perturb_ae48eb040bf335ef159a96bea1ddfd532}} \index{moNeighborhoodPerturb$<$ Neighbor, OtherNeighbor $>$@{moNeighborhoodPerturb$<$ Neighbor, OtherNeighbor $>$}!clearMemory@{clearMemory}} \index{clearMemory@{clearMemory}!moNeighborhoodPerturb$<$ Neighbor, OtherNeighbor $>$@{moNeighborhoodPerturb$<$ Neighbor, OtherNeighbor $>$}} \doxysubsubsection{\texorpdfstring{clearMemory()}{clearMemory()}} {\footnotesize\ttfamily template$<$class Neighbor , class Other\+Neighbor $>$ \\ virtual void \mbox{\hyperlink{classmo_neighborhood_perturb}{mo\+Neighborhood\+Perturb}}$<$ \mbox{\hyperlink{classmo_bit_neighbor}{Neighbor}}, Other\+Neighbor $>$\+::clear\+Memory (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}} N\+O\+T\+H\+I\+NG TO DO Implements \mbox{\hyperlink{classmo_memory_ab24822b7720f4434d355bb468cb43a66}{mo\+Memory$<$ Neighbor $>$}}. \mbox{\Hypertarget{classmo_neighborhood_perturb_a08e0d5383a917b32d7cfeac81686a7b1}\label{classmo_neighborhood_perturb_a08e0d5383a917b32d7cfeac81686a7b1}} \index{moNeighborhoodPerturb$<$ Neighbor, OtherNeighbor $>$@{moNeighborhoodPerturb$<$ Neighbor, OtherNeighbor $>$}!init@{init}} \index{init@{init}!moNeighborhoodPerturb$<$ Neighbor, OtherNeighbor $>$@{moNeighborhoodPerturb$<$ Neighbor, OtherNeighbor $>$}} \doxysubsubsection{\texorpdfstring{init()}{init()}} {\footnotesize\ttfamily template$<$class Neighbor , class Other\+Neighbor $>$ \\ virtual void \mbox{\hyperlink{classmo_neighborhood_perturb}{mo\+Neighborhood\+Perturb}}$<$ \mbox{\hyperlink{classmo_bit_neighbor}{Neighbor}}, Other\+Neighbor $>$\+::init (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classeo_bit}{E\+OT}} \&}]{\+\_\+sol }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}} Init the neighborhood \begin{DoxyParams}{Parameters} {\em \+\_\+sol} & the current solution \\ \hline \end{DoxyParams} Implements \mbox{\hyperlink{classmo_memory_ab8dda5ba853c077d1713d27d6a0512cb}{mo\+Memory$<$ Neighbor $>$}}. \mbox{\Hypertarget{classmo_neighborhood_perturb_ace420bac13b264825bebf2a23c4b9657}\label{classmo_neighborhood_perturb_ace420bac13b264825bebf2a23c4b9657}} \index{moNeighborhoodPerturb$<$ Neighbor, OtherNeighbor $>$@{moNeighborhoodPerturb$<$ Neighbor, OtherNeighbor $>$}!operator()@{operator()}} \index{operator()@{operator()}!moNeighborhoodPerturb$<$ Neighbor, OtherNeighbor $>$@{moNeighborhoodPerturb$<$ Neighbor, OtherNeighbor $>$}} \doxysubsubsection{\texorpdfstring{operator()()}{operator()()}} {\footnotesize\ttfamily template$<$class Neighbor , class Other\+Neighbor $>$ \\ virtual bool \mbox{\hyperlink{classmo_neighborhood_perturb}{mo\+Neighborhood\+Perturb}}$<$ \mbox{\hyperlink{classmo_bit_neighbor}{Neighbor}}, Other\+Neighbor $>$\+::operator() (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classeo_bit}{E\+OT}} \&}]{\+\_\+solution }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}} Apply move on the solution \begin{DoxyParams}{Parameters} {\em \+\_\+solution} & the current solution \\ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} true \end{DoxyReturn} Implements \mbox{\hyperlink{classeo_u_f_a786e028409366dc273e19104f17ba68a}{eo\+U\+F$<$ Neighbor\+::\+E\+O\+T \&, bool $>$}}. \mbox{\Hypertarget{classmo_neighborhood_perturb_afe1b09d56e827539d1641f4dcca49802}\label{classmo_neighborhood_perturb_afe1b09d56e827539d1641f4dcca49802}} \index{moNeighborhoodPerturb$<$ Neighbor, OtherNeighbor $>$@{moNeighborhoodPerturb$<$ Neighbor, OtherNeighbor $>$}!update@{update}} \index{update@{update}!moNeighborhoodPerturb$<$ Neighbor, OtherNeighbor $>$@{moNeighborhoodPerturb$<$ Neighbor, OtherNeighbor $>$}} \doxysubsubsection{\texorpdfstring{update()}{update()}} {\footnotesize\ttfamily template$<$class Neighbor , class Other\+Neighbor $>$ \\ virtual void \mbox{\hyperlink{classmo_neighborhood_perturb}{mo\+Neighborhood\+Perturb}}$<$ \mbox{\hyperlink{classmo_bit_neighbor}{Neighbor}}, Other\+Neighbor $>$\+::update (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classeo_bit}{E\+OT}} \&}]{\+\_\+sol, }\item[{\mbox{\hyperlink{classmo_bit_neighbor}{Neighbor}} \&}]{\+\_\+neighbor }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}} Explore another neighbor because no move was done \begin{DoxyParams}{Parameters} {\em \+\_\+sol} & the current solution \\ \hline {\em \+\_\+neighbor} & unused neighbor (always empty) \\ \hline \end{DoxyParams} Implements \mbox{\hyperlink{classmo_memory_a3db29eaee769fbf7fb5e80c653d74884}{mo\+Memory$<$ Neighbor $>$}}. The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize} \item mo/src/perturb/mo\+Neighborhood\+Perturb.\+h\end{DoxyCompactItemize}