137 lines
10 KiB
TeX
137 lines
10 KiB
TeX
\hypertarget{classeo_eval_i_o_hsuite}{}\doxysection{eo\+Eval\+I\+O\+Hsuite$<$ E\+OT, S\+U\+B\+E\+OT, S\+T\+AT $>$ Class Template Reference}
|
|
\label{classeo_eval_i_o_hsuite}\index{eoEvalIOHsuite$<$ EOT, SUBEOT, STAT $>$@{eoEvalIOHsuite$<$ EOT, SUBEOT, STAT $>$}}
|
|
|
|
|
|
{\ttfamily \#include $<$eo\+Eval\+I\+O\+H.\+h$>$}
|
|
|
|
|
|
|
|
Inheritance diagram for eo\+Eval\+I\+O\+Hsuite$<$ E\+OT, S\+U\+B\+E\+OT, S\+T\+AT $>$\+:
|
|
\nopagebreak
|
|
\begin{figure}[H]
|
|
\begin{center}
|
|
\leavevmode
|
|
\includegraphics[width=298pt]{classeo_eval_i_o_hsuite__inherit__graph}
|
|
\end{center}
|
|
\end{figure}
|
|
|
|
|
|
Collaboration diagram for eo\+Eval\+I\+O\+Hsuite$<$ E\+OT, S\+U\+B\+E\+OT, S\+T\+AT $>$\+:
|
|
\nopagebreak
|
|
\begin{figure}[H]
|
|
\begin{center}
|
|
\leavevmode
|
|
\includegraphics[width=350pt]{classeo_eval_i_o_hsuite__coll__graph}
|
|
\end{center}
|
|
\end{figure}
|
|
\doxysubsection*{Public Types}
|
|
\begin{DoxyCompactItemize}
|
|
\item
|
|
\mbox{\Hypertarget{classeo_eval_i_o_hsuite_a1be5a3694b7da071aaf40513ace2130d}\label{classeo_eval_i_o_hsuite_a1be5a3694b7da071aaf40513ace2130d}}
|
|
using {\bfseries Fitness} = typename E\+O\+T\+::\+Fitness
|
|
\item
|
|
\mbox{\Hypertarget{classeo_eval_i_o_hsuite_a47c49b309b581c6cd349897748d86cc8}\label{classeo_eval_i_o_hsuite_a47c49b309b581c6cd349897748d86cc8}}
|
|
using {\bfseries Scalar\+Type} = typename Fitness\+::\+Scalar\+Type
|
|
\item
|
|
\mbox{\Hypertarget{classeo_eval_i_o_hsuite_a34919d04c85839e934443b12ab3ebe44}\label{classeo_eval_i_o_hsuite_a34919d04c85839e934443b12ab3ebe44}}
|
|
using {\bfseries Sub\+Atom\+Type} = typename S\+U\+B\+E\+O\+T\+::\+Atom\+Type
|
|
\end{DoxyCompactItemize}
|
|
\doxysubsection*{Public Member Functions}
|
|
\begin{DoxyCompactItemize}
|
|
\item
|
|
\mbox{\hyperlink{classeo_eval_i_o_hsuite_ae025865e85f57f99f26736e8e871a7c6}{eo\+Eval\+I\+O\+Hsuite}} (\mbox{\hyperlink{classeo_eval_i_o_hproblem}{eo\+Eval\+I\+O\+Hproblem}}$<$ S\+U\+B\+E\+OT $>$ \&eval, \mbox{\hyperlink{classeo_algo_foundry}{eo\+Algo\+Foundry}}$<$ S\+U\+B\+E\+OT $>$ \&foundry, \mbox{\hyperlink{classeo_pop}{eo\+Pop}}$<$ S\+U\+B\+E\+OT $>$ \&pop, \mbox{\hyperlink{classeo_i_o_h_setup}{eo\+I\+O\+H\+Setup}}$<$ S\+U\+B\+E\+OT $>$ \&setup, I\+O\+Hprofiler\+\_\+suite$<$ Sub\+Atom\+Type $>$ \&\mbox{\hyperlink{classeo_eval_i_o_hsuite_adc459f579863644dea791b9013241ba7}{suite}}, I\+O\+Hprofiler\+\_\+ecdf\+\_\+logger$<$ Sub\+Atom\+Type $>$ \&log, I\+O\+Hprofiler\+\_\+ecdf\+\_\+stat$<$ S\+T\+AT $>$ \&stat)
|
|
\item
|
|
\mbox{\Hypertarget{classeo_eval_i_o_hsuite_ac427f0be8d654f01d175cf883453b6b6}\label{classeo_eval_i_o_hsuite_ac427f0be8d654f01d175cf883453b6b6}}
|
|
virtual void \mbox{\hyperlink{classeo_eval_i_o_hsuite_ac427f0be8d654f01d175cf883453b6b6}{operator()}} (\mbox{\hyperlink{struct_dummy}{E\+OT}} \&sol)
|
|
\begin{DoxyCompactList}\small\item\em The pure virtual function that needs to be implemented by the subclass. \end{DoxyCompactList}\item
|
|
void \mbox{\hyperlink{classeo_eval_i_o_hsuite_adc459f579863644dea791b9013241ba7}{suite}} (I\+O\+Hprofiler\+\_\+suite$<$ Sub\+Atom\+Type $>$ \&suite)
|
|
\end{DoxyCompactItemize}
|
|
\doxysubsection*{Protected Member Functions}
|
|
\begin{DoxyCompactItemize}
|
|
\item
|
|
\mbox{\Hypertarget{classeo_eval_i_o_hsuite_a2a55804ffe9b96e4e571f6ce1a17fd05}\label{classeo_eval_i_o_hsuite_a2a55804ffe9b96e4e571f6ce1a17fd05}}
|
|
virtual Fitness {\bfseries call} (\mbox{\hyperlink{struct_dummy}{E\+OT}} \&sol)
|
|
\end{DoxyCompactItemize}
|
|
\doxysubsection*{Protected Attributes}
|
|
\begin{DoxyCompactItemize}
|
|
\item
|
|
\mbox{\Hypertarget{classeo_eval_i_o_hsuite_ad10b67bcf2bec8c5cce6688a0822a1a1}\label{classeo_eval_i_o_hsuite_ad10b67bcf2bec8c5cce6688a0822a1a1}}
|
|
\mbox{\hyperlink{classeo_eval_i_o_hproblem}{eo\+Eval\+I\+O\+Hproblem}}$<$ S\+U\+B\+E\+OT $>$ \& {\bfseries \+\_\+eval}
|
|
\item
|
|
\mbox{\Hypertarget{classeo_eval_i_o_hsuite_a25bc305baa5423e7c531a0cf844cdfc1}\label{classeo_eval_i_o_hsuite_a25bc305baa5423e7c531a0cf844cdfc1}}
|
|
\mbox{\hyperlink{classeo_algo_foundry}{eo\+Algo\+Foundry}}$<$ S\+U\+B\+E\+OT $>$ \& {\bfseries \+\_\+foundry}
|
|
\item
|
|
\mbox{\Hypertarget{classeo_eval_i_o_hsuite_a29df4d1ac4b9143283380c1e822f9b45}\label{classeo_eval_i_o_hsuite_a29df4d1ac4b9143283380c1e822f9b45}}
|
|
\mbox{\hyperlink{classeo_pop}{eo\+Pop}}$<$ S\+U\+B\+E\+OT $>$ \& {\bfseries \+\_\+pop}
|
|
\item
|
|
\mbox{\Hypertarget{classeo_eval_i_o_hsuite_abe88c78df694e94309a74c9836f0d6ca}\label{classeo_eval_i_o_hsuite_abe88c78df694e94309a74c9836f0d6ca}}
|
|
\mbox{\hyperlink{classeo_i_o_h_setup}{eo\+I\+O\+H\+Setup}}$<$ S\+U\+B\+E\+OT $>$ \& {\bfseries \+\_\+setup}
|
|
\item
|
|
\mbox{\Hypertarget{classeo_eval_i_o_hsuite_acd4adf15919cc671f5dcf3fe9a0aa23c}\label{classeo_eval_i_o_hsuite_acd4adf15919cc671f5dcf3fe9a0aa23c}}
|
|
I\+O\+Hprofiler\+\_\+suite$<$ Sub\+Atom\+Type $>$ $\ast$ {\bfseries \+\_\+ioh\+\_\+suite}
|
|
\item
|
|
\mbox{\Hypertarget{classeo_eval_i_o_hsuite_a9fca67cf0b0cf018385fb3ac3cefc190}\label{classeo_eval_i_o_hsuite_a9fca67cf0b0cf018385fb3ac3cefc190}}
|
|
I\+O\+Hprofiler\+\_\+ecdf\+\_\+logger$<$ Sub\+Atom\+Type $>$ \& {\bfseries \+\_\+ioh\+\_\+log}
|
|
\item
|
|
\mbox{\Hypertarget{classeo_eval_i_o_hsuite_a6d2304eee9d8c09aa1de60103fbfe3d3}\label{classeo_eval_i_o_hsuite_a6d2304eee9d8c09aa1de60103fbfe3d3}}
|
|
I\+O\+Hprofiler\+\_\+ecdf\+\_\+stat$<$ S\+T\+AT $>$ \& {\bfseries \+\_\+ioh\+\_\+stat}
|
|
\end{DoxyCompactItemize}
|
|
\doxysubsection*{Additional Inherited Members}
|
|
|
|
|
|
\doxysubsection{Detailed Description}
|
|
\subsubsection*{template$<$class E\+OT, class S\+U\+B\+E\+OT, class S\+T\+AT$>$\newline
|
|
class eo\+Eval\+I\+O\+Hsuite$<$ E\+O\+T, S\+U\+B\+E\+O\+T, S\+T\+A\+T $>$}
|
|
|
|
Wrap an I\+O\+Hexperimenter\textquotesingle{}s suite class within an \mbox{\hyperlink{classeo_eval_func}{eo\+Eval\+Func}}. Useful for algorithm selection.
|
|
|
|
The idea is to run the given algorithm on a whole suite of problems and output its aggregated performance.
|
|
|
|
See \href{https://github.com/IOHprofiler/IOHexperimenter}{\texttt{ https\+://github.\+com/\+I\+O\+Hprofiler/\+I\+O\+Hexperimenter}}
|
|
|
|
The main template E\+OT defines the interface of this functor, that is how the algorithm instance is encoded (e.\+g. an \mbox{\hyperlink{classeo_algo_foundry}{eo\+Algo\+Foundry}}\textquotesingle{}s integer vector). The S\+U\+B\+E\+OT template defines the encoding of the sub-\/problem, which the encoded algorithm have to solve (e.\+g. a One\+Max problem).
|
|
|
|
\begin{DoxyNote}{Note}
|
|
\+: This will not reset the given pop between two calls of the given algorithm on new problems. You most probably want to wrap your algorithm in an \mbox{\hyperlink{classeo_algo_restart}{eo\+Algo\+Restart}} to do that for you.
|
|
\end{DoxyNote}
|
|
Handle only I\+O\+Hprofiler {\ttfamily stat} classes which template type S\+T\+AT is explicitely convertible to the given fitness. Any scalar is most probably already convertible, but compound classes (i.\+e. for multi-\/objective problems) are most probàbly not.
|
|
|
|
\begin{DoxyNote}{Note}
|
|
\+: You\textquotesingle{}re responsible of adding a conversion operator to the given S\+T\+AT type, if necessary (this is checked by a static assert in the constructor).
|
|
|
|
\+: You\textquotesingle{}re also responsible of matching the fitness\textquotesingle{} encoding scalar type (I\+OH handle double and int, as of 2020-\/03-\/09).
|
|
\end{DoxyNote}
|
|
You will need to pass the I\+OH include directory to your compiler (e.\+g. I\+O\+Hexperimenter/build/\+Cpp/src/).
|
|
|
|
\doxysubsection{Constructor \& Destructor Documentation}
|
|
\mbox{\Hypertarget{classeo_eval_i_o_hsuite_ae025865e85f57f99f26736e8e871a7c6}\label{classeo_eval_i_o_hsuite_ae025865e85f57f99f26736e8e871a7c6}}
|
|
\index{eoEvalIOHsuite$<$ EOT, SUBEOT, STAT $>$@{eoEvalIOHsuite$<$ EOT, SUBEOT, STAT $>$}!eoEvalIOHsuite@{eoEvalIOHsuite}}
|
|
\index{eoEvalIOHsuite@{eoEvalIOHsuite}!eoEvalIOHsuite$<$ EOT, SUBEOT, STAT $>$@{eoEvalIOHsuite$<$ EOT, SUBEOT, STAT $>$}}
|
|
\doxysubsubsection{\texorpdfstring{eoEvalIOHsuite()}{eoEvalIOHsuite()}}
|
|
{\footnotesize\ttfamily template$<$class E\+OT , class S\+U\+B\+E\+OT , class S\+T\+AT $>$ \\
|
|
\mbox{\hyperlink{classeo_eval_i_o_hsuite}{eo\+Eval\+I\+O\+Hsuite}}$<$ \mbox{\hyperlink{struct_dummy}{E\+OT}}, S\+U\+B\+E\+OT, S\+T\+AT $>$\+::\mbox{\hyperlink{classeo_eval_i_o_hsuite}{eo\+Eval\+I\+O\+Hsuite}} (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classeo_eval_i_o_hproblem}{eo\+Eval\+I\+O\+Hproblem}}$<$ S\+U\+B\+E\+OT $>$ \&}]{eval, }\item[{\mbox{\hyperlink{classeo_algo_foundry}{eo\+Algo\+Foundry}}$<$ S\+U\+B\+E\+OT $>$ \&}]{foundry, }\item[{\mbox{\hyperlink{classeo_pop}{eo\+Pop}}$<$ S\+U\+B\+E\+OT $>$ \&}]{pop, }\item[{\mbox{\hyperlink{classeo_i_o_h_setup}{eo\+I\+O\+H\+Setup}}$<$ S\+U\+B\+E\+OT $>$ \&}]{setup, }\item[{I\+O\+Hprofiler\+\_\+suite$<$ Sub\+Atom\+Type $>$ \&}]{suite, }\item[{I\+O\+Hprofiler\+\_\+ecdf\+\_\+logger$<$ Sub\+Atom\+Type $>$ \&}]{log, }\item[{I\+O\+Hprofiler\+\_\+ecdf\+\_\+stat$<$ S\+T\+AT $>$ \&}]{stat }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
|
|
|
|
Takes an ecdf\+\_\+logger that computes the base data structure on which a ecdf\+\_\+stat will be called to compute an aggregated performance measure, which will be the evaluated fitness.
|
|
|
|
As such, the logger and the stat are mandatory.
|
|
|
|
\begin{DoxyNote}{Note}
|
|
\+: The given logger should be at least embedded in the logger thas is bound with the given eval.
|
|
\end{DoxyNote}
|
|
|
|
|
|
\doxysubsection{Member Function Documentation}
|
|
\mbox{\Hypertarget{classeo_eval_i_o_hsuite_adc459f579863644dea791b9013241ba7}\label{classeo_eval_i_o_hsuite_adc459f579863644dea791b9013241ba7}}
|
|
\index{eoEvalIOHsuite$<$ EOT, SUBEOT, STAT $>$@{eoEvalIOHsuite$<$ EOT, SUBEOT, STAT $>$}!suite@{suite}}
|
|
\index{suite@{suite}!eoEvalIOHsuite$<$ EOT, SUBEOT, STAT $>$@{eoEvalIOHsuite$<$ EOT, SUBEOT, STAT $>$}}
|
|
\doxysubsubsection{\texorpdfstring{suite()}{suite()}}
|
|
{\footnotesize\ttfamily template$<$class E\+OT , class S\+U\+B\+E\+OT , class S\+T\+AT $>$ \\
|
|
void \mbox{\hyperlink{classeo_eval_i_o_hsuite}{eo\+Eval\+I\+O\+Hsuite}}$<$ \mbox{\hyperlink{struct_dummy}{E\+OT}}, S\+U\+B\+E\+OT, S\+T\+AT $>$\+::suite (\begin{DoxyParamCaption}\item[{I\+O\+Hprofiler\+\_\+suite$<$ Sub\+Atom\+Type $>$ \&}]{suite }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
|
|
|
|
Update the suite pointer for a new one.
|
|
|
|
This is useful if you assembled a Paradis\+EO algorithm and call it several time in an I\+O\+Hexperimenter\textquotesingle{}s loop across several suites. Instead of re-\/assembling your algorithm, just update the suite pointer.
|
|
|
|
The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
|
|
\item
|
|
problems/eval/eo\+Eval\+I\+O\+H.\+h\end{DoxyCompactItemize}
|