\section{MOEO$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$ Class Template Reference}
\label{classMOEO}\index{MOEO@{MOEO}}
Base class allowing to represent a solution (an individual) for multi-objective optimization.  


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

Inheritance diagram for MOEO$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$::\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.25806cm]{classMOEO}
\end{center}
\end{figure}
\subsection*{Public Types}
\begin{CompactItemize}
\item 
typedef MOEOObjective\-Vector {\bf Objective\-Vector}\label{classMOEO_9fafca99234ef3cd9fdbaf05bde5a275}

\begin{CompactList}\small\item\em the objective vector type of a solution \item\end{CompactList}\item 
typedef MOEOFitness {\bf Fitness}\label{classMOEO_03184b6c0b5c905e0ff5a790a3d55803}

\begin{CompactList}\small\item\em the fitness type of a solution \item\end{CompactList}\item 
typedef MOEODiversity {\bf Diversity}\label{classMOEO_9682a883fedc6333e95906e02236d492}

\begin{CompactList}\small\item\em the diversity type of a solution \item\end{CompactList}\end{CompactItemize}
\subsection*{Public Member Functions}
\begin{CompactItemize}
\item 
{\bf MOEO} ()\label{classMOEO_cff537a68ecc80c753318d3e12f842f5}

\begin{CompactList}\small\item\em Ctor. \item\end{CompactList}\item 
virtual {\bf $\sim$MOEO} ()\label{classMOEO_0215e9acab4ab57088175f9856e6c48c}

\begin{CompactList}\small\item\em Virtual dtor. \item\end{CompactList}\item 
{\bf Objective\-Vector} {\bf objective\-Vector} () const\label{classMOEO_f34036fdd02c5aef46d2a0f000d3a59e}

\begin{CompactList}\small\item\em Returns the objective vector of the current solution. \item\end{CompactList}\item 
void {\bf objective\-Vector} (const {\bf Objective\-Vector} \&\_\-objective\-Vector\-Value)
\begin{CompactList}\small\item\em Sets the objective vector of the current solution. \item\end{CompactList}\item 
void {\bf invalidate\-Objective\-Vector} ()\label{classMOEO_6b75e7e84726cf4e2d50216a35cec70b}

\begin{CompactList}\small\item\em Sets the objective vector as invalid. \item\end{CompactList}\item 
bool {\bf invalid\-Objective\-Vector} () const\label{classMOEO_1063475f98ef0c8afb8ebf299e5d3baa}

\begin{CompactList}\small\item\em Returns true if the objective vector is invalid, false otherwise. \item\end{CompactList}\item 
{\bf Fitness} {\bf fitness} () const\label{classMOEO_e41a75b01ca1899adec50729cd6a4e04}

\begin{CompactList}\small\item\em Returns the fitness value of the current solution. \item\end{CompactList}\item 
void {\bf fitness} (const {\bf Fitness} \&\_\-fitness\-Value)
\begin{CompactList}\small\item\em Sets the fitness value of the current solution. \item\end{CompactList}\item 
void {\bf invalidate\-Fitness} ()\label{classMOEO_55876e2e7cd537052fec1c7f46f37ffe}

\begin{CompactList}\small\item\em Sets the fitness value as invalid. \item\end{CompactList}\item 
bool {\bf invalid\-Fitness} () const\label{classMOEO_4b5fb8c8c04e86aa039a42ffa2c8b327}

\begin{CompactList}\small\item\em Returns true if the fitness value is invalid, false otherwise. \item\end{CompactList}\item 
{\bf Diversity} {\bf diversity} () const\label{classMOEO_2242897d75e8849379b66b1e754ba65b}

\begin{CompactList}\small\item\em Returns the diversity value of the current solution. \item\end{CompactList}\item 
void {\bf diversity} (const {\bf Diversity} \&\_\-diversity\-Value)
\begin{CompactList}\small\item\em Sets the diversity value of the current solution. \item\end{CompactList}\item 
void {\bf invalidate\-Diversity} ()\label{classMOEO_1283a27baab9728673445832e6d4301a}

\begin{CompactList}\small\item\em Sets the diversity value as invalid. \item\end{CompactList}\item 
bool {\bf invalid\-Diversity} () const\label{classMOEO_580a4b2a92a3f8ca5e56431cf86bbd73}

\begin{CompactList}\small\item\em Returns true if the diversity value is invalid, false otherwise. \item\end{CompactList}\item 
void {\bf invalidate} ()\label{classMOEO_1069501a40e07071d78c067c46b696ee}

\begin{CompactList}\small\item\em Sets the objective vector, the fitness value and the diversity value as invalid. \item\end{CompactList}\item 
bool {\bf invalid} () const\label{classMOEO_795f686497042d62fce2f87bd47017bc}

