\section{eo\-Easy\-EA$<$ EOT $>$ Class Template Reference}
\label{classeo_easy_e_a}\index{eoEasyEA@{eoEasyEA}}
An easy-to-use evolutionary algorithm; you can use any chromosome, and any selection transformation, merging and evaluation algorithms; you can even change in runtime parameters of those sub-algorithms.  


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

Inheritance diagram for eo\-Easy\-EA$<$ EOT $>$::\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=4cm]{classeo_easy_e_a}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{CompactItemize}
\item 
{\bf eo\-Easy\-EA} ({\bf eo\-Continue}$<$ {\bf EOT} $>$ \&\_\-continuator, {\bf eo\-Eval\-Func}$<$ {\bf EOT} $>$ \&\_\-eval, {\bf eo\-Breed}$<$ {\bf EOT} $>$ \&\_\-breed, {\bf eo\-Replacement}$<$ {\bf EOT} $>$ \&\_\-replace)\label{classeo_easy_e_a_a0}

\begin{CompactList}\small\item\em Ctor taking a breed and merge. \item\end{CompactList}\item 
{\bf eo\-Easy\-EA} ({\bf eo\-Continue}$<$ {\bf EOT} $>$ \&\_\-continuator, {\bf eo\-Pop\-Eval\-Func}$<$ {\bf EOT} $>$ \&\_\-eval, {\bf eo\-Breed}$<$ {\bf EOT} $>$ \&\_\-breed, {\bf eo\-Replacement}$<$ {\bf EOT} $>$ \&\_\-replace)\label{classeo_easy_e_a_a1}

\begin{CompactList}\small\item\em NEW Ctor taking a breed and merge and an eo\-Pop\-Eval. \item\end{CompactList}\item 
{\bf eo\-Easy\-EA} ({\bf eo\-Continue}$<$ {\bf EOT} $>$ \&\_\-continuator, {\bf eo\-Eval\-Func}$<$ {\bf EOT} $>$ \&\_\-eval, {\bf eo\-Breed}$<$ {\bf EOT} $>$ \&\_\-breed, {\bf eo\-Merge}$<$ {\bf EOT} $>$ \&\_\-merge, {\bf eo\-Reduce}$<$ {\bf EOT} $>$ \&\_\-reduce)\label{classeo_easy_e_a_a2}

\begin{CompactList}\small\item\em Ctor {\bf eo\-Breed}{\rm (p.\,\pageref{classeo_breed})}, {\bf eo\-Merge}{\rm (p.\,\pageref{classeo_merge})} and {\bf eo\-Reduce}{\rm (p.\,\pageref{classeo_reduce})}. \item\end{CompactList}\item 
{\bf eo\-Easy\-EA} ({\bf eo\-Continue}$<$ {\bf EOT} $>$ \&\_\-continuator, {\bf eo\-Eval\-Func}$<$ {\bf EOT} $>$ \&\_\-eval, {\bf eo\-Select}$<$ {\bf EOT} $>$ \&\_\-select, {\bf eo\-Transform}$<$ {\bf EOT} $>$ \&\_\-transform, {\bf eo\-Replacement}$<$ {\bf EOT} $>$ \&\_\-replace)\label{classeo_easy_e_a_a3}

\begin{CompactList}\small\item\em Ctor {\bf eo\-Select}{\rm (p.\,\pageref{classeo_select})}, {\bf eo\-Transform}{\rm (p.\,\pageref{classeo_transform})}, and {\bf eo\-Replacement}{\rm (p.\,\pageref{classeo_replacement})}. \item\end{CompactList}\item 
{\bf eo\-Easy\-EA} ({\bf eo\-Continue}$<$ {\bf EOT} $>$ \&\_\-continuator, {\bf eo\-Eval\-Func}$<$ {\bf EOT} $>$ \&\_\-eval, {\bf eo\-Select}$<$ {\bf EOT} $>$ \&\_\-select, {\bf eo\-Transform}$<$ {\bf EOT} $>$ \&\_\-transform, {\bf eo\-Merge}$<$ {\bf EOT} $>$ \&\_\-merge, {\bf eo\-Reduce}$<$ {\bf EOT} $>$ \&\_\-reduce)\label{classeo_easy_e_a_a4}

