\hypertarget{classmo_two_opt_ex_neighborhood}{}\doxysection{mo\+Two\+Opt\+Ex\+Neighborhood$<$ E\+OT, Fitness $>$ Class Template Reference}
\label{classmo_two_opt_ex_neighborhood}\index{moTwoOptExNeighborhood$<$ EOT, Fitness $>$@{moTwoOptExNeighborhood$<$ EOT, Fitness $>$}}


{\ttfamily \#include $<$mo\+Two\+Opt\+Ex\+Neighborhood.\+h$>$}



Inheritance diagram for mo\+Two\+Opt\+Ex\+Neighborhood$<$ E\+OT, Fitness $>$\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=244pt]{classmo_two_opt_ex_neighborhood__inherit__graph}
\end{center}
\end{figure}


Collaboration diagram for mo\+Two\+Opt\+Ex\+Neighborhood$<$ E\+OT, Fitness $>$\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=244pt]{classmo_two_opt_ex_neighborhood__coll__graph}
\end{center}
\end{figure}
\doxysubsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classmo_two_opt_ex_neighborhood_a254b7ca3ce31b08327ba8f0365341374}\label{classmo_two_opt_ex_neighborhood_a254b7ca3ce31b08327ba8f0365341374}} 
typedef \mbox{\hyperlink{classmo_two_opt_ex_neighbor}{mo\+Two\+Opt\+Ex\+Neighbor}}$<$ \mbox{\hyperlink{classmo_neighborhood_a9b0ab01b1c9034657754257a90726d14}{E\+OT}}, Fitness $>$ {\bfseries Neighbor}
\end{DoxyCompactItemize}
\doxysubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
virtual bool \mbox{\hyperlink{classmo_two_opt_ex_neighborhood_a6f2977303bdb9eb8946ac6b56eaa4f9a}{has\+Neighbor}} (\mbox{\hyperlink{classmo_neighborhood_a9b0ab01b1c9034657754257a90726d14}{E\+OT}} \&\+\_\+solution)
\item 
virtual void \mbox{\hyperlink{classmo_two_opt_ex_neighborhood_aa7f4cc59ffc149ec2b41a0cb9bc9794b}{init}} (\mbox{\hyperlink{classmo_neighborhood_a9b0ab01b1c9034657754257a90726d14}{E\+OT}} \&\+\_\+solution, \mbox{\hyperlink{classmo_two_opt_ex_neighbor}{Neighbor}} \&\+\_\+current)
\item 
virtual void \mbox{\hyperlink{classmo_two_opt_ex_neighborhood_a5afff0df34a8453f4baa8f6b3cf675c5}{next}} (\mbox{\hyperlink{classmo_neighborhood_a9b0ab01b1c9034657754257a90726d14}{E\+OT}} \&\+\_\+solution, \mbox{\hyperlink{classmo_two_opt_ex_neighbor}{Neighbor}} \&\+\_\+current)
\item 
virtual bool \mbox{\hyperlink{classmo_two_opt_ex_neighborhood_a44a8e1fd1803c78544799a7dc315a28d}{cont}} (\mbox{\hyperlink{classmo_neighborhood_a9b0ab01b1c9034657754257a90726d14}{E\+OT}} \&\+\_\+solution)
\item 
virtual std\+::string \mbox{\hyperlink{classmo_two_opt_ex_neighborhood_a939bbf5dd4bbf7aa8667a6361f572609}{class\+Name}} () const
\end{DoxyCompactItemize}


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

Two-\/opt exchange neighborhood 

\doxysubsection{Member Function Documentation}
\mbox{\Hypertarget{classmo_two_opt_ex_neighborhood_a939bbf5dd4bbf7aa8667a6361f572609}\label{classmo_two_opt_ex_neighborhood_a939bbf5dd4bbf7aa8667a6361f572609}} 
\index{moTwoOptExNeighborhood$<$ EOT, Fitness $>$@{moTwoOptExNeighborhood$<$ EOT, Fitness $>$}!className@{className}}
\index{className@{className}!moTwoOptExNeighborhood$<$ EOT, Fitness $>$@{moTwoOptExNeighborhood$<$ 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_two_opt_ex_neighborhood}{mo\+Two\+Opt\+Ex\+Neighborhood}}$<$ \mbox{\hyperlink{classmo_neighborhood_a9b0ab01b1c9034657754257a90726d14}{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_two_opt_ex_neighborhood_a44a8e1fd1803c78544799a7dc315a28d}\label{classmo_two_opt_ex_neighborhood_a44a8e1fd1803c78544799a7dc315a28d}} 
\index{moTwoOptExNeighborhood$<$ EOT, Fitness $>$@{moTwoOptExNeighborhood$<$ EOT, Fitness $>$}!cont@{cont}}
\index{cont@{cont}!moTwoOptExNeighborhood$<$ EOT, Fitness $>$@{moTwoOptExNeighborhood$<$ EOT, Fitness $>$}}
\doxysubsubsection{\texorpdfstring{cont()}{cont()}}
{\footnotesize\ttfamily template$<$class E\+OT , class Fitness  = typename E\+O\+T\+::\+Fitness$>$ \\
virtual bool \mbox{\hyperlink{classmo_two_opt_ex_neighborhood}{mo\+Two\+Opt\+Ex\+Neighborhood}}$<$ \mbox{\hyperlink{classmo_neighborhood_a9b0ab01b1c9034657754257a90726d14}{E\+OT}}, Fitness $>$\+::cont (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classmo_neighborhood_a9b0ab01b1c9034657754257a90726d14}{E\+OT}} \&}]{\+\_\+solution }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}

