\hypertarget{classmo_shift_neighbor}{}\doxysection{mo\+Shift\+Neighbor$<$ E\+OT, Fitness $>$ Class Template Reference}
\label{classmo_shift_neighbor}\index{moShiftNeighbor$<$ EOT, Fitness $>$@{moShiftNeighbor$<$ EOT, Fitness $>$}}


{\ttfamily \#include $<$mo\+Shift\+Neighbor.\+h$>$}



Inheritance diagram for mo\+Shift\+Neighbor$<$ E\+OT, Fitness $>$\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classmo_shift_neighbor__inherit__graph}
\end{center}
\end{figure}


Collaboration diagram for mo\+Shift\+Neighbor$<$ E\+OT, Fitness $>$\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classmo_shift_neighbor__coll__graph}
\end{center}
\end{figure}
\doxysubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
virtual void \mbox{\hyperlink{classmo_shift_neighbor_a2b1ec2bcc0ff2361ee641446a8618e79}{move}} (E\+OT \&\+\_\+solution)
\item 
virtual void \mbox{\hyperlink{classmo_shift_neighbor_a818b72422702998906fae61027162b77}{move\+Back}} (E\+OT \&\+\_\+solution)
\item 
virtual void \mbox{\hyperlink{classmo_shift_neighbor_a23f858ad969d8e5ddaf38156f76021ba}{index}} (E\+OT \&\+\_\+solution, unsigned int \+\_\+key)
\item 
void \mbox{\hyperlink{classmo_shift_neighbor_a3cec6f6f39ffefd87aac7f311febbbea}{set}} (E\+OT \&\+\_\+solution, unsigned int \+\_\+first, unsigned int \+\_\+second)
\item 
unsigned int \mbox{\hyperlink{classmo_shift_neighbor_a1cadc96e0d969d0faf731c26d98cbad4}{first}} ()
\item 
unsigned int \mbox{\hyperlink{classmo_shift_neighbor_ae1e4d4e5a20a9eaae693dcdef8c924c6}{second}} ()
\item 
\mbox{\Hypertarget{classmo_shift_neighbor_a4a94610e46b5a3fabfc36adbe879d999}\label{classmo_shift_neighbor_a4a94610e46b5a3fabfc36adbe879d999}} 
void {\bfseries print} ()
\item 
virtual std\+::string \mbox{\hyperlink{classmo_shift_neighbor_aa75bb218c64bd6ad1038a68e0edfe4f1}{class\+Name}} () const
\end{DoxyCompactItemize}
\doxysubsection*{Additional Inherited Members}


\doxysubsection{Detailed Description}
\subsubsection*{template$<$class E\+OT, class Fitness = typename E\+O\+T\+::\+Fitness$>$\newline
class mo\+Shift\+Neighbor$<$ E\+O\+T, Fitness $>$}

Indexed Shift Neighbor Other name \+: insertion operator 