\begin{CompactList}\small\item\em Returns true if the fitness value is invalid, false otherwise. \item\end{CompactList}\item 
bool {\bf operator$<$} (const {\bf MOEO} \&\_\-other) const
\begin{CompactList}\small\item\em Returns true if the objective vector of the current solution is smaller than the objective vector of \_\-other on the first objective, then on the second, and so on (can be usefull for sorting/printing). \item\end{CompactList}\item 
virtual std::string {\bf class\-Name} () const\label{classMOEO_a020936acf61d8aef30983c2dd220a99}

\begin{CompactList}\small\item\em Return the class id (the class name as a std::string). \item\end{CompactList}\item 
virtual void {\bf print\-On} (std::ostream \&\_\-os) const
\begin{CompactList}\small\item\em Writing object. \item\end{CompactList}\item 
virtual void {\bf read\-From} (std::istream \&\_\-is)
\begin{CompactList}\small\item\em Reading object. \item\end{CompactList}\end{CompactItemize}
\subsection*{Private Attributes}
\begin{CompactItemize}
\item 
{\bf Objective\-Vector} {\bf objective\-Vector\-Value}\label{classMOEO_26b6fd1187b825b655d5a34b1d0693c9}

\begin{CompactList}\small\item\em the objective vector of this solution \item\end{CompactList}\item 
bool {\bf invalid\-Objective\-Vector\-Value}\label{classMOEO_d07613f286ef484f164c51c9c1b2dc91}

\begin{CompactList}\small\item\em true if the objective vector is invalid \item\end{CompactList}\item 
{\bf Fitness} {\bf fitness\-Value}\label{classMOEO_bcc3104ab7311fa5987de80811393c7c}

\begin{CompactList}\small\item\em the fitness value of this solution \item\end{CompactList}\item 
bool {\bf invalid\-Fitness\-Value}\label{classMOEO_17f57546c6de38604d6749cc6ef9d254}

\begin{CompactList}\small\item\em true if the fitness value is invalid \item\end{CompactList}\item 
{\bf Diversity} {\bf diversity\-Value}\label{classMOEO_83cc0d3a4020cbd7e1ff895dfedc61eb}

\begin{CompactList}\small\item\em the diversity value of this solution \item\end{CompactList}\item 
bool {\bf invalid\-Diversity\-Value}\label{classMOEO_c53c08b7c51d4cc06efe58c6127f9b7d}

\begin{CompactList}\small\item\em true if the diversity value is invalid \item\end{CompactList}\end{CompactItemize}


\subsection{Detailed Description}
\subsubsection*{template$<$class MOEOObjective\-Vector, class MOEOFitness, class MOEODiversity$>$ class MOEO$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$}

Base class allowing to represent a solution (an individual) for multi-objective optimization. 

The template argument MOEOObjective\-Vector allows to represent the solution in the objective space (it can be a \doxyref{moeo\-Objective\-Vector}{p.}{classmoeoObjectiveVector} object). The template argument MOEOFitness is an object reflecting the quality of the solution in term of convergence (the fitness of a solution is always to be maximized). The template argument MOEODiversity is an object reflecting the quality of the solution in term of diversity (the diversity of a solution is always to be maximized). All template arguments must have a void and a copy constructor. Besides, note that, contrary to the mono-objective case (and to {\bf EO}) where the fitness value of a solution is confused with its objective value, the fitness value differs of the objectives values in the multi-objective case. 



Definition at line 31 of file MOEO.h.

\subsection{Member Function Documentation}
\index{MOEO@{MOEO}!objectiveVector@{objectiveVector}}
\index{objectiveVector@{objectiveVector}!MOEO@{MOEO}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOObjective\-Vector, class MOEOFitness, class MOEODiversity$>$ void {\bf MOEO}$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$::objective\-Vector (const {\bf Objective\-Vector} \& {\em \_\-objective\-Vector\-Value})\hspace{0.3cm}{\tt  [inline]}}\label{classMOEO_d4a765a76f9acc1bca36297ab55d7282}


Sets the objective vector of the current solution. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em \_\-objective\-Vector\-Value}]the new objective vector \end{description}
\end{Desc}


Definition at line 82 of file MOEO.h.

References MOEO$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$::invalid\-Objective\-Vector\-Value, and MOEO$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$::objective\-Vector\-Value.\index{MOEO@{MOEO}!fitness@{fitness}}
\index{fitness@{fitness}!MOEO@{MOEO}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOObjective\-Vector, class MOEOFitness, class MOEODiversity$>$ void {\bf MOEO}$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$::fitness (const {\bf Fitness} \& {\em \_\-fitness\-Value})\hspace{0.3cm}{\tt  [inline]}}\label{classMOEO_4dc05ded73bb60d1a51e282006c8942d}


Sets the fitness value of the current solution. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em \_\-fitness\-Value}]the new fitness value \end{description}
\end{Desc}


Definition at line 124 of file MOEO.h.