\mbox{\hyperlink{struct_test}{Test}} if there is again a neighbor 
\begin{DoxyParams}{Parameters}
{\em \+\_\+solution} & the solution to explore \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if there is again a neighbor not explored 
\end{DoxyReturn}


Implements \mbox{\hyperlink{classmo_neighborhood_a4093914507138339f3756ff5edaf6531}{mo\+Neighborhood$<$ mo\+Two\+Opt\+Ex\+Neighbor$<$ E\+O\+T, typename E\+O\+T\+::\+Fitness $>$ $>$}}.

\mbox{\Hypertarget{classmo_two_opt_ex_neighborhood_a6f2977303bdb9eb8946ac6b56eaa4f9a}\label{classmo_two_opt_ex_neighborhood_a6f2977303bdb9eb8946ac6b56eaa4f9a}} 
\index{moTwoOptExNeighborhood$<$ EOT, Fitness $>$@{moTwoOptExNeighborhood$<$ EOT, Fitness $>$}!hasNeighbor@{hasNeighbor}}
\index{hasNeighbor@{hasNeighbor}!moTwoOptExNeighborhood$<$ EOT, Fitness $>$@{moTwoOptExNeighborhood$<$ EOT, Fitness $>$}}
\doxysubsubsection{\texorpdfstring{hasNeighbor()}{hasNeighbor()}}
{\footnotesize\ttfamily template$<$class E\+OT , class Fitness  = typename E\+O\+T\+::\+Fitness$>$ \\
virtual bool \mbox{\hyperlink{classmo_two_opt_ex_neighborhood}{mo\+Two\+Opt\+Ex\+Neighborhood}}$<$ \mbox{\hyperlink{classmo_neighborhood_a9b0ab01b1c9034657754257a90726d14}{E\+OT}}, Fitness $>$\+::has\+Neighbor (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classmo_neighborhood_a9b0ab01b1c9034657754257a90726d14}{E\+OT}} \&}]{\+\_\+solution }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}

\begin{DoxyReturn}{Returns}
true if there is at least an available neighbor 
\end{DoxyReturn}


Implements \mbox{\hyperlink{classmo_neighborhood_a9a4b6ca2bcf76697145509eb35baf3be}{mo\+Neighborhood$<$ mo\+Two\+Opt\+Ex\+Neighbor$<$ E\+O\+T, typename E\+O\+T\+::\+Fitness $>$ $>$}}.

\mbox{\Hypertarget{classmo_two_opt_ex_neighborhood_aa7f4cc59ffc149ec2b41a0cb9bc9794b}\label{classmo_two_opt_ex_neighborhood_aa7f4cc59ffc149ec2b41a0cb9bc9794b}} 
\index{moTwoOptExNeighborhood$<$ EOT, Fitness $>$@{moTwoOptExNeighborhood$<$ EOT, Fitness $>$}!init@{init}}
\index{init@{init}!moTwoOptExNeighborhood$<$ EOT, Fitness $>$@{moTwoOptExNeighborhood$<$ EOT, Fitness $>$}}
\doxysubsubsection{\texorpdfstring{init()}{init()}}
{\footnotesize\ttfamily template$<$class E\+OT , class Fitness  = typename E\+O\+T\+::\+Fitness$>$ \\
virtual void \mbox{\hyperlink{classmo_two_opt_ex_neighborhood}{mo\+Two\+Opt\+Ex\+Neighborhood}}$<$ \mbox{\hyperlink{classmo_neighborhood_a9b0ab01b1c9034657754257a90726d14}{E\+OT}}, Fitness $>$\+::init (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classmo_neighborhood_a9b0ab01b1c9034657754257a90726d14}{E\+OT}} \&}]{\+\_\+solution,  }\item[{\mbox{\hyperlink{classmo_two_opt_ex_neighbor}{Neighbor}} \&}]{\+\_\+current }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}

Initialization of the neighborhood 
\begin{DoxyParams}{Parameters}
{\em \+\_\+solution} & the solution to explore \\
\hline
{\em \+\_\+current} & the first neighbor \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{classmo_two_opt_ex_neighborhood_a5afff0df34a8453f4baa8f6b3cf675c5}\label{classmo_two_opt_ex_neighborhood_a5afff0df34a8453f4baa8f6b3cf675c5}} 
\index{moTwoOptExNeighborhood$<$ EOT, Fitness $>$@{moTwoOptExNeighborhood$<$ EOT, Fitness $>$}!next@{next}}
\index{next@{next}!moTwoOptExNeighborhood$<$ EOT, Fitness $>$@{moTwoOptExNeighborhood$<$ EOT, Fitness $>$}}
\doxysubsubsection{\texorpdfstring{next()}{next()}}
{\footnotesize\ttfamily template$<$class E\+OT , class Fitness  = typename E\+O\+T\+::\+Fitness$>$ \\
virtual void \mbox{\hyperlink{classmo_two_opt_ex_neighborhood}{mo\+Two\+Opt\+Ex\+Neighborhood}}$<$ \mbox{\hyperlink{classmo_neighborhood_a9b0ab01b1c9034657754257a90726d14}{E\+OT}}, Fitness $>$\+::next (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classmo_neighborhood_a9b0ab01b1c9034657754257a90726d14}{E\+OT}} \&}]{\+\_\+solution,  }\item[{\mbox{\hyperlink{classmo_two_opt_ex_neighbor}{Neighbor}} \&}]{\+\_\+current }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}

Give the next neighbor 
\begin{DoxyParams}{Parameters}
{\em \+\_\+solution} & the solution to explore \\
\hline
{\em \+\_\+current} & the next neighbor \\
\hline
\end{DoxyParams}


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