161 lines
No EOL
15 KiB
TeX
161 lines
No EOL
15 KiB
TeX
\hypertarget{group___evaluation}{}\doxysection{Evaluation}
|
|
\label{group___evaluation}\index{Evaluation@{Evaluation}}
|
|
Collaboration diagram for Evaluation\+:
|
|
\nopagebreak
|
|
\begin{figure}[H]
|
|
\begin{center}
|
|
\leavevmode
|
|
\includegraphics[width=350pt]{group___evaluation}
|
|
\end{center}
|
|
\end{figure}
|
|
\doxysubsection*{Classes}
|
|
\begin{DoxyCompactItemize}
|
|
\item
|
|
class \mbox{\hyperlink{classeo_dual_fitness}{eo\+Dual\+Fitness$<$ Base\+Type, Compare $>$}}
|
|
\begin{DoxyCompactList}\small\item\em A fitness class that permits to compare feasible and unfeasible individuals and guaranties that a feasible individual will always be better than an unfeasible one. \end{DoxyCompactList}\item
|
|
class \mbox{\hyperlink{classeo_dual_stat_switch}{eo\+Dual\+Stat\+Switch$<$ E\+O\+T, E\+O\+S\+T\+A\+T $>$}}
|
|
\item
|
|
class \mbox{\hyperlink{classeo_eval_counter_throw_exception}{eo\+Eval\+Counter\+Throw\+Exception$<$ E\+O\+T $>$}}
|
|
\item
|
|
class \mbox{\hyperlink{classeo_eval_func}{eo\+Eval\+Func$<$ E\+O\+T $>$}}
|
|
\item
|
|
class \mbox{\hyperlink{classeo_eval_func_counter}{eo\+Eval\+Func\+Counter$<$ E\+O\+T $>$}}
|
|
\item
|
|
class \mbox{\hyperlink{classeo_eval_func_counter_bounder_exception}{eo\+Eval\+Func\+Counter\+Bounder\+Exception}}
|
|
\item
|
|
class \mbox{\hyperlink{classeo_eval_func_counter_bounder}{eo\+Eval\+Func\+Counter\+Bounder$<$ E\+O\+T $>$}}
|
|
\item
|
|
struct \mbox{\hyperlink{structeo_eval_func_ptr}{eo\+Eval\+Func\+Ptr$<$ E\+O\+T, Fit\+T, Function\+Arg $>$}}
|
|
\item
|
|
class \mbox{\hyperlink{classeo_eval_time_throw_exception}{eo\+Eval\+Time\+Throw\+Exception$<$ E\+O\+T $>$}}
|
|
\item
|
|
class \mbox{\hyperlink{classeo_max_time_exception}{eo\+Max\+Time\+Exception}}
|
|
\item
|
|
class \mbox{\hyperlink{classeo_max_eval_exception}{eo\+Max\+Eval\+Exception}}
|
|
\item
|
|
class \mbox{\hyperlink{classeo_pop_eval_func}{eo\+Pop\+Eval\+Func$<$ E\+O\+T $>$}}
|
|
\item
|
|
class \mbox{\hyperlink{classeo_pop_loop_eval}{eo\+Pop\+Loop\+Eval$<$ E\+O\+T $>$}}
|
|
\item
|
|
class \mbox{\hyperlink{classeo_time_varying_loop_eval}{eo\+Time\+Varying\+Loop\+Eval$<$ E\+O\+T $>$}}
|
|
\item
|
|
class \mbox{\hyperlink{classeo_scalar_fitness}{eo\+Scalar\+Fitness$<$ Scalar\+Type, Compare $>$}}
|
|
\item
|
|
class \mbox{\hyperlink{classeo_scalar_fitness_assembled_traits}{eo\+Scalar\+Fitness\+Assembled\+Traits}}
|
|
\begin{DoxyCompactList}\small\item\em Defines properties of \mbox{\hyperlink{classeo_scalar_fitness_assembled}{eo\+Scalar\+Fitness\+Assembled}}. \end{DoxyCompactList}\item
|
|
class \mbox{\hyperlink{classeo_scalar_fitness_assembled}{eo\+Scalar\+Fitness\+Assembled$<$ Scalar\+Type, Compare, Fitness\+Traits $>$}}
|
|
\begin{DoxyCompactList}\small\item\em Implements fitness as std\+::vector, storing all values that might occur during fitness assembly. \end{DoxyCompactList}\item
|
|
class \mbox{\hyperlink{classeo_dual_pop_split}{eo\+Dual\+Pop\+Split$<$ E\+O\+T $>$}}
|
|
\item
|
|
class \mbox{\hyperlink{classeo_eval_keep_best}{eo\+Eval\+Keep\+Best$<$ E\+O\+T $>$}}
|
|
\item
|
|
class \mbox{\hyperlink{classeo_eval_named_pipe}{eo\+Eval\+Named\+Pipe$<$ E\+O\+T $>$}}
|
|
\item
|
|
class \mbox{\hyperlink{classeo_eval_nan_throw_exception}{eo\+Eval\+Nan\+Throw\+Exception$<$ E\+O\+T $>$}}
|
|
\item
|
|
class \mbox{\hyperlink{classeo_nan_exception}{eo\+Nan\+Exception}}
|
|
\end{DoxyCompactItemize}
|
|
\doxysubsection*{Typedefs}
|
|
\begin{DoxyCompactItemize}
|
|
\item
|
|
\mbox{\Hypertarget{group___evaluation_ga7525b6c499f6c534cccdbf3a69ab5b98}\label{group___evaluation_ga7525b6c499f6c534cccdbf3a69ab5b98}}
|
|
typedef \mbox{\hyperlink{classeo_dual_fitness}{eo\+Dual\+Fitness}}$<$ double, std\+::less$<$ double $>$ $>$ \mbox{\hyperlink{group___evaluation_ga7525b6c499f6c534cccdbf3a69ab5b98}{eo\+Maximizing\+Dual\+Fitness}}
|
|
\begin{DoxyCompactList}\small\item\em Compare dual fitnesses as if we were maximizing. \end{DoxyCompactList}\item
|
|
\mbox{\Hypertarget{group___evaluation_gadbf8c40d1536be104d80e1f311714ed1}\label{group___evaluation_gadbf8c40d1536be104d80e1f311714ed1}}
|
|
typedef \mbox{\hyperlink{classeo_dual_fitness}{eo\+Dual\+Fitness}}$<$ double, std\+::greater$<$ double $>$ $>$ \mbox{\hyperlink{group___evaluation_gadbf8c40d1536be104d80e1f311714ed1}{eo\+Minimizing\+Dual\+Fitness}}
|
|
\begin{DoxyCompactList}\small\item\em Compare dual fitnesses as if we were minimizing. \end{DoxyCompactList}\item
|
|
typedef \mbox{\hyperlink{classeo_scalar_fitness}{eo\+Scalar\+Fitness}}$<$ double, std\+::less$<$ double $>$ $>$ \mbox{\hyperlink{group___evaluation_ga02f1400f33e982a44b9635bc5ba1c005}{eo\+Maximizing\+Fitness}}
|
|
\item
|
|
\mbox{\Hypertarget{group___evaluation_gab71af05a8f933ea2836abc8fcf04d529}\label{group___evaluation_gab71af05a8f933ea2836abc8fcf04d529}}
|
|
typedef \mbox{\hyperlink{classeo_scalar_fitness}{eo\+Scalar\+Fitness}}$<$ double, std\+::greater$<$ double $>$ $>$ {\bfseries eo\+Minimizing\+Fitness}
|
|
\item
|
|
typedef \mbox{\hyperlink{classeo_scalar_fitness_assembled}{eo\+Scalar\+Fitness\+Assembled}}$<$ double, std\+::less$<$ double $>$, \mbox{\hyperlink{classeo_scalar_fitness_assembled_traits}{eo\+Scalar\+Fitness\+Assembled\+Traits}} $>$ \mbox{\hyperlink{group___evaluation_gabeddeb4ae97c24b7cc69e5bd8b44f4b9}{eo\+Assembled\+Maximizing\+Fitness}}
|
|
\item
|
|
\mbox{\Hypertarget{group___evaluation_gad9f6674902eef509cb36a706dc62d0f5}\label{group___evaluation_gad9f6674902eef509cb36a706dc62d0f5}}
|
|
typedef \mbox{\hyperlink{classeo_scalar_fitness_assembled}{eo\+Scalar\+Fitness\+Assembled}}$<$ double, std\+::greater$<$ double $>$, \mbox{\hyperlink{classeo_scalar_fitness_assembled_traits}{eo\+Scalar\+Fitness\+Assembled\+Traits}} $>$ {\bfseries eo\+Assembled\+Minimizing\+Fitness}
|
|
\item
|
|
\mbox{\Hypertarget{group___evaluation_ga7525b6c499f6c534cccdbf3a69ab5b98}\label{group___evaluation_ga7525b6c499f6c534cccdbf3a69ab5b98}}
|
|
typedef \mbox{\hyperlink{classeo_dual_fitness}{eo\+Dual\+Fitness}}$<$ double, std\+::less$<$ double $>$ $>$ \mbox{\hyperlink{group___evaluation_ga7525b6c499f6c534cccdbf3a69ab5b98}{eo\+Maximizing\+Dual\+Fitness}}
|
|
\begin{DoxyCompactList}\small\item\em Compare dual fitnesses as if we were maximizing. \end{DoxyCompactList}\item
|
|
\mbox{\Hypertarget{group___evaluation_gadbf8c40d1536be104d80e1f311714ed1}\label{group___evaluation_gadbf8c40d1536be104d80e1f311714ed1}}
|
|
typedef \mbox{\hyperlink{classeo_dual_fitness}{eo\+Dual\+Fitness}}$<$ double, std\+::greater$<$ double $>$ $>$ \mbox{\hyperlink{group___evaluation_gadbf8c40d1536be104d80e1f311714ed1}{eo\+Minimizing\+Dual\+Fitness}}
|
|
\begin{DoxyCompactList}\small\item\em Compare dual fitnesses as if we were minimizing. \end{DoxyCompactList}\item
|
|
{\footnotesize template$<$class T = double$>$ }\\using \mbox{\hyperlink{group___evaluation_ga84bd5e3eecd27e81ed6ae7a0dad1ae73}{eo\+Maximizing\+FitnessT}} = \mbox{\hyperlink{classeo_scalar_fitness}{eo\+Scalar\+Fitness}}$<$ T, std\+::less$<$ T $>$ $>$
|
|
\item
|
|
\mbox{\Hypertarget{group___evaluation_ga35ea587da9a261eddb20f6b9b2771809}\label{group___evaluation_ga35ea587da9a261eddb20f6b9b2771809}}
|
|
{\footnotesize template$<$class T = double$>$ }\\using {\bfseries eo\+Minimizing\+FitnessT} = \mbox{\hyperlink{classeo_scalar_fitness}{eo\+Scalar\+Fitness}}$<$ T, std\+::greater$<$ T $>$ $>$
|
|
\item
|
|
\mbox{\Hypertarget{group___evaluation_ga2498338d9f08b4b586773dfb1b1be23d}\label{group___evaluation_ga2498338d9f08b4b586773dfb1b1be23d}}
|
|
using {\bfseries eo\+Maximizing\+Fitness} = \mbox{\hyperlink{group___evaluation_ga84bd5e3eecd27e81ed6ae7a0dad1ae73}{eo\+Maximizing\+FitnessT}}$<$ double $>$
|
|
\item
|
|
\mbox{\Hypertarget{group___evaluation_ga623c5af795cdb89235b3951b3cb7d8eb}\label{group___evaluation_ga623c5af795cdb89235b3951b3cb7d8eb}}
|
|
using {\bfseries eo\+Minimizing\+Fitness} = \mbox{\hyperlink{classeo_scalar_fitness}{eo\+Minimizing\+FitnessT}}$<$ double $>$
|
|
\item
|
|
typedef \mbox{\hyperlink{classeo_scalar_fitness_assembled}{eo\+Scalar\+Fitness\+Assembled}}$<$ double, std\+::less$<$ double $>$, \mbox{\hyperlink{classeo_scalar_fitness_assembled_traits}{eo\+Scalar\+Fitness\+Assembled\+Traits}} $>$ \mbox{\hyperlink{group___evaluation_gabeddeb4ae97c24b7cc69e5bd8b44f4b9}{eo\+Assembled\+Maximizing\+Fitness}}
|
|
\item
|
|
\mbox{\Hypertarget{group___evaluation_gad9f6674902eef509cb36a706dc62d0f5}\label{group___evaluation_gad9f6674902eef509cb36a706dc62d0f5}}
|
|
typedef \mbox{\hyperlink{classeo_scalar_fitness_assembled}{eo\+Scalar\+Fitness\+Assembled}}$<$ double, std\+::greater$<$ double $>$, \mbox{\hyperlink{classeo_scalar_fitness_assembled_traits}{eo\+Scalar\+Fitness\+Assembled\+Traits}} $>$ {\bfseries eo\+Assembled\+Minimizing\+Fitness}
|
|
\end{DoxyCompactItemize}
|
|
\doxysubsection*{Functions}
|
|
\begin{DoxyCompactItemize}
|
|
\item
|
|
{\footnotesize template$<$class E\+OT $>$ }\\bool \mbox{\hyperlink{group___evaluation_ga11a9b0146c9675c81a62154b72b501ed}{eo\+Is\+Feasible}} (const \mbox{\hyperlink{struct_dummy}{E\+OT}} \&sol)
|
|
\begin{DoxyCompactList}\small\item\em A predicate that returns the feasibility of a given dual fitness. \end{DoxyCompactList}\item
|
|
\mbox{\Hypertarget{group___evaluation_gae6668230f17740819a564306e33167c8}\label{group___evaluation_gae6668230f17740819a564306e33167c8}}
|
|
{\footnotesize template$<$class F , class Cmp $>$ }\\std\+::ostream \& {\bfseries operator$<$$<$} (std\+::ostream \&os, const \mbox{\hyperlink{classeo_scalar_fitness}{eo\+Scalar\+Fitness}}$<$ F, Cmp $>$ \&f)
|
|
\item
|
|
\mbox{\Hypertarget{group___evaluation_ga929a4eeff005e4a3cf13134279a99337}\label{group___evaluation_ga929a4eeff005e4a3cf13134279a99337}}
|
|
{\footnotesize template$<$class F , class Cmp $>$ }\\std\+::istream \& {\bfseries operator$>$$>$} (std\+::istream \&is, \mbox{\hyperlink{classeo_scalar_fitness}{eo\+Scalar\+Fitness}}$<$ F, Cmp $>$ \&f)
|
|
\item
|
|
\mbox{\Hypertarget{group___evaluation_ga9fcb3cac191775ff3fab31fa1b0d98ec}\label{group___evaluation_ga9fcb3cac191775ff3fab31fa1b0d98ec}}
|
|
{\footnotesize template$<$class F , class Cmp , class Fitness\+Traits $>$ }\\std\+::ostream \& {\bfseries operator$<$$<$} (std\+::ostream \&os, const \mbox{\hyperlink{classeo_scalar_fitness_assembled}{eo\+Scalar\+Fitness\+Assembled}}$<$ F, Cmp, Fitness\+Traits $>$ \&f)
|
|
\item
|
|
\mbox{\Hypertarget{group___evaluation_gad42a87cde6d71cc31ae858369d792db1}\label{group___evaluation_gad42a87cde6d71cc31ae858369d792db1}}
|
|
{\footnotesize template$<$class F , class Cmp , class Fitness\+Traits $>$ }\\std\+::istream \& {\bfseries operator$>$$>$} (std\+::istream \&is, \mbox{\hyperlink{classeo_scalar_fitness_assembled}{eo\+Scalar\+Fitness\+Assembled}}$<$ F, Cmp, Fitness\+Traits $>$ \&f)
|
|
\end{DoxyCompactItemize}
|
|
|
|
|
|
\doxysubsection{Detailed Description}
|
|
|
|
|
|
\doxysubsection{Typedef Documentation}
|
|
\mbox{\Hypertarget{group___evaluation_gabeddeb4ae97c24b7cc69e5bd8b44f4b9}\label{group___evaluation_gabeddeb4ae97c24b7cc69e5bd8b44f4b9}}
|
|
\index{Evaluation@{Evaluation}!eoAssembledMaximizingFitness@{eoAssembledMaximizingFitness}}
|
|
\index{eoAssembledMaximizingFitness@{eoAssembledMaximizingFitness}!Evaluation@{Evaluation}}
|
|
\doxysubsubsection{\texorpdfstring{eoAssembledMaximizingFitness}{eoAssembledMaximizingFitness}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
|
|
{\footnotesize\ttfamily typedef \mbox{\hyperlink{classeo_scalar_fitness_assembled}{eo\+Scalar\+Fitness\+Assembled}}$<$double, std\+::less$<$double$>$, \mbox{\hyperlink{classeo_scalar_fitness_assembled_traits}{eo\+Scalar\+Fitness\+Assembled\+Traits}} $>$ \mbox{\hyperlink{group___evaluation_gabeddeb4ae97c24b7cc69e5bd8b44f4b9}{eo\+Assembled\+Maximizing\+Fitness}}}
|
|
|
|
Typedefs for fitness comparison, Maximizing Fitness compares with less, and minimizing fitness compares with greater. This because we want ordinary fitness values (doubles) to be equivalent with Maximizing Fitness, and comparing with less is the default behaviour. \mbox{\Hypertarget{group___evaluation_gabeddeb4ae97c24b7cc69e5bd8b44f4b9}\label{group___evaluation_gabeddeb4ae97c24b7cc69e5bd8b44f4b9}}
|
|
\index{Evaluation@{Evaluation}!eoAssembledMaximizingFitness@{eoAssembledMaximizingFitness}}
|
|
\index{eoAssembledMaximizingFitness@{eoAssembledMaximizingFitness}!Evaluation@{Evaluation}}
|
|
\doxysubsubsection{\texorpdfstring{eoAssembledMaximizingFitness}{eoAssembledMaximizingFitness}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
|
|
{\footnotesize\ttfamily typedef \mbox{\hyperlink{classeo_scalar_fitness_assembled}{eo\+Scalar\+Fitness\+Assembled}}$<$double, std\+::less$<$double$>$, \mbox{\hyperlink{classeo_scalar_fitness_assembled_traits}{eo\+Scalar\+Fitness\+Assembled\+Traits}} $>$ \mbox{\hyperlink{group___evaluation_gabeddeb4ae97c24b7cc69e5bd8b44f4b9}{eo\+Assembled\+Maximizing\+Fitness}}}
|
|
|
|
Typedefs for fitness comparison, Maximizing Fitness compares with less, and minimizing fitness compares with greater. This because we want ordinary fitness values (doubles) to be equivalent with Maximizing Fitness, and comparing with less is the default behaviour. \mbox{\Hypertarget{group___evaluation_ga02f1400f33e982a44b9635bc5ba1c005}\label{group___evaluation_ga02f1400f33e982a44b9635bc5ba1c005}}
|
|
\index{Evaluation@{Evaluation}!eoMaximizingFitness@{eoMaximizingFitness}}
|
|
\index{eoMaximizingFitness@{eoMaximizingFitness}!Evaluation@{Evaluation}}
|
|
\doxysubsubsection{\texorpdfstring{eoMaximizingFitness}{eoMaximizingFitness}}
|
|
{\footnotesize\ttfamily typedef \mbox{\hyperlink{classeo_scalar_fitness}{eo\+Scalar\+Fitness}}$<$double, std\+::less$<$double$>$ $>$ \mbox{\hyperlink{group___evaluation_ga02f1400f33e982a44b9635bc5ba1c005}{eo\+Maximizing\+Fitness}}}
|
|
|
|
Typedefs for fitness comparison, Maximizing Fitness compares with less, and minimizing fitness compares with greater. This because we want ordinary fitness values (doubles) to be equivalent with Maximizing Fitness, and comparing with less is the default behaviour. \mbox{\Hypertarget{group___evaluation_ga84bd5e3eecd27e81ed6ae7a0dad1ae73}\label{group___evaluation_ga84bd5e3eecd27e81ed6ae7a0dad1ae73}}
|
|
\index{Evaluation@{Evaluation}!eoMaximizingFitnessT@{eoMaximizingFitnessT}}
|
|
\index{eoMaximizingFitnessT@{eoMaximizingFitnessT}!Evaluation@{Evaluation}}
|
|
\doxysubsubsection{\texorpdfstring{eoMaximizingFitnessT}{eoMaximizingFitnessT}}
|
|
{\footnotesize\ttfamily template$<$class T = double$>$ \\
|
|
using \mbox{\hyperlink{group___evaluation_ga84bd5e3eecd27e81ed6ae7a0dad1ae73}{eo\+Maximizing\+FitnessT}} = \mbox{\hyperlink{classeo_scalar_fitness}{eo\+Scalar\+Fitness}}$<$T, std\+::less$<$T$>$ $>$}
|
|
|
|
Typedefs for fitness comparison, Maximizing Fitness compares with less, and minimizing fitness compares with greater. This because we want ordinary fitness values (doubles) to be equivalent with Maximizing Fitness, and comparing with less is the default behaviour.
|
|
|
|
\doxysubsection{Function Documentation}
|
|
\mbox{\Hypertarget{group___evaluation_ga11a9b0146c9675c81a62154b72b501ed}\label{group___evaluation_ga11a9b0146c9675c81a62154b72b501ed}}
|
|
\index{Evaluation@{Evaluation}!eoIsFeasible@{eoIsFeasible}}
|
|
\index{eoIsFeasible@{eoIsFeasible}!Evaluation@{Evaluation}}
|
|
\doxysubsubsection{\texorpdfstring{eoIsFeasible()}{eoIsFeasible()}}
|
|
{\footnotesize\ttfamily template$<$class E\+OT $>$ \\
|
|
bool eo\+Is\+Feasible (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{struct_dummy}{E\+OT}} \&}]{sol }\end{DoxyParamCaption})}
|
|
|
|
|
|
|
|
A predicate that returns the feasibility of a given dual fitness.
|
|
|
|
Use this in S\+TL algorithm that use binary predicates (e.\+g. count\+\_\+if, find\+\_\+if, etc.) |