\hypertarget{group___selectors}{}\doxysection{Selection operators}
\label{group___selectors}\index{Selection operators@{Selection operators}}


Selectors are operators that select a subset of a population.  


Collaboration diagram for Selection operators\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{group___selectors}
\end{center}
\end{figure}
\doxysubsection*{Classes}
\begin{DoxyCompactItemize}
\item 
class \mbox{\hyperlink{classeo_det_select}{eo\+Det\+Select$<$ E\+O\+T $>$}}
\item 
class \mbox{\hyperlink{classeo_det_tournament_select}{eo\+Det\+Tournament\+Select$<$ E\+O\+T $>$}}
\item 
class \mbox{\hyperlink{classeo_fitness_scaling_select}{eo\+Fitness\+Scaling\+Select$<$ E\+O\+T $>$}}
\item 
class \mbox{\hyperlink{classeo_linear_fit_scaling}{eo\+Linear\+Fit\+Scaling$<$ E\+O\+T $>$}}
\item 
class \mbox{\hyperlink{classeo_linear_topology}{eo\+Linear\+Topology$<$ P\+O\+T $>$}}
\item 
class \mbox{\hyperlink{classeo_neighborhood}{eo\+Neighborhood$<$ P\+O\+T $>$}}
\item 
class \mbox{\hyperlink{classeo_perf2_worth}{eo\+Perf2\+Worth$<$ E\+O\+T, Worth\+T $>$}}
\begin{DoxyCompactList}\small\item\em Base class to transform raw fitnesses into fitness for selection. \end{DoxyCompactList}\item 
class \mbox{\hyperlink{classeo_perf2_worth_cached}{eo\+Perf2\+Worth\+Cached$<$ E\+O\+T, Worth\+T $>$}}
\item 
class \mbox{\hyperlink{classeo_no_perf2_worth}{eo\+No\+Perf2\+Worth$<$ E\+O\+T $>$}}
\item 
class \mbox{\hyperlink{classeo_proportional_select}{eo\+Proportional\+Select$<$ E\+O\+T $>$}}
\item 
class \mbox{\hyperlink{classeo_random_select}{eo\+Random\+Select$<$ E\+O\+T $>$}}
\item 
class \mbox{\hyperlink{classeo_best_select}{eo\+Best\+Select$<$ E\+O\+T $>$}}
\item 
class \mbox{\hyperlink{classeo_no_select}{eo\+No\+Select$<$ E\+O\+T $>$}}
\item 
class \mbox{\hyperlink{classeo_ranking}{eo\+Ranking$<$ E\+O\+T $>$}}
\item 
class \mbox{\hyperlink{classeo_ranking_select}{eo\+Ranking\+Select$<$ E\+O\+T $>$}}
\item 
class \mbox{\hyperlink{classeo_ring_topology}{eo\+Ring\+Topology$<$ P\+O\+T $>$}}
\item 
class \mbox{\hyperlink{classeo_select}{eo\+Select$<$ E\+O\+T $>$}}
\item 
class \mbox{\hyperlink{classeo_select_factory}{eo\+Select\+Factory$<$ E\+O\+T $>$}}
\item 
class \mbox{\hyperlink{classeo_select_from_worth}{eo\+Select\+From\+Worth$<$ E\+O\+T, Worth\+Type $>$}}
\item 
class \mbox{\hyperlink{classeo_det_tournament_worth_select}{eo\+Det\+Tournament\+Worth\+Select$<$ E\+O\+T, Worth\+T $>$}}
\item 
class \mbox{\hyperlink{classeo_stoch_tournament_worth_select}{eo\+Stoch\+Tournament\+Worth\+Select$<$ E\+O\+T, Worth\+T $>$}}
\item 
class \mbox{\hyperlink{classeo_roulette_worth_select}{eo\+Roulette\+Worth\+Select$<$ E\+O\+T, Worth\+T $>$}}
\item 
class \mbox{\hyperlink{classeo_select_many}{eo\+Select\+Many$<$ E\+O\+T $>$}}
\item 
class \mbox{\hyperlink{classeo_select_number}{eo\+Select\+Number$<$ E\+O\+T $>$}}
\item 
class \mbox{\hyperlink{classeo_select_one}{eo\+Select\+One$<$ E\+O\+T, Worth\+T $>$}}
\item 
class \mbox{\hyperlink{classeo_select_perc}{eo\+Select\+Perc$<$ E\+O\+T $>$}}
\item 
class \mbox{\hyperlink{classeo_sequential_select}{eo\+Sequential\+Select$<$ E\+O\+T $>$}}
\item 
class \mbox{\hyperlink{classeo_elite_sequential_select}{eo\+Elite\+Sequential\+Select$<$ E\+O\+T $>$}}
\item 
class \mbox{\hyperlink{classd_matrix}{d\+Matrix}}
\item 
class \mbox{\hyperlink{classeo_sharing}{eo\+Sharing$<$ E\+O\+T $>$}}
\item 
class \mbox{\hyperlink{classeo_sharing_select}{eo\+Sharing\+Select$<$ E\+O\+T $>$}}
\item 
class \mbox{\hyperlink{classeo_social_neighborhood}{eo\+Social\+Neighborhood$<$ P\+O\+T $>$}}
\item 
class \mbox{\hyperlink{classeo_star_topology}{eo\+Star\+Topology$<$ P\+O\+T $>$}}
\item 
class \mbox{\hyperlink{classeo_stochastic_universal_select}{eo\+Stochastic\+Universal\+Select$<$ E\+O\+T $>$}}
\item 
class \mbox{\hyperlink{classeo_stoch_tournament_select}{eo\+Stoch\+Tournament\+Select$<$ E\+O\+T $>$}}
\item 
class \mbox{\hyperlink{classeo_topology}{eo\+Topology$<$ P\+O\+T $>$}}
\item 
class \mbox{\hyperlink{classeo_truncated_select_many}{eo\+Truncated\+Select\+Many$<$ E\+O\+T $>$}}
\item 
class \mbox{\hyperlink{classeo_truncated_select_one}{eo\+Truncated\+Select\+One$<$ E\+O\+T $>$}}
\item 
class \mbox{\hyperlink{classeo_trunc_select}{eo\+Trunc\+Select$<$ E\+O\+T $>$}}
\item 
class \mbox{\hyperlink{classeo_rank_mu_select}{eo\+Rank\+Mu\+Select$<$ E\+O\+T $>$}}
\item 
class \mbox{\hyperlink{classeo_elite_select}{eo\+Elite\+Select$<$ E\+O\+T $>$}}
\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
{\footnotesize template$<$class E\+OT $>$ }\\bool \mbox{\hyperlink{group___selectors_ga8347829fdfecf3586ffc2cb8079932ac}{minimizing\+\_\+fitness}} ()
\item 
\mbox{\Hypertarget{group___selectors_gaef99936dbe253f9e8cdd70b3bfe2940b}\label{group___selectors_gaef99936dbe253f9e8cdd70b3bfe2940b}} 
double {\bfseries scale\+\_\+fitness} (const std\+::pair$<$ double, double $>$ \&\+\_\+minmax, double \+\_\+value)
\item 
\mbox{\Hypertarget{group___selectors_gaddcc97344e2ccbe4aaf3f1dd65931f49}\label{group___selectors_gaddcc97344e2ccbe4aaf3f1dd65931f49}} 
{\footnotesize template$<$class It $>$ }\\double {\bfseries sum\+\_\+fitness} (It begin, It end)
\item 
\mbox{\Hypertarget{group___selectors_gab85a11cdd311c8809eddf2bac3148773}\label{group___selectors_gab85a11cdd311c8809eddf2bac3148773}} 
{\footnotesize template$<$class E\+OT $>$ }\\double {\bfseries sum\+\_\+fitness} (const \mbox{\hyperlink{classeo_pop}{eo\+Pop}}$<$ \mbox{\hyperlink{struct_dummy}{E\+OT}} $>$ \&\+\_\+pop)
\item 
\mbox{\Hypertarget{group___selectors_gad969fc799206eb0062cf4fe782c7ac74}\label{group___selectors_gad969fc799206eb0062cf4fe782c7ac74}} 
{\footnotesize template$<$class E\+OT $>$ }\\double {\bfseries sum\+\_\+fitness} (const \mbox{\hyperlink{classeo_pop}{eo\+Pop}}$<$ \mbox{\hyperlink{struct_dummy}{E\+OT}} $>$ \&\+\_\+pop, std\+::pair$<$ double, double $>$ \&\+\_\+minmax)
\item 
\mbox{\Hypertarget{group___selectors_ga5e2bde618aac2bfed9de3206edf22c65}\label{group___selectors_ga5e2bde618aac2bfed9de3206edf22c65}} 
{\footnotesize template$<$class It $>$ }\\It {\bfseries roulette\+\_\+wheel} (It \+\_\+begin, It \+\_\+end, double total, \mbox{\hyperlink{classeo_rng}{eo\+Rng}} \&\+\_\+gen=rng)
\item 
\mbox{\Hypertarget{group___selectors_gaad0180a7f6ced9e315e14703d4702e28}\label{group___selectors_gaad0180a7f6ced9e315e14703d4702e28}} 
{\footnotesize template$<$class E\+OT $>$ }\\const \mbox{\hyperlink{struct_dummy}{E\+OT}} \& {\bfseries roulette\+\_\+wheel} (const \mbox{\hyperlink{classeo_pop}{eo\+Pop}}$<$ \mbox{\hyperlink{struct_dummy}{E\+OT}} $>$ \&\+\_\+pop, double total, \mbox{\hyperlink{classeo_rng}{eo\+Rng}} \&\+\_\+gen=rng)
\item 
\mbox{\Hypertarget{group___selectors_ga8382cc96a720883017b2138f40904f88}\label{group___selectors_ga8382cc96a720883017b2138f40904f88}} 
{\footnotesize template$<$class E\+OT $>$ }\\\mbox{\hyperlink{struct_dummy}{E\+OT}} \& {\bfseries roulette\+\_\+wheel} (\mbox{\hyperlink{classeo_pop}{eo\+Pop}}$<$ \mbox{\hyperlink{struct_dummy}{E\+OT}} $>$ \&\+\_\+pop, double total, \mbox{\hyperlink{classeo_rng}{eo\+Rng}} \&\+\_\+gen=rng)
\item 
\mbox{\Hypertarget{group___selectors_ga6e30bec2aeebd08ccaba514ff091b138}\label{group___selectors_ga6e30bec2aeebd08ccaba514ff091b138}} 
{\footnotesize template$<$class It $>$ }\\It {\bfseries deterministic\+\_\+tournament} (It \+\_\+begin, It \+\_\+end, unsigned \+\_\+t\+\_\+size, \mbox{\hyperlink{classeo_rng}{eo\+Rng}} \&\+\_\+gen=rng)
\item 
\mbox{\Hypertarget{group___selectors_ga079bdcb2323eb20a28b8ce59e0b1832f}\label{group___selectors_ga079bdcb2323eb20a28b8ce59e0b1832f}} 
{\footnotesize template$<$class E\+OT $>$ }\\const \mbox{\hyperlink{struct_dummy}{E\+OT}} \& {\bfseries deterministic\+\_\+tournament} (const \mbox{\hyperlink{classeo_pop}{eo\+Pop}}$<$ \mbox{\hyperlink{struct_dummy}{E\+OT}} $>$ \&\+\_\+pop, unsigned \+\_\+t\+\_\+size, \mbox{\hyperlink{classeo_rng}{eo\+Rng}} \&\+\_\+gen=rng)
\item 
\mbox{\Hypertarget{group___selectors_gaf64c7c95bc9fd03223c21cdd62313700}\label{group___selectors_gaf64c7c95bc9fd03223c21cdd62313700}} 
{\footnotesize template$<$class E\+OT $>$ }\\\mbox{\hyperlink{struct_dummy}{E\+OT}} \& {\bfseries deterministic\+\_\+tournament} (\mbox{\hyperlink{classeo_pop}{eo\+Pop}}$<$ \mbox{\hyperlink{struct_dummy}{E\+OT}} $>$ \&\+\_\+pop, unsigned \+\_\+t\+\_\+size, \mbox{\hyperlink{classeo_rng}{eo\+Rng}} \&\+\_\+gen=rng)
\item 
\mbox{\Hypertarget{group___selectors_ga63394162fe4df6afbc8ebf2c82633055}\label{group___selectors_ga63394162fe4df6afbc8ebf2c82633055}} 
{\footnotesize template$<$class It $>$ }\\It {\bfseries inverse\+\_\+deterministic\+\_\+tournament} (It \+\_\+begin, It \+\_\+end, unsigned \+\_\+t\+\_\+size, \mbox{\hyperlink{classeo_rng}{eo\+Rng}} \&\+\_\+gen=rng)
\item 
\mbox{\Hypertarget{group___selectors_gaf6e7cf7aa1967db653cd4922644d68af}\label{group___selectors_gaf6e7cf7aa1967db653cd4922644d68af}} 
{\footnotesize template$<$class E\+OT $>$ }\\const \mbox{\hyperlink{struct_dummy}{E\+OT}} \& {\bfseries inverse\+\_\+deterministic\+\_\+tournament} (const \mbox{\hyperlink{classeo_pop}{eo\+Pop}}$<$ \mbox{\hyperlink{struct_dummy}{E\+OT}} $>$ \&\+\_\+pop, unsigned \+\_\+t\+\_\+size, \mbox{\hyperlink{classeo_rng}{eo\+Rng}} \&\+\_\+gen=rng)
\item 
\mbox{\Hypertarget{group___selectors_gac33541774d5ed3631eac4844cf9e39c0}\label{group___selectors_gac33541774d5ed3631eac4844cf9e39c0}} 
{\footnotesize template$<$class E\+OT $>$ }\\\mbox{\hyperlink{struct_dummy}{E\+OT}} \& {\bfseries inverse\+\_\+deterministic\+\_\+tournament} (\mbox{\hyperlink{classeo_pop}{eo\+Pop}}$<$ \mbox{\hyperlink{struct_dummy}{E\+OT}} $>$ \&\+\_\+pop, unsigned \+\_\+t\+\_\+size, \mbox{\hyperlink{classeo_rng}{eo\+Rng}} \&\+\_\+gen=rng)
\item 
\mbox{\Hypertarget{group___selectors_gab59557aaa3186b9308a104d7023b84a1}\label{group___selectors_gab59557aaa3186b9308a104d7023b84a1}} 
{\footnotesize template$<$class It $>$ }\\It {\bfseries stochastic\+\_\+tournament} (It \+\_\+begin, It \+\_\+end, double \+\_\+t\+\_\+rate, \mbox{\hyperlink{classeo_rng}{eo\+Rng}} \&\+\_\+gen=rng)
\item 
\mbox{\Hypertarget{group___selectors_ga6c65264b33d54d0a254b1b68d10b5053}\label{group___selectors_ga6c65264b33d54d0a254b1b68d10b5053}} 
{\footnotesize template$<$class E\+OT $>$ }\\const \mbox{\hyperlink{struct_dummy}{E\+OT}} \& {\bfseries stochastic\+\_\+tournament} (const \mbox{\hyperlink{classeo_pop}{eo\+Pop}}$<$ \mbox{\hyperlink{struct_dummy}{E\+OT}} $>$ \&\+\_\+pop, double \+\_\+t\+\_\+rate, \mbox{\hyperlink{classeo_rng}{eo\+Rng}} \&\+\_\+gen=rng)
\item 
\mbox{\Hypertarget{group___selectors_ga486540b0c17bfcb78d374d38b8b64efc}\label{group___selectors_ga486540b0c17bfcb78d374d38b8b64efc}} 
{\footnotesize template$<$class E\+OT $>$ }\\\mbox{\hyperlink{struct_dummy}{E\+OT}} \& {\bfseries stochastic\+\_\+tournament} (\mbox{\hyperlink{classeo_pop}{eo\+Pop}}$<$ \mbox{\hyperlink{struct_dummy}{E\+OT}} $>$ \&\+\_\+pop, double \+\_\+t\+\_\+rate, \mbox{\hyperlink{classeo_rng}{eo\+Rng}} \&\+\_\+gen=rng)
\item 
\mbox{\Hypertarget{group___selectors_gabe6b6a620f70ee36f27f9e4bae167330}\label{group___selectors_gabe6b6a620f70ee36f27f9e4bae167330}} 
{\footnotesize template$<$class It $>$ }\\It {\bfseries inverse\+\_\+stochastic\+\_\+tournament} (It \+\_\+begin, It \+\_\+end, double \+\_\+t\+\_\+rate, \mbox{\hyperlink{classeo_rng}{eo\+Rng}} \&\+\_\+gen=rng)
\item 
\mbox{\Hypertarget{group___selectors_ga69569cf4945361b4755806fe1ad1824f}\label{group___selectors_ga69569cf4945361b4755806fe1ad1824f}} 
{\footnotesize template$<$class E\+OT $>$ }\\const \mbox{\hyperlink{struct_dummy}{E\+OT}} \& {\bfseries inverse\+\_\+stochastic\+\_\+tournament} (const \mbox{\hyperlink{classeo_pop}{eo\+Pop}}$<$ \mbox{\hyperlink{struct_dummy}{E\+OT}} $>$ \&\+\_\+pop, double \+\_\+t\+\_\+rate, \mbox{\hyperlink{classeo_rng}{eo\+Rng}} \&\+\_\+gen=rng)
\item 
\mbox{\Hypertarget{group___selectors_ga0df5d4ad6973c31f4cf8ec844f486896}\label{group___selectors_ga0df5d4ad6973c31f4cf8ec844f486896}} 
{\footnotesize template$<$class E\+OT $>$ }\\\mbox{\hyperlink{struct_dummy}{E\+OT}} \& {\bfseries inverse\+\_\+stochastic\+\_\+tournament} (\mbox{\hyperlink{classeo_pop}{eo\+Pop}}$<$ \mbox{\hyperlink{struct_dummy}{E\+OT}} $>$ \&\+\_\+pop, double \+\_\+t\+\_\+rate, \mbox{\hyperlink{classeo_rng}{eo\+Rng}} \&\+\_\+gen=rng)
\item 
\mbox{\Hypertarget{group___selectors_gaa9170c9215db7fd849af6869cdc02f43}\label{group___selectors_gaa9170c9215db7fd849af6869cdc02f43}} 
{\footnotesize template$<$class E\+OT $>$ }\\bool \mbox{\hyperlink{group___selectors_gaa9170c9215db7fd849af6869cdc02f43}{minimizing\+\_\+fitness\+\_\+atomic}} ()
\begin{DoxyCompactList}\small\item\em Dynamically check if an E\+OT is minimizing. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group___selectors_ga5909359af83fec9efd8b122a934090d9}\label{group___selectors_ga5909359af83fec9efd8b122a934090d9}} 
{\footnotesize template$<$class E\+OT $>$ }\\bool \mbox{\hyperlink{group___selectors_ga5909359af83fec9efd8b122a934090d9}{minimizing\+\_\+fitness\+\_\+eo}} ()
\begin{DoxyCompactList}\small\item\em Statically check if an \mbox{\hyperlink{classeo_scalar_fitness}{eo\+Scalar\+Fitness}} is an eo\+Minimizing\+Fitness. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
Selectors are operators that select a subset of a population. 

Example\+: 
\begin{DoxyCodeInclude}{0}
\end{DoxyCodeInclude}
 

\doxysubsection{Function Documentation}
\mbox{\Hypertarget{group___selectors_ga8347829fdfecf3586ffc2cb8079932ac}\label{group___selectors_ga8347829fdfecf3586ffc2cb8079932ac}} 
\index{Selection operators@{Selection operators}!minimizing\_fitness@{minimizing\_fitness}}
\index{minimizing\_fitness@{minimizing\_fitness}!Selection operators@{Selection operators}}
\doxysubsubsection{\texorpdfstring{minimizing\_fitness()}{minimizing\_fitness()}}
{\footnotesize\ttfamily template$<$class E\+OT $>$ \\
bool minimizing\+\_\+fitness (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}

Return true if the E\+OT targets a minimization problem.

N\+O\+TE\+: if E\+OT has an atomic scalar fitness (e.\+g. double), it expects E\+OT to have an empty constructor. 