References MOEO$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$::fitness\-Value, and MOEO$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$::invalid\-Fitness\-Value.\index{MOEO@{MOEO}!diversity@{diversity}}
\index{diversity@{diversity}!MOEO@{MOEO}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOObjective\-Vector, class MOEOFitness, class MOEODiversity$>$ void {\bf MOEO}$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$::diversity (const {\bf Diversity} \& {\em \_\-diversity\-Value})\hspace{0.3cm}{\tt  [inline]}}\label{classMOEO_1f0a391984cd14bcf930d1d81dd4848e}


Sets the diversity value of the current solution. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em \_\-diversity\-Value}]the new diversity value \end{description}
\end{Desc}


Definition at line 166 of file MOEO.h.

References MOEO$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$::diversity\-Value, and MOEO$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$::invalid\-Diversity\-Value.\index{MOEO@{MOEO}!operator<@{operator$<$}}
\index{operator<@{operator$<$}!MOEO@{MOEO}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOObjective\-Vector, class MOEOFitness, class MOEODiversity$>$ bool {\bf MOEO}$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$::operator$<$ (const {\bf MOEO}$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$ \& {\em \_\-other}) const\hspace{0.3cm}{\tt  [inline]}}\label{classMOEO_d38eef435511ba3a5a310712a608f4ab}


Returns true if the objective vector of the current solution is smaller than the objective vector of \_\-other on the first objective, then on the second, and so on (can be usefull for sorting/printing). 

You should implement another function in the sub-class of \doxyref{MOEO}{p.}{classMOEO} to have another sorting mecanism. \begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em \_\-other}]the other \doxyref{MOEO}{p.}{classMOEO} object to compare with \end{description}
\end{Desc}


Definition at line 217 of file MOEO.h.

References MOEO$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$::objective\-Vector().\index{MOEO@{MOEO}!printOn@{printOn}}
\index{printOn@{printOn}!MOEO@{MOEO}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOObjective\-Vector, class MOEOFitness, class MOEODiversity$>$ virtual void {\bf MOEO}$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$::print\-On (std::ostream \& {\em \_\-os}) const\hspace{0.3cm}{\tt  [inline, virtual]}}\label{classMOEO_99e3dbc645fd2c23a82e9303683a05c5}


Writing object. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em \_\-os}]output stream \end{description}
\end{Desc}


Reimplemented from {\bf EO$<$ MOEOObjective\-Vector $>$}.

Reimplemented in {\bf moeo\-Vector$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity, Gene\-Type $>$} \doxyref{}{p.}{classmoeoVector_c327325a47954f69df985da96d2c171a}, {\bf moeo\-Bit\-Vector$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$} \doxyref{}{p.}{classmoeoBitVector_e54c36ce64b849a6846953a25247a861}, {\bf moeo\-Vector$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity, bool $>$} \doxyref{}{p.}{classmoeoVector_c327325a47954f69df985da96d2c171a}, and {\bf moeo\-Vector$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity, double $>$} \doxyref{}{p.}{classmoeoVector_c327325a47954f69df985da96d2c171a}.

Definition at line 236 of file MOEO.h.

References MOEO$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$::invalid\-Objective\-Vector(), and MOEO$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$::objective\-Vector\-Value.\index{MOEO@{MOEO}!readFrom@{readFrom}}
\index{readFrom@{readFrom}!MOEO@{MOEO}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOObjective\-Vector, class MOEOFitness, class MOEODiversity$>$ virtual void {\bf MOEO}$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$::read\-From (std::istream \& {\em \_\-is})\hspace{0.3cm}{\tt  [inline, virtual]}}\label{classMOEO_1bbd9cb1a7709592bf4bc29dff8c5273}


Reading object. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em \_\-is}]input stream \end{description}
\end{Desc}


Reimplemented from {\bf EO$<$ MOEOObjective\-Vector $>$}.

Reimplemented in {\bf moeo\-Vector$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity, Gene\-Type $>$} \doxyref{}{p.}{classmoeoVector_cd8ee0fe79bb9515b29e2a4d3fee5ab9}, {\bf moeo\-Bit\-Vector$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$} \doxyref{}{p.}{classmoeoBitVector_31cd3f894615d0a27dd116a5c8082521}, {\bf moeo\-Vector$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity, bool $>$} \doxyref{}{p.}{classmoeoVector_cd8ee0fe79bb9515b29e2a4d3fee5ab9}, and {\bf moeo\-Vector$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity, double $>$} \doxyref{}{p.}{classmoeoVector_cd8ee0fe79bb9515b29e2a4d3fee5ab9}.

Definition at line 253 of file MOEO.h.

References MOEO$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$::invalidate\-Objective\-Vector(), MOEO$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$::invalid\-Objective\-Vector\-Value, and MOEO$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$::objective\-Vector\-Value.

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