\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}