\doxysubsection{Member Function Documentation}
\mbox{\Hypertarget{classmo_shift_neighbor_aa75bb218c64bd6ad1038a68e0edfe4f1}\label{classmo_shift_neighbor_aa75bb218c64bd6ad1038a68e0edfe4f1}} 
\index{moShiftNeighbor$<$ EOT, Fitness $>$@{moShiftNeighbor$<$ EOT, Fitness $>$}!className@{className}}
\index{className@{className}!moShiftNeighbor$<$ EOT, Fitness $>$@{moShiftNeighbor$<$ EOT, Fitness $>$}}
\doxysubsubsection{\texorpdfstring{className()}{className()}}
{\footnotesize\ttfamily template$<$class E\+OT , class Fitness  = typename E\+O\+T\+::\+Fitness$>$ \\
virtual std\+::string \mbox{\hyperlink{classmo_shift_neighbor}{mo\+Shift\+Neighbor}}$<$ E\+OT, Fitness $>$\+::class\+Name (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}

Return the class Name \begin{DoxyReturn}{Returns}
the class name as a std\+::string 
\end{DoxyReturn}


Implements \mbox{\hyperlink{classeo_object_a1c02745db786e7bb46dea93b560fe685}{eo\+Object}}.

\mbox{\Hypertarget{classmo_shift_neighbor_a1cadc96e0d969d0faf731c26d98cbad4}\label{classmo_shift_neighbor_a1cadc96e0d969d0faf731c26d98cbad4}} 
\index{moShiftNeighbor$<$ EOT, Fitness $>$@{moShiftNeighbor$<$ EOT, Fitness $>$}!first@{first}}
\index{first@{first}!moShiftNeighbor$<$ EOT, Fitness $>$@{moShiftNeighbor$<$ EOT, Fitness $>$}}
\doxysubsubsection{\texorpdfstring{first()}{first()}}
{\footnotesize\ttfamily template$<$class E\+OT , class Fitness  = typename E\+O\+T\+::\+Fitness$>$ \\
unsigned int \mbox{\hyperlink{classmo_shift_neighbor}{mo\+Shift\+Neighbor}}$<$ E\+OT, Fitness $>$\+::first (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

Getter of the firt location \begin{DoxyReturn}{Returns}
first indice 
\end{DoxyReturn}
\mbox{\Hypertarget{classmo_shift_neighbor_a23f858ad969d8e5ddaf38156f76021ba}\label{classmo_shift_neighbor_a23f858ad969d8e5ddaf38156f76021ba}} 
\index{moShiftNeighbor$<$ EOT, Fitness $>$@{moShiftNeighbor$<$ EOT, Fitness $>$}!index@{index}}
\index{index@{index}!moShiftNeighbor$<$ EOT, Fitness $>$@{moShiftNeighbor$<$ EOT, Fitness $>$}}
\doxysubsubsection{\texorpdfstring{index()}{index()}}
{\footnotesize\ttfamily template$<$class E\+OT , class Fitness  = typename E\+O\+T\+::\+Fitness$>$ \\
virtual void \mbox{\hyperlink{classmo_shift_neighbor}{mo\+Shift\+Neighbor}}$<$ E\+OT, Fitness $>$\+::index (\begin{DoxyParamCaption}\item[{E\+OT \&}]{\+\_\+solution,  }\item[{unsigned int}]{\+\_\+key }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}

Setter The \char`\"{}parameters\char`\"{} of the neighbor is a function of key and the current solution for example, for variable length solution


\begin{DoxyParams}{Parameters}
{\em \+\_\+solution} & solution from which the neighborhood is visited \\
\hline
{\em \+\_\+key} & index of the Index\+Neighbor \\
\hline
\end{DoxyParams}


Reimplemented from \mbox{\hyperlink{classmo_index_neighbor_aa8251206c8fc5178d29181d6e4147243}{mo\+Index\+Neighbor$<$ E\+O\+T, typename E\+O\+T\+::\+Fitness $>$}}.

\mbox{\Hypertarget{classmo_shift_neighbor_a2b1ec2bcc0ff2361ee641446a8618e79}\label{classmo_shift_neighbor_a2b1ec2bcc0ff2361ee641446a8618e79}} 
\index{moShiftNeighbor$<$ EOT, Fitness $>$@{moShiftNeighbor$<$ EOT, Fitness $>$}!move@{move}}
\index{move@{move}!moShiftNeighbor$<$ EOT, Fitness $>$@{moShiftNeighbor$<$ EOT, Fitness $>$}}
\doxysubsubsection{\texorpdfstring{move()}{move()}}
{\footnotesize\ttfamily template$<$class E\+OT , class Fitness  = typename E\+O\+T\+::\+Fitness$>$ \\
virtual void \mbox{\hyperlink{classmo_shift_neighbor}{mo\+Shift\+Neighbor}}$<$ E\+OT, Fitness $>$\+::move (\begin{DoxyParamCaption}\item[{E\+OT \&}]{\+\_\+solution }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}

Apply move on a solution regarding a key 
\begin{DoxyParams}{Parameters}
{\em \+\_\+solution} & the solution to move \\
\hline
\end{DoxyParams}


Implements \mbox{\hyperlink{classmo_neighbor_a8f7c2d49ae656a7da9611fc59dc8a80f}{mo\+Neighbor$<$ E\+O\+T, typename E\+O\+T\+::\+Fitness $>$}}.

\mbox{\Hypertarget{classmo_shift_neighbor_a818b72422702998906fae61027162b77}\label{classmo_shift_neighbor_a818b72422702998906fae61027162b77}} 
\index{moShiftNeighbor$<$ EOT, Fitness $>$@{moShiftNeighbor$<$ EOT, Fitness $>$}!moveBack@{moveBack}}
\index{moveBack@{moveBack}!moShiftNeighbor$<$ EOT, Fitness $>$@{moShiftNeighbor$<$ EOT, Fitness $>$}}
\doxysubsubsection{\texorpdfstring{moveBack()}{moveBack()}}
{\footnotesize\ttfamily template$<$class E\+OT , class Fitness  = typename E\+O\+T\+::\+Fitness$>$ \\
virtual void \mbox{\hyperlink{classmo_shift_neighbor}{mo\+Shift\+Neighbor}}$<$ E\+OT, Fitness $>$\+::move\+Back (\begin{DoxyParamCaption}\item[{E\+OT \&}]{\+\_\+solution }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}

apply the correct insertion to restore the solution (use by \mbox{\hyperlink{classmo_full_eval_by_modif}{mo\+Full\+Eval\+By\+Modif}}) 
\begin{DoxyParams}{Parameters}
{\em \+\_\+solution} & the solution to move back \\
\hline
\end{DoxyParams}


Implements \mbox{\hyperlink{classmo_backable_neighbor_a9807bc11c441f0b852d1817ad152e147}{mo\+Backable\+Neighbor$<$ E\+O\+T, typename E\+O\+T\+::\+Fitness $>$}}.

\mbox{\Hypertarget{classmo_shift_neighbor_ae1e4d4e5a20a9eaae693dcdef8c924c6}\label{classmo_shift_neighbor_ae1e4d4e5a20a9eaae693dcdef8c924c6}} 
\index{moShiftNeighbor$<$ EOT, Fitness $>$@{moShiftNeighbor$<$ EOT, Fitness $>$}!second@{second}}
\index{second@{second}!moShiftNeighbor$<$ EOT, Fitness $>$@{moShiftNeighbor$<$ EOT, Fitness $>$}}
\doxysubsubsection{\texorpdfstring{second()}{second()}}
{\footnotesize\ttfamily template$<$class E\+OT , class Fitness  = typename E\+O\+T\+::\+Fitness$>$ \\
unsigned int \mbox{\hyperlink{classmo_shift_neighbor}{mo\+Shift\+Neighbor}}$<$ E\+OT, Fitness $>$\+::second (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

Getter of the second location \begin{DoxyReturn}{Returns}
second indice 
\end{DoxyReturn}
\mbox{\Hypertarget{classmo_shift_neighbor_a3cec6f6f39ffefd87aac7f311febbbea}\label{classmo_shift_neighbor_a3cec6f6f39ffefd87aac7f311febbbea}} 
\index{moShiftNeighbor$<$ EOT, Fitness $>$@{moShiftNeighbor$<$ EOT, Fitness $>$}!set@{set}}
\index{set@{set}!moShiftNeighbor$<$ EOT, Fitness $>$@{moShiftNeighbor$<$ EOT, Fitness $>$}}
\doxysubsubsection{\texorpdfstring{set()}{set()}}
{\footnotesize\ttfamily template$<$class E\+OT , class Fitness  = typename E\+O\+T\+::\+Fitness$>$ \\
void \mbox{\hyperlink{classmo_shift_neighbor}{mo\+Shift\+Neighbor}}$<$ E\+OT, Fitness $>$\+::set (\begin{DoxyParamCaption}\item[{E\+OT \&}]{\+\_\+solution,  }\item[{unsigned int}]{\+\_\+first,  }\item[{unsigned int}]{\+\_\+second }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

Setter to fix the two indexes to swap 
\begin{DoxyParams}{Parameters}
{\em \+\_\+solution} & solution from which the neighborhood is visited \\
\hline
{\em \+\_\+first} & first index \\
\hline
{\em \+\_\+second} & second index \\
\hline
\end{DoxyParams}


The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
mo/src/problems/permutation/mo\+Shift\+Neighbor.\+h\end{DoxyCompactItemize}
