\section{eo\-Pop$<$ EOT $>$ Class Template Reference}
\label{classeo_pop}\index{eoPop@{eoPop}}
A std::vector of {\bf EO}{\rm (p.\,\pageref{class_e_o})} object, to be used in all algorithms (selectors, operators, replacements, ...).  


{\tt \#include $<$eo\-Pop.h$>$}

Inheritance diagram for eo\-Pop$<$ EOT $>$::\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=3cm]{classeo_pop}
\end{center}
\end{figure}
\subsection*{Public Types}
\begin{CompactItemize}
\item 
typedef EOT::Fitness {\bf Fitness}\label{classeo_pop_w0}

\item 
typedef EOT::fitness\_\-traits {\bf fitness\_\-traits}\label{classeo_pop_w1}

\end{CompactItemize}
\subsection*{Public Member Functions}
\begin{CompactItemize}
\item 
{\bf eo\-Pop} ()
\begin{CompactList}\small\item\em Default ctor. \item\end{CompactList}\item 
{\bf eo\-Pop} (unsigned \_\-pop\-Size, {\bf eo\-Init}$<$ {\bf EOT} $>$ \&\_\-chrom\-Init)
\begin{CompactList}\small\item\em Ctor for the initialization of chromosomes. \item\end{CompactList}\item 
void {\bf append} (unsigned \_\-new\-Pop\-Size, {\bf eo\-Init}$<$ {\bf EOT} $>$ \&\_\-chrom\-Init)
\begin{CompactList}\small\item\em appstd::ends random guys at end of pop. \item\end{CompactList}\item 
{\bf eo\-Pop} (std::istream \&\_\-is)
\begin{CompactList}\small\item\em Ctor from an std::istream; reads the population from a stream, each element should be in different lines. \item\end{CompactList}\item 
virtual {\bf $\sim$eo\-Pop} ()\label{classeo_pop_a4}

\begin{CompactList}\small\item\em Empty Dtor. \item\end{CompactList}\item 
void {\bf sort} (void)
\begin{CompactList}\small\item\em sort the population. \item\end{CompactList}\item 
void {\bf sort} (std::vector$<$ const {\bf EOT} $\ast$ $>$ \&result) const \label{classeo_pop_a6}

\begin{CompactList}\small\item\em creates a std::vector$<$EOT$\ast$$>$ pointing to the individuals in descending order \item\end{CompactList}\item 
void {\bf shuffle} (void)
\begin{CompactList}\small\item\em shuffle the population. \item\end{CompactList}\item 
void {\bf shuffle} (std::vector$<$ const {\bf EOT} $\ast$ $>$ \&result) const \label{classeo_pop_a8}

\begin{CompactList}\small\item\em creates a std::vector$<$EOT$\ast$$>$ pointing to the individuals in random order \item\end{CompactList}\item 
{\bf eo\-Pop}$<$ {\bf EOT} $>$::iterator {\bf it\_\-best\_\-element} ()\label{classeo_pop_a9}

\begin{CompactList}\small\item\em returns an iterator to the best individual DOES NOT MOVE ANYBODY \item\end{CompactList}\item 
const {\bf EOT} \& {\bf best\_\-element} () const \label{classeo_pop_a10}

\begin{CompactList}\small\item\em returns an iterator to the best individual DOES NOT MOVE ANYBODY \item\end{CompactList}\item 
const {\bf EOT} \& {\bf worse\_\-element} () const \label{classeo_pop_a11}

\begin{CompactList}\small\item\em returns a const reference to the worse individual DOES NOT MOVE ANYBODY \item\end{CompactList}\item 
{\bf eo\-Pop}$<$ {\bf EOT} $>$::iterator {\bf it\_\-worse\_\-element} ()\label{classeo_pop_a12}

\begin{CompactList}\small\item\em returns an iterator to the worse individual DOES NOT MOVE ANYBODY \item\end{CompactList}\item 
{\bf eo\-Pop}$<$ {\bf EOT} $>$::iterator {\bf nth\_\-element} (int nth)
\begin{CompactList}\small\item\em slightly faster algorithm than sort to find all individuals that are better than the nth individual. \item\end{CompactList}\item 
Fitness {\bf nth\_\-element\_\-fitness} (int which) const \label{classeo_pop_a14}