\begin{CompactList}\small\item\em Ctor {\bf eo\-Select}{\rm (p.\,\pageref{classeo_select})}, {\bf eo\-Transform}{\rm (p.\,\pageref{classeo_transform})}, {\bf eo\-Merge}{\rm (p.\,\pageref{classeo_merge})} and {\bf eo\-Reduce}{\rm (p.\,\pageref{classeo_reduce})}. \item\end{CompactList}\item 
virtual void {\bf operator()} ({\bf eo\-Pop}$<$ {\bf EOT} $>$ \&\_\-pop)\label{classeo_easy_e_a_a5}

\begin{CompactList}\small\item\em Apply a few generation of evolution to the population. \item\end{CompactList}\end{CompactItemize}
\subsection*{Protected Attributes}
\begin{CompactItemize}
\item 
eo\-Easy\-EA::eo\-Dummy\-Select {\bf dummy\-Select}\label{classeo_easy_e_a_p0}

\item 
eo\-Easy\-EA::eo\-Dummy\-Transform {\bf dummy\-Transform}\label{classeo_easy_e_a_p1}

\item 
eo\-Easy\-EA::eo\-Dummy\-Eval {\bf dummy\-Eval}\label{classeo_easy_e_a_p2}

\item 
{\bf eo\-Continue}$<$ {\bf EOT} $>$ \& {\bf continuator}\label{classeo_easy_e_a_p3}

\item 
{\bf eo\-Eval\-Func}$<$ {\bf EOT} $>$ \& {\bf eval}\label{classeo_easy_e_a_p4}

\item 
{\bf eo\-Pop\-Loop\-Eval}$<$ {\bf EOT} $>$ {\bf loop\-Eval}\label{classeo_easy_e_a_p5}

\item 
{\bf eo\-Pop\-Eval\-Func}$<$ {\bf EOT} $>$ \& {\bf pop\-Eval}\label{classeo_easy_e_a_p6}

\item 
{\bf eo\-Select\-Transform}$<$ {\bf EOT} $>$ {\bf select\-Transform}\label{classeo_easy_e_a_p7}

\item 
{\bf eo\-Breed}$<$ {\bf EOT} $>$ \& {\bf breed}\label{classeo_easy_e_a_p8}

\item 
{\bf eo\-No\-Elitism}$<$ {\bf EOT} $>$ {\bf dummy\-Merge}\label{classeo_easy_e_a_p9}

\item 
{\bf eo\-Truncate}$<$ {\bf EOT} $>$ {\bf dummy\-Reduce}\label{classeo_easy_e_a_p10}

\item 
{\bf eo\-Merge\-Reduce}$<$ {\bf EOT} $>$ {\bf merge\-Reduce}\label{classeo_easy_e_a_p11}

\item 
{\bf eo\-Replacement}$<$ {\bf EOT} $>$ \& {\bf replace}\label{classeo_easy_e_a_p12}

\end{CompactItemize}
\subsection*{Friends}
\begin{CompactItemize}
\item 
class {\bf eo\-Islands\-Easy\-EA$<$EOT$>$}\label{classeo_easy_e_a_n0}

\item 
class {\bf eo\-Dist\-Eval\-Easy\-EA$<$EOT$>$}\label{classeo_easy_e_a_n1}

\end{CompactItemize}


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

An easy-to-use evolutionary algorithm; you can use any chromosome, and any selection transformation, merging and evaluation algorithms; you can even change in runtime parameters of those sub-algorithms. 

Change (MS, July 3. 2001): Replaced the {\bf eo\-Eval\-Func}{\rm (p.\,\pageref{classeo_eval_func})} by an {\bf eo\-Pop\-Eval\-Func}{\rm (p.\,\pageref{classeo_pop_eval_func})}: this immediately allows many useful constructs, such as co-evolution (e.g. game players), parisian approach (the solution to the problem is the whole population) or simple distribution of evaluations on a cluster. In case an {\bf eo\-Eval\-Func}{\rm (p.\,\pageref{classeo_eval_func})} is passed, it is embedded on an {\bf eo\-Pop\-Loop\-Eval}{\rm (p.\,\pageref{classeo_pop_loop_eval})} This makes things a little uglier (required an additional \char`\"{}dummy\char`\"{} member

Note: it looks ugly only because we wanted to authorize many different constructors. Please only look at the operator() and there shall be light 



Definition at line 63 of file eo\-Easy\-EA.h.

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