\begin{CompactList}\small\item\em returns the fitness of the nth element \item\end{CompactList}\item 
void {\bf nth\_\-element} (int which, std::vector$<$ const {\bf EOT} $\ast$ $>$ \&result) const \label{classeo_pop_a15}

\begin{CompactList}\small\item\em const nth\_\-element function, returns pointers to sorted individuals up the the nth \item\end{CompactList}\item 
void {\bf swap} ({\bf eo\-Pop}$<$ {\bf EOT} $>$ \&other)\label{classeo_pop_a16}

\begin{CompactList}\small\item\em does STL swap with other pop \item\end{CompactList}\item 
virtual void {\bf sorted\-Print\-On} (std::ostream \&\_\-os) const 
\begin{CompactList}\small\item\em Prints sorted pop but does NOT modify it! \item\end{CompactList}\item 
virtual void {\bf print\-On} (std::ostream \&\_\-os) const 
\begin{CompactList}\small\item\em Write object. \item\end{CompactList}\item 
virtual void {\bf invalidate} ()\label{classeo_pop_a19}

\item 
void {\bf sort} ()\label{classeo_pop_a21}

\item 
void {\bf scale} ()\label{classeo_pop_a22}

\item 
void {\bf set\-Perf2Worth} ({\bf eo\-Perf2Worth}$<$ {\bf EOT} $>$ \&\_\-p2w)\label{classeo_pop_a23}

\item 
void {\bf set\-Perf2Worth} ({\bf eo\-Perf2Worth}$<$ {\bf EOT} $>$ $\ast$\_\-p2w)\label{classeo_pop_a24}

\item 
{\bf eo\-Perf2Worth}$<$ {\bf EOT} $>$ $\ast$ {\bf get\-Perf2Worth} ()\label{classeo_pop_a25}

\item 
void {\bf swap} ({\bf eo\-Pop}$<$ {\bf EOT} $>$ \&other)\label{classeo_pop_a26}

\end{CompactItemize}
\begin{Indent}{\bf Methods from eo\-Object}\par
\begin{CompactItemize}
\item 
virtual void {\bf read\-From} (std::istream \&\_\-is)
\begin{CompactList}\small\item\em Read object. \item\end{CompactList}\item 
virtual std::string {\bf class\-Name} () const 
\begin{CompactList}\small\item\em Inherited from {\bf eo\-Object}{\rm (p.\,\pageref{classeo_object})}. \item\end{CompactList}\end{CompactItemize}
\end{Indent}
\subsection*{Private Attributes}
\begin{CompactItemize}
\item 
{\bf eo\-Perf2Worth}$<$ {\bf EOT} $>$ $\ast$ {\bf p2w}\label{classeo_pop_r0}

\end{CompactItemize}


\subsection{Detailed Description}
\subsubsection*{template$<$class EOT$>$ class eo\-Pop$<$ EOT $>$}

A std::vector of {\bf EO}{\rm (p.\,\pageref{class_e_o})} object, to be used in all algorithms (selectors, operators, replacements, ...). 

We have no idea if a population can be some other thing that a std::vector, but if somebody thinks of it, this concrete implementation can be moved to \char`\"{}generic\char`\"{} and an abstract Population interface be provided.

The template can be instantiated with anything that accepts a \char`\"{}size\char`\"{} and {\bf eo\-Init}{\rm (p.\,\pageref{classeo_init})} derived object. in the ctor. EOT must also have a copy ctor, since temporaries are created and then passed to the {\bf eo\-Init}{\rm (p.\,\pageref{classeo_init})} object 



Definition at line 54 of file eo\-Pop.h.

\subsection{Constructor \& Destructor Documentation}
\index{eoPop@{eo\-Pop}!eoPop@{eoPop}}
\index{eoPop@{eoPop}!eoPop@{eo\-Pop}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ {\bf eo\-Pop}$<$ {\bf EOT} $>$::{\bf eo\-Pop} ()\hspace{0.3cm}{\tt  [inline]}}\label{classeo_pop_a0}


Default ctor. 

Creates empty pop

Definition at line 68 of file eo\-Pop.h.\index{eoPop@{eo\-Pop}!eoPop@{eoPop}}
\index{eoPop@{eoPop}!eoPop@{eo\-Pop}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ {\bf eo\-Pop}$<$ {\bf EOT} $>$::{\bf eo\-Pop} (unsigned {\em \_\-pop\-Size}, {\bf eo\-Init}$<$ {\bf EOT} $>$ \& {\em \_\-chrom\-Init})\hspace{0.3cm}{\tt  [inline]}}\label{classeo_pop_a1}


Ctor for the initialization of chromosomes. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em \_\-pop\-Size}]total population size \item[{\em \_\-chrom\-Init}]Initialization routine, produces EO's, needs to be an {\bf eo\-Init}{\rm (p.\,\pageref{classeo_init})}\end{description}
\end{Desc}


Definition at line 75 of file eo\-Pop.h.\index{eoPop@{eo\-Pop}!eoPop@{eoPop}}
\index{eoPop@{eoPop}!eoPop@{eo\-Pop}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ {\bf eo\-Pop}$<$ {\bf EOT} $>$::{\bf eo\-Pop} (std::istream \& {\em \_\-is})\hspace{0.3cm}{\tt  [inline]}}\label{classeo_pop_a3}


Ctor from an std::istream; reads the population from a stream, each element should be in different lines. 

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


Definition at line 113 of file eo\-Pop.h.

\subsection{Member Function Documentation}
\index{eoPop@{eo\-Pop}!append@{append}}
\index{append@{append}!eoPop@{eo\-Pop}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ void {\bf eo\-Pop}$<$ {\bf EOT} $>$::append (unsigned {\em \_\-new\-Pop\-Size}, {\bf eo\-Init}$<$ {\bf EOT} $>$ \& {\em \_\-chrom\-Init})\hspace{0.3cm}{\tt  [inline]}}\label{classeo_pop_a2}


appstd::ends random guys at end of pop. 

Can be used to initialize it pop is empty

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em \_\-pop\-Size}]total population size \item[{\em \_\-chrom\-Init}]Initialization routine, produces EO's, needs to be an {\bf eo\-Init}{\rm (p.\,\pageref{classeo_init})}\end{description}
\end{Desc}


Definition at line 91 of file eo\-Pop.h.

Referenced by eo\-Easy\-EA$<$ EOT $>$::operator()().\index{eoPop@{eo\-Pop}!sort@{sort}}
\index{sort@{sort}!eoPop@{eo\-Pop}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ void {\bf eo\-Pop}$<$ {\bf EOT} $>$::sort (void)\hspace{0.3cm}{\tt  [inline]}}\label{classeo_pop_a5}


sort the population. 

Use this member to sort in order of descending Fitness, so the first individual is the best! 

Definition at line 133 of file eo\-Pop.h.

Referenced by eo\-Truncated\-Select\-Many$<$ EOT $>$::operator()(), eo\-Reduce\-Merge\-Reduce$<$ EOT $>$::operator()(), eo\-Ranking$<$ EOT $>$::operator()(), eo\-PBILAdditive$<$ EOT $>$::operator()(), eo\-Check\-Point$<$ EOT $>$::operator()(), eo\-Sequential\-Select$<$ EOT $>$::setup(), and eo\-Pop$<$ Dummy $>$::sorted\-Print\-On().\index{eoPop@{eo\-Pop}!shuffle@{shuffle}}
\index{shuffle@{shuffle}!eoPop@{eo\-Pop}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ void {\bf eo\-Pop}$<$ {\bf EOT} $>$::shuffle (void)\hspace{0.3cm}{\tt  [inline]}}\label{classeo_pop_a7}


shuffle the population. 

Use this member to put the population in random order 

Definition at line 152 of file eo\-Pop.h.

Referenced by eo\-Truncated\-Select\-Many$<$ EOT $>$::operator()(), eo\-Random\-Split$<$ EOT $>$::operator()(), eo\-Random\-Reduce$<$ EOT $>$::operator()(), eo\-Elite\-Sequential\-Select$<$ EOT $>$::setup(), and eo\-Sequential\-Select$<$ EOT $>$::setup().\index{eoPop@{eo\-Pop}!nth_element@{nth\_\-element}}
\index{nth_element@{nth\_\-element}!eoPop@{eo\-Pop}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ {\bf eo\-Pop}$<${\bf EOT}$>$::iterator {\bf eo\-Pop}$<$ {\bf EOT} $>$::nth\_\-element (int {\em nth})\hspace{0.3cm}{\tt  [inline]}}\label{classeo_pop_a13}


slightly faster algorithm than sort to find all individuals that are better than the nth individual. 

INDIVIDUALS ARE MOVED AROUND in the pop. 

Definition at line 201 of file eo\-Pop.h.

Referenced by eo\-Deterministic\-Survive\-And\-Die$<$ EOT $>$::operator()(), eo\-Truncate\-Split$<$ EOT $>$::operator()(), eo\-Reduce\-Merge\-Reduce$<$ EOT $>$::operator()(), eo\-Truncate$<$ EOT $>$::operator()(), eo\-Elitism$<$ EOT $>$::operator()(), and eo\-Truncated\-Select\-One$<$ EOT $>$::setup().\index{eoPop@{eo\-Pop}!sortedPrintOn@{sortedPrintOn}}
\index{sortedPrintOn@{sortedPrintOn}!eoPop@{eo\-Pop}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ virtual void {\bf eo\-Pop}$<$ {\bf EOT} $>$::sorted\-Print\-On (std::ostream \& {\em \_\-os}) const\hspace{0.3cm}{\tt  [inline, virtual]}}\label{classeo_pop_a17}


Prints sorted pop but does NOT modify it! 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em \_\-os}]A std::ostream. \end{description}
\end{Desc}


Definition at line 247 of file eo\-Pop.h.\index{eoPop@{eo\-Pop}!printOn@{printOn}}
\index{printOn@{printOn}!eoPop@{eo\-Pop}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ virtual void {\bf eo\-Pop}$<$ {\bf EOT} $>$::print\-On (std::ostream \& {\em \_\-os}) const\hspace{0.3cm}{\tt  [inline, virtual]}}\label{classeo_pop_a18}


Write object. 

It's called print\-On since it prints the object \_\-on\_\- a stream. \begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em \_\-os}]A std::ostream. \end{description}
\end{Desc}


Implements {\bf eo\-Printable} {\rm (p.\,\pageref{classeo_printable_a1})}.

Definition at line 262 of file eo\-Pop.h.\index{eoPop@{eo\-Pop}!readFrom@{readFrom}}
\index{readFrom@{readFrom}!eoPop@{eo\-Pop}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ virtual void {\bf eo\-Pop}$<$ {\bf EOT} $>$::read\-From (std::istream \& {\em \_\-is})\hspace{0.3cm}{\tt  [inline, virtual]}}\label{classeo_pop_z19_0}


Read object. 

The EOT class must have a ctor from a stream; \begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em \_\-is}]A std::istream. \end{description}
\end{Desc}


Implements {\bf eo\-Persistent} {\rm (p.\,\pageref{classeo_persistent_a1})}.

Definition at line 274 of file eo\-Pop.h.

Referenced by eo\-Pop$<$ Dummy $>$::eo\-Pop().\index{eoPop@{eo\-Pop}!className@{className}}
\index{className@{className}!eoPop@{eo\-Pop}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ virtual std::string {\bf eo\-Pop}$<$ {\bf EOT} $>$::class\-Name (void) const\hspace{0.3cm}{\tt  [inline, virtual]}}\label{classeo_pop_z19_1}


Inherited from {\bf eo\-Object}{\rm (p.\,\pageref{classeo_object})}. 

Returns the class name. \begin{Desc}
\item[See also:]{\bf eo\-Object}{\rm (p.\,\pageref{classeo_object})} \end{Desc}


Implements {\bf eo\-Object} {\rm (p.\,\pageref{classeo_object_a1})}.

Definition at line 289 of file eo\-Pop.h.

Referenced by eo\-Check\-Point$<$ EOT $>$::all\-Class\-Names().

The documentation for this class was generated from the following files:\begin{CompactItemize}
\item 
eo\-Pop.h\item 
fitness\_\-traits.cpp\end{CompactItemize}
