\hypertarget{classeo_constricted_variable_weight_velocity}{}\doxysection{eo\+Constricted\+Variable\+Weight\+Velocity$<$ P\+OT $>$ Class Template Reference}
\label{classeo_constricted_variable_weight_velocity}\index{eoConstrictedVariableWeightVelocity$<$ POT $>$@{eoConstrictedVariableWeightVelocity$<$ POT $>$}}


{\ttfamily \#include $<$eo\+Constricted\+Variable\+Weight\+Velocity.\+h$>$}



Inheritance diagram for eo\+Constricted\+Variable\+Weight\+Velocity$<$ P\+OT $>$\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=334pt]{classeo_constricted_variable_weight_velocity__inherit__graph}
\end{center}
\end{figure}


Collaboration diagram for eo\+Constricted\+Variable\+Weight\+Velocity$<$ P\+OT $>$\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classeo_constricted_variable_weight_velocity__coll__graph}
\end{center}
\end{figure}
\doxysubsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classeo_constricted_variable_weight_velocity_ab4e3d17c01f96f33a328f5748675fb2b}\label{classeo_constricted_variable_weight_velocity_ab4e3d17c01f96f33a328f5748675fb2b}} 
typedef P\+O\+T\+::\+Particle\+Velocity\+Type {\bfseries Velocity\+Type}
\item 
\mbox{\Hypertarget{classeo_constricted_variable_weight_velocity_ab4e3d17c01f96f33a328f5748675fb2b}\label{classeo_constricted_variable_weight_velocity_ab4e3d17c01f96f33a328f5748675fb2b}} 
typedef P\+O\+T\+::\+Particle\+Velocity\+Type {\bfseries Velocity\+Type}
\end{DoxyCompactItemize}
\doxysubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{classeo_constricted_variable_weight_velocity_a9d62a80a2608da618dbe3b6ed64df87c}{eo\+Constricted\+Variable\+Weight\+Velocity}} (\mbox{\hyperlink{classeo_topology}{eo\+Topology}}$<$ P\+OT $>$ \&\+\_\+topology, const Velocity\+Type \&\+\_\+coeff, \mbox{\hyperlink{classeo_weight_updater}{eo\+Weight\+Updater}}$<$ Velocity\+Type $>$ \&\+\_\+weight\+Updater, const Velocity\+Type \&\+\_\+c1, const Velocity\+Type \&\+\_\+c2, \mbox{\hyperlink{classeo_real_vector_bounds}{eo\+Real\+Vector\+Bounds}} \&\+\_\+bounds, \mbox{\hyperlink{classeo_real_bound_modifier}{eo\+Real\+Bound\+Modifier}} \&\+\_\+bnds\+Modifier, \mbox{\hyperlink{classeo_rng}{eo\+Rng}} \&\+\_\+gen=rng)
\item 
\mbox{\hyperlink{classeo_constricted_variable_weight_velocity_a8f00d339d58dbecb02c97cad85b5b5d1}{eo\+Constricted\+Variable\+Weight\+Velocity}} (\mbox{\hyperlink{classeo_topology}{eo\+Topology}}$<$ P\+OT $>$ \&\+\_\+topology, const Velocity\+Type \&\+\_\+coeff, \mbox{\hyperlink{classeo_weight_updater}{eo\+Weight\+Updater}}$<$ Velocity\+Type $>$ \&\+\_\+weight\+Updater, const Velocity\+Type \&\+\_\+c1, const Velocity\+Type \&\+\_\+c2, \mbox{\hyperlink{classeo_real_vector_bounds}{eo\+Real\+Vector\+Bounds}} \&\+\_\+bounds, \mbox{\hyperlink{classeo_rng}{eo\+Rng}} \&\+\_\+gen=rng)
\item 
\mbox{\hyperlink{classeo_constricted_variable_weight_velocity_a4e923acdc003247c6cc1a9732c8708f3}{eo\+Constricted\+Variable\+Weight\+Velocity}} (\mbox{\hyperlink{classeo_topology}{eo\+Topology}}$<$ P\+OT $>$ \&\+\_\+topology, const Velocity\+Type \&\+\_\+coeff, \mbox{\hyperlink{classeo_weight_updater}{eo\+Weight\+Updater}}$<$ Velocity\+Type $>$ \&\+\_\+weight\+Updater, const Velocity\+Type \&\+\_\+c1, const Velocity\+Type \&\+\_\+c2, \mbox{\hyperlink{classeo_rng}{eo\+Rng}} \&\+\_\+gen=rng)
\item 
void \mbox{\hyperlink{classeo_constricted_variable_weight_velocity_a21385fa595fe01442d9452113268f7a4}{operator()}} (P\+OT \&\+\_\+po, unsigned \+\_\+indice)
\item 
void \mbox{\hyperlink{classeo_constricted_variable_weight_velocity_abbf7fb28e7b4a65e33d6154c3e996889}{update\+Neighborhood}} (P\+OT \&\+\_\+po, unsigned \+\_\+indice)
\item 
\mbox{\hyperlink{classeo_constricted_variable_weight_velocity_a9d62a80a2608da618dbe3b6ed64df87c}{eo\+Constricted\+Variable\+Weight\+Velocity}} (\mbox{\hyperlink{classeo_topology}{eo\+Topology}}$<$ P\+OT $>$ \&\+\_\+topology, const Velocity\+Type \&\+\_\+coeff, \mbox{\hyperlink{classeo_weight_updater}{eo\+Weight\+Updater}}$<$ Velocity\+Type $>$ \&\+\_\+weight\+Updater, const Velocity\+Type \&\+\_\+c1, const Velocity\+Type \&\+\_\+c2, \mbox{\hyperlink{classeo_real_vector_bounds}{eo\+Real\+Vector\+Bounds}} \&\+\_\+bounds, \mbox{\hyperlink{classeo_real_bound_modifier}{eo\+Real\+Bound\+Modifier}} \&\+\_\+bnds\+Modifier, \mbox{\hyperlink{classeo_rng}{eo\+Rng}} \&\+\_\+gen=rng)
\item 
\mbox{\hyperlink{classeo_constricted_variable_weight_velocity_a8f00d339d58dbecb02c97cad85b5b5d1}{eo\+Constricted\+Variable\+Weight\+Velocity}} (\mbox{\hyperlink{classeo_topology}{eo\+Topology}}$<$ P\+OT $>$ \&\+\_\+topology, const Velocity\+Type \&\+\_\+coeff, \mbox{\hyperlink{classeo_weight_updater}{eo\+Weight\+Updater}}$<$ Velocity\+Type $>$ \&\+\_\+weight\+Updater, const Velocity\+Type \&\+\_\+c1, const Velocity\+Type \&\+\_\+c2, \mbox{\hyperlink{classeo_real_vector_bounds}{eo\+Real\+Vector\+Bounds}} \&\+\_\+bounds, \mbox{\hyperlink{classeo_rng}{eo\+Rng}} \&\+\_\+gen=rng)
\item 
\mbox{\hyperlink{classeo_constricted_variable_weight_velocity_a4e923acdc003247c6cc1a9732c8708f3}{eo\+Constricted\+Variable\+Weight\+Velocity}} (\mbox{\hyperlink{classeo_topology}{eo\+Topology}}$<$ P\+OT $>$ \&\+\_\+topology, const Velocity\+Type \&\+\_\+coeff, \mbox{\hyperlink{classeo_weight_updater}{eo\+Weight\+Updater}}$<$ Velocity\+Type $>$ \&\+\_\+weight\+Updater, const Velocity\+Type \&\+\_\+c1, const Velocity\+Type \&\+\_\+c2, \mbox{\hyperlink{classeo_rng}{eo\+Rng}} \&\+\_\+gen=rng)
\item 
void \mbox{\hyperlink{classeo_constricted_variable_weight_velocity_a21385fa595fe01442d9452113268f7a4}{operator()}} (P\+OT \&\+\_\+po, unsigned \+\_\+indice)
\item 
void \mbox{\hyperlink{classeo_constricted_variable_weight_velocity_abbf7fb28e7b4a65e33d6154c3e996889}{update\+Neighborhood}} (P\+OT \&\+\_\+po, unsigned \+\_\+indice)
\end{DoxyCompactItemize}
\doxysubsection*{Protected Attributes}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classeo_constricted_variable_weight_velocity_ae6f353f7c6e0158ec4b9597d3b491c2e}\label{classeo_constricted_variable_weight_velocity_ae6f353f7c6e0158ec4b9597d3b491c2e}} 
\mbox{\hyperlink{classeo_topology}{eo\+Topology}}$<$ P\+OT $>$ \& {\bfseries topology}
\item 
\mbox{\Hypertarget{classeo_constricted_variable_weight_velocity_abb108b5e979716e59e772c1bbb695a59}\label{classeo_constricted_variable_weight_velocity_abb108b5e979716e59e772c1bbb695a59}} 
const Velocity\+Type \& {\bfseries coeff}
\item 
\mbox{\Hypertarget{classeo_constricted_variable_weight_velocity_af3adac63cb5fb865b65c07fc7d828428}\label{classeo_constricted_variable_weight_velocity_af3adac63cb5fb865b65c07fc7d828428}} 
\mbox{\hyperlink{classeo_weight_updater}{eo\+Weight\+Updater}}$<$ Velocity\+Type $>$ \& {\bfseries weight\+Updater}
\item 
\mbox{\Hypertarget{classeo_constricted_variable_weight_velocity_a9472a21a39aa7395c739f267558b9336}\label{classeo_constricted_variable_weight_velocity_a9472a21a39aa7395c739f267558b9336}} 
const Velocity\+Type \& {\bfseries c1}
\item 
\mbox{\Hypertarget{classeo_constricted_variable_weight_velocity_aca45f253d9314b7deb188b9d38e55718}\label{classeo_constricted_variable_weight_velocity_aca45f253d9314b7deb188b9d38e55718}} 
const Velocity\+Type \& {\bfseries c2}
\item 
\mbox{\Hypertarget{classeo_constricted_variable_weight_velocity_a75f9db8db1fabbcd4a48a619a1178085}\label{classeo_constricted_variable_weight_velocity_a75f9db8db1fabbcd4a48a619a1178085}} 
\mbox{\hyperlink{classeo_real_vector_bounds}{eo\+Real\+Vector\+Bounds}} \& {\bfseries bounds}
\item 
\mbox{\Hypertarget{classeo_constricted_variable_weight_velocity_a71dc36ca172a763c4c2c6ad6852c6753}\label{classeo_constricted_variable_weight_velocity_a71dc36ca172a763c4c2c6ad6852c6753}} 
\mbox{\hyperlink{classeo_real_bound_modifier}{eo\+Real\+Bound\+Modifier}} \& {\bfseries bnds\+Modifier}
\item 
\mbox{\Hypertarget{classeo_constricted_variable_weight_velocity_a2da35bab03a96a465967e2346cfd0b86}\label{classeo_constricted_variable_weight_velocity_a2da35bab03a96a465967e2346cfd0b86}} 
Velocity\+Type {\bfseries weight}
\item 
\mbox{\Hypertarget{classeo_constricted_variable_weight_velocity_a962a42594cbfb1aa7718d39bc474699f}\label{classeo_constricted_variable_weight_velocity_a962a42594cbfb1aa7718d39bc474699f}} 
\mbox{\hyperlink{classeo_rng}{eo\+Rng}} \& {\bfseries gen}
\item 
\mbox{\Hypertarget{classeo_constricted_variable_weight_velocity_af4ccc1e7def74d83a990873234337eef}\label{classeo_constricted_variable_weight_velocity_af4ccc1e7def74d83a990873234337eef}} 
\mbox{\hyperlink{classeo_dummy_real_bound_modifier}{eo\+Dummy\+Real\+Bound\+Modifier}} {\bfseries dummy\+Modifier}
\end{DoxyCompactItemize}
\doxysubsection*{Additional Inherited Members}


\doxysubsection{Detailed Description}
\subsubsection*{template$<$class P\+OT$>$\newline
class eo\+Constricted\+Variable\+Weight\+Velocity$<$ P\+O\+T $>$}

Inertia variable + constriction velocity for particle swarm optimization. Derivated from abstract \mbox{\hyperlink{classeo_velocity}{eo\+Velocity}}, At step t\+: v(t+1)= K $\ast$ ( w$\ast$v(t) + c1$\ast$r1$\ast$ (xbest(t)-\/x(t)) + c2$\ast$r2$\ast$ (gbest(t) -\/ x(t))) w is updated each time the velocity performer is called and K is fixed (ci given and Ri chosen at random in \mbox{[}0;1\mbox{]}). 

\doxysubsection{Constructor \& Destructor Documentation}
\mbox{\Hypertarget{classeo_constricted_variable_weight_velocity_a9d62a80a2608da618dbe3b6ed64df87c}\label{classeo_constricted_variable_weight_velocity_a9d62a80a2608da618dbe3b6ed64df87c}} 
\index{eoConstrictedVariableWeightVelocity$<$ POT $>$@{eoConstrictedVariableWeightVelocity$<$ POT $>$}!eoConstrictedVariableWeightVelocity@{eoConstrictedVariableWeightVelocity}}
\index{eoConstrictedVariableWeightVelocity@{eoConstrictedVariableWeightVelocity}!eoConstrictedVariableWeightVelocity$<$ POT $>$@{eoConstrictedVariableWeightVelocity$<$ POT $>$}}
\doxysubsubsection{\texorpdfstring{eoConstrictedVariableWeightVelocity()}{eoConstrictedVariableWeightVelocity()}\hspace{0.1cm}{\footnotesize\ttfamily [1/6]}}
{\footnotesize\ttfamily template$<$class P\+OT $>$ \\
\mbox{\hyperlink{classeo_constricted_variable_weight_velocity}{eo\+Constricted\+Variable\+Weight\+Velocity}}$<$ P\+OT $>$\+::\mbox{\hyperlink{classeo_constricted_variable_weight_velocity}{eo\+Constricted\+Variable\+Weight\+Velocity}} (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classeo_topology}{eo\+Topology}}$<$ P\+OT $>$ \&}]{\+\_\+topology,  }\item[{const Velocity\+Type \&}]{\+\_\+coeff,  }\item[{\mbox{\hyperlink{classeo_weight_updater}{eo\+Weight\+Updater}}$<$ Velocity\+Type $>$ \&}]{\+\_\+weight\+Updater,  }\item[{const Velocity\+Type \&}]{\+\_\+c1,  }\item[{const Velocity\+Type \&}]{\+\_\+c2,  }\item[{\mbox{\hyperlink{classeo_real_vector_bounds}{eo\+Real\+Vector\+Bounds}} \&}]{\+\_\+bounds,  }\item[{\mbox{\hyperlink{classeo_real_bound_modifier}{eo\+Real\+Bound\+Modifier}} \&}]{\+\_\+bnds\+Modifier,  }\item[{\mbox{\hyperlink{classeo_rng}{eo\+Rng}} \&}]{\+\_\+gen = {\ttfamily rng} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

Full constructor\+: Bounds and bound modifier required 
\begin{DoxyParams}{Parameters}
{\em \+\_\+topology} & -\/ The topology to get the global/local/other best \\
\hline
{\em \+\_\+coeff} & -\/ The constriction coefficient \\
\hline
{\em \+\_\+weight\+Updater} & -\/ An \mbox{\hyperlink{classeo_weight_updater}{eo\+Weight\+Updater}} used to update the inertia weight \\
\hline
{\em \+\_\+c1} & -\/ The first learning factor used for the particle\textquotesingle{}s best. Type must be P\+O\+T\+::\+Particle\+Velocity\+Type \\
\hline
{\em \+\_\+c2} & -\/ The second learning factor used for the local/global best(s). Type must be P\+O\+T\+::\+Particle\+Velocity\+Type \\
\hline
{\em \+\_\+bounds} & -\/ An \mbox{\hyperlink{classeo_real_base_vector_bounds}{eo\+Real\+Base\+Vector\+Bounds}}\+: real bounds for real velocities. If the velocities are not real, they won\textquotesingle{}t be bounded by default. Should have a eo\+Bounds ? \\
\hline
{\em \+\_\+bnds\+Modifier} & -\/ An \mbox{\hyperlink{classeo_real_bound_modifier}{eo\+Real\+Bound\+Modifier}} used to modify the bounds (for real bounds only). \\
\hline
{\em \+\_\+gen} & -\/ The eo random generator, default=rng \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{classeo_constricted_variable_weight_velocity_a8f00d339d58dbecb02c97cad85b5b5d1}\label{classeo_constricted_variable_weight_velocity_a8f00d339d58dbecb02c97cad85b5b5d1}} 
\index{eoConstrictedVariableWeightVelocity$<$ POT $>$@{eoConstrictedVariableWeightVelocity$<$ POT $>$}!eoConstrictedVariableWeightVelocity@{eoConstrictedVariableWeightVelocity}}
\index{eoConstrictedVariableWeightVelocity@{eoConstrictedVariableWeightVelocity}!eoConstrictedVariableWeightVelocity$<$ POT $>$@{eoConstrictedVariableWeightVelocity$<$ POT $>$}}
\doxysubsubsection{\texorpdfstring{eoConstrictedVariableWeightVelocity()}{eoConstrictedVariableWeightVelocity()}\hspace{0.1cm}{\footnotesize\ttfamily [2/6]}}
{\footnotesize\ttfamily template$<$class P\+OT $>$ \\
\mbox{\hyperlink{classeo_constricted_variable_weight_velocity}{eo\+Constricted\+Variable\+Weight\+Velocity}}$<$ P\+OT $>$\+::\mbox{\hyperlink{classeo_constricted_variable_weight_velocity}{eo\+Constricted\+Variable\+Weight\+Velocity}} (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classeo_topology}{eo\+Topology}}$<$ P\+OT $>$ \&}]{\+\_\+topology,  }\item[{const Velocity\+Type \&}]{\+\_\+coeff,  }\item[{\mbox{\hyperlink{classeo_weight_updater}{eo\+Weight\+Updater}}$<$ Velocity\+Type $>$ \&}]{\+\_\+weight\+Updater,  }\item[{const Velocity\+Type \&}]{\+\_\+c1,  }\item[{const Velocity\+Type \&}]{\+\_\+c2,  }\item[{\mbox{\hyperlink{classeo_real_vector_bounds}{eo\+Real\+Vector\+Bounds}} \&}]{\+\_\+bounds,  }\item[{\mbox{\hyperlink{classeo_rng}{eo\+Rng}} \&}]{\+\_\+gen = {\ttfamily rng} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

Constructor\+: No bound updater required $<$-\/$>$ fixed bounds 
\begin{DoxyParams}{Parameters}
{\em \+\_\+topology} & -\/ The topology to get the global/local/other best \\
\hline
{\em \+\_\+coeff} & -\/ The constriction coefficient \\
\hline
{\em \+\_\+weight\+Updater} & -\/ An \mbox{\hyperlink{classeo_weight_updater}{eo\+Weight\+Updater}} used to update the inertia weight \\
\hline
{\em \+\_\+c1} & -\/ The first learning factor used for the particle\textquotesingle{}s best. Type must be P\+O\+T\+::\+Particle\+Velocity\+Type \\
\hline
{\em \+\_\+c2} & -\/ The second learning factor used for the local/global best(s). Type must be P\+O\+T\+::\+Particle\+Velocity\+Type \\
\hline
{\em \+\_\+bounds} & -\/ An \mbox{\hyperlink{classeo_real_base_vector_bounds}{eo\+Real\+Base\+Vector\+Bounds}}\+: real bounds for real velocities. If the velocities are not real, they won\textquotesingle{}t be bounded by default. Should have a eo\+Bounds ? \\
\hline
{\em \+\_\+gen} & -\/ The eo random generator, default=rng \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{classeo_constricted_variable_weight_velocity_a4e923acdc003247c6cc1a9732c8708f3}\label{classeo_constricted_variable_weight_velocity_a4e923acdc003247c6cc1a9732c8708f3}} 
\index{eoConstrictedVariableWeightVelocity$<$ POT $>$@{eoConstrictedVariableWeightVelocity$<$ POT $>$}!eoConstrictedVariableWeightVelocity@{eoConstrictedVariableWeightVelocity}}
\index{eoConstrictedVariableWeightVelocity@{eoConstrictedVariableWeightVelocity}!eoConstrictedVariableWeightVelocity$<$ POT $>$@{eoConstrictedVariableWeightVelocity$<$ POT $>$}}
\doxysubsubsection{\texorpdfstring{eoConstrictedVariableWeightVelocity()}{eoConstrictedVariableWeightVelocity()}\hspace{0.1cm}{\footnotesize\ttfamily [3/6]}}
{\footnotesize\ttfamily template$<$class P\+OT $>$ \\
\mbox{\hyperlink{classeo_constricted_variable_weight_velocity}{eo\+Constricted\+Variable\+Weight\+Velocity}}$<$ P\+OT $>$\+::\mbox{\hyperlink{classeo_constricted_variable_weight_velocity}{eo\+Constricted\+Variable\+Weight\+Velocity}} (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classeo_topology}{eo\+Topology}}$<$ P\+OT $>$ \&}]{\+\_\+topology,  }\item[{const Velocity\+Type \&}]{\+\_\+coeff,  }\item[{\mbox{\hyperlink{classeo_weight_updater}{eo\+Weight\+Updater}}$<$ Velocity\+Type $>$ \&}]{\+\_\+weight\+Updater,  }\item[{const Velocity\+Type \&}]{\+\_\+c1,  }\item[{const Velocity\+Type \&}]{\+\_\+c2,  }\item[{\mbox{\hyperlink{classeo_rng}{eo\+Rng}} \&}]{\+\_\+gen = {\ttfamily rng} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

Constructor\+: Neither bounds nor bound updater required $<$-\/$>$ free velocity 
\begin{DoxyParams}{Parameters}
{\em \+\_\+topology} & -\/ The topology to get the global/local/other best$\ast$ \\
\hline
{\em \+\_\+coeff} & -\/ The constriction coefficient \\
\hline
{\em \+\_\+weight\+Updater} & -\/ An \mbox{\hyperlink{classeo_weight_updater}{eo\+Weight\+Updater}} used to update the inertia weight \\
\hline
{\em \+\_\+c1} & -\/ The first learning factor used for the particle\textquotesingle{}s best. Type must be P\+O\+T\+::\+Particle\+Velocity\+Type \\
\hline
{\em \+\_\+c2} & -\/ The second learning factor used for the local/global best(s). Type must be P\+O\+T\+::\+Particle\+Velocity\+Type \\
\hline
{\em \+\_\+gen} & -\/ The eo random generator, default=rng \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{classeo_constricted_variable_weight_velocity_a9d62a80a2608da618dbe3b6ed64df87c}\label{classeo_constricted_variable_weight_velocity_a9d62a80a2608da618dbe3b6ed64df87c}} 
\index{eoConstrictedVariableWeightVelocity$<$ POT $>$@{eoConstrictedVariableWeightVelocity$<$ POT $>$}!eoConstrictedVariableWeightVelocity@{eoConstrictedVariableWeightVelocity}}
\index{eoConstrictedVariableWeightVelocity@{eoConstrictedVariableWeightVelocity}!eoConstrictedVariableWeightVelocity$<$ POT $>$@{eoConstrictedVariableWeightVelocity$<$ POT $>$}}
\doxysubsubsection{\texorpdfstring{eoConstrictedVariableWeightVelocity()}{eoConstrictedVariableWeightVelocity()}\hspace{0.1cm}{\footnotesize\ttfamily [4/6]}}
{\footnotesize\ttfamily template$<$class P\+OT $>$ \\
\mbox{\hyperlink{classeo_constricted_variable_weight_velocity}{eo\+Constricted\+Variable\+Weight\+Velocity}}$<$ P\+OT $>$\+::\mbox{\hyperlink{classeo_constricted_variable_weight_velocity}{eo\+Constricted\+Variable\+Weight\+Velocity}} (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classeo_topology}{eo\+Topology}}$<$ P\+OT $>$ \&}]{\+\_\+topology,  }\item[{const Velocity\+Type \&}]{\+\_\+coeff,  }\item[{\mbox{\hyperlink{classeo_weight_updater}{eo\+Weight\+Updater}}$<$ Velocity\+Type $>$ \&}]{\+\_\+weight\+Updater,  }\item[{const Velocity\+Type \&}]{\+\_\+c1,  }\item[{const Velocity\+Type \&}]{\+\_\+c2,  }\item[{\mbox{\hyperlink{classeo_real_vector_bounds}{eo\+Real\+Vector\+Bounds}} \&}]{\+\_\+bounds,  }\item[{\mbox{\hyperlink{classeo_real_bound_modifier}{eo\+Real\+Bound\+Modifier}} \&}]{\+\_\+bnds\+Modifier,  }\item[{\mbox{\hyperlink{classeo_rng}{eo\+Rng}} \&}]{\+\_\+gen = {\ttfamily rng} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

Full constructor\+: Bounds and bound modifier required 
\begin{DoxyParams}{Parameters}
{\em \+\_\+topology} & -\/ The topology to get the global/local/other best \\
\hline
{\em \+\_\+coeff} & -\/ The constriction coefficient \\
\hline
{\em \+\_\+weight\+Updater} & -\/ An \mbox{\hyperlink{classeo_weight_updater}{eo\+Weight\+Updater}} used to update the inertia weight \\
\hline
{\em \+\_\+c1} & -\/ The first learning factor used for the particle\textquotesingle{}s best. Type must be P\+O\+T\+::\+Particle\+Velocity\+Type \\
\hline
{\em \+\_\+c2} & -\/ The second learning factor used for the local/global best(s). Type must be P\+O\+T\+::\+Particle\+Velocity\+Type \\
\hline
{\em \+\_\+bounds} & -\/ An \mbox{\hyperlink{classeo_real_base_vector_bounds}{eo\+Real\+Base\+Vector\+Bounds}}\+: real bounds for real velocities. If the velocities are not real, they won\textquotesingle{}t be bounded by default. Should have a eo\+Bounds ? \\
\hline
{\em \+\_\+bnds\+Modifier} & -\/ An \mbox{\hyperlink{classeo_real_bound_modifier}{eo\+Real\+Bound\+Modifier}} used to modify the bounds (for real bounds only). \\
\hline
{\em \+\_\+gen} & -\/ The eo random generator, default=rng \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{classeo_constricted_variable_weight_velocity_a8f00d339d58dbecb02c97cad85b5b5d1}\label{classeo_constricted_variable_weight_velocity_a8f00d339d58dbecb02c97cad85b5b5d1}} 
\index{eoConstrictedVariableWeightVelocity$<$ POT $>$@{eoConstrictedVariableWeightVelocity$<$ POT $>$}!eoConstrictedVariableWeightVelocity@{eoConstrictedVariableWeightVelocity}}
\index{eoConstrictedVariableWeightVelocity@{eoConstrictedVariableWeightVelocity}!eoConstrictedVariableWeightVelocity$<$ POT $>$@{eoConstrictedVariableWeightVelocity$<$ POT $>$}}
\doxysubsubsection{\texorpdfstring{eoConstrictedVariableWeightVelocity()}{eoConstrictedVariableWeightVelocity()}\hspace{0.1cm}{\footnotesize\ttfamily [5/6]}}
{\footnotesize\ttfamily template$<$class P\+OT $>$ \\
\mbox{\hyperlink{classeo_constricted_variable_weight_velocity}{eo\+Constricted\+Variable\+Weight\+Velocity}}$<$ P\+OT $>$\+::\mbox{\hyperlink{classeo_constricted_variable_weight_velocity}{eo\+Constricted\+Variable\+Weight\+Velocity}} (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classeo_topology}{eo\+Topology}}$<$ P\+OT $>$ \&}]{\+\_\+topology,  }\item[{const Velocity\+Type \&}]{\+\_\+coeff,  }\item[{\mbox{\hyperlink{classeo_weight_updater}{eo\+Weight\+Updater}}$<$ Velocity\+Type $>$ \&}]{\+\_\+weight\+Updater,  }\item[{const Velocity\+Type \&}]{\+\_\+c1,  }\item[{const Velocity\+Type \&}]{\+\_\+c2,  }\item[{\mbox{\hyperlink{classeo_real_vector_bounds}{eo\+Real\+Vector\+Bounds}} \&}]{\+\_\+bounds,  }\item[{\mbox{\hyperlink{classeo_rng}{eo\+Rng}} \&}]{\+\_\+gen = {\ttfamily rng} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

Constructor\+: No bound updater required $<$-\/$>$ fixed bounds 
\begin{DoxyParams}{Parameters}
{\em \+\_\+topology} & -\/ The topology to get the global/local/other best \\
\hline
{\em \+\_\+coeff} & -\/ The constriction coefficient \\
\hline
{\em \+\_\+weight\+Updater} & -\/ An \mbox{\hyperlink{classeo_weight_updater}{eo\+Weight\+Updater}} used to update the inertia weight \\
\hline
{\em \+\_\+c1} & -\/ The first learning factor used for the particle\textquotesingle{}s best. Type must be P\+O\+T\+::\+Particle\+Velocity\+Type \\
\hline
{\em \+\_\+c2} & -\/ The second learning factor used for the local/global best(s). Type must be P\+O\+T\+::\+Particle\+Velocity\+Type \\
\hline
{\em \+\_\+bounds} & -\/ An \mbox{\hyperlink{classeo_real_base_vector_bounds}{eo\+Real\+Base\+Vector\+Bounds}}\+: real bounds for real velocities. If the velocities are not real, they won\textquotesingle{}t be bounded by default. Should have a eo\+Bounds ? \\
\hline
{\em \+\_\+gen} & -\/ The eo random generator, default=rng \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{classeo_constricted_variable_weight_velocity_a4e923acdc003247c6cc1a9732c8708f3}\label{classeo_constricted_variable_weight_velocity_a4e923acdc003247c6cc1a9732c8708f3}} 
\index{eoConstrictedVariableWeightVelocity$<$ POT $>$@{eoConstrictedVariableWeightVelocity$<$ POT $>$}!eoConstrictedVariableWeightVelocity@{eoConstrictedVariableWeightVelocity}}
\index{eoConstrictedVariableWeightVelocity@{eoConstrictedVariableWeightVelocity}!eoConstrictedVariableWeightVelocity$<$ POT $>$@{eoConstrictedVariableWeightVelocity$<$ POT $>$}}
\doxysubsubsection{\texorpdfstring{eoConstrictedVariableWeightVelocity()}{eoConstrictedVariableWeightVelocity()}\hspace{0.1cm}{\footnotesize\ttfamily [6/6]}}
{\footnotesize\ttfamily template$<$class P\+OT $>$ \\
\mbox{\hyperlink{classeo_constricted_variable_weight_velocity}{eo\+Constricted\+Variable\+Weight\+Velocity}}$<$ P\+OT $>$\+::\mbox{\hyperlink{classeo_constricted_variable_weight_velocity}{eo\+Constricted\+Variable\+Weight\+Velocity}} (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classeo_topology}{eo\+Topology}}$<$ P\+OT $>$ \&}]{\+\_\+topology,  }\item[{const Velocity\+Type \&}]{\+\_\+coeff,  }\item[{\mbox{\hyperlink{classeo_weight_updater}{eo\+Weight\+Updater}}$<$ Velocity\+Type $>$ \&}]{\+\_\+weight\+Updater,  }\item[{const Velocity\+Type \&}]{\+\_\+c1,  }\item[{const Velocity\+Type \&}]{\+\_\+c2,  }\item[{\mbox{\hyperlink{classeo_rng}{eo\+Rng}} \&}]{\+\_\+gen = {\ttfamily rng} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

Constructor\+: Neither bounds nor bound updater required $<$-\/$>$ free velocity 
\begin{DoxyParams}{Parameters}
{\em \+\_\+topology} & -\/ The topology to get the global/local/other best$\ast$ \\
\hline
{\em \+\_\+coeff} & -\/ The constriction coefficient \\
\hline
{\em \+\_\+weight\+Updater} & -\/ An \mbox{\hyperlink{classeo_weight_updater}{eo\+Weight\+Updater}} used to update the inertia weight \\
\hline
{\em \+\_\+c1} & -\/ The first learning factor used for the particle\textquotesingle{}s best. Type must be P\+O\+T\+::\+Particle\+Velocity\+Type \\
\hline
{\em \+\_\+c2} & -\/ The second learning factor used for the local/global best(s). Type must be P\+O\+T\+::\+Particle\+Velocity\+Type \\
\hline
{\em \+\_\+gen} & -\/ The eo random generator, default=rng \\
\hline
\end{DoxyParams}


\doxysubsection{Member Function Documentation}
\mbox{\Hypertarget{classeo_constricted_variable_weight_velocity_a21385fa595fe01442d9452113268f7a4}\label{classeo_constricted_variable_weight_velocity_a21385fa595fe01442d9452113268f7a4}} 
\index{eoConstrictedVariableWeightVelocity$<$ POT $>$@{eoConstrictedVariableWeightVelocity$<$ POT $>$}!operator()@{operator()}}
\index{operator()@{operator()}!eoConstrictedVariableWeightVelocity$<$ POT $>$@{eoConstrictedVariableWeightVelocity$<$ POT $>$}}
\doxysubsubsection{\texorpdfstring{operator()()}{operator()()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$class P\+OT $>$ \\
void \mbox{\hyperlink{classeo_constricted_variable_weight_velocity}{eo\+Constricted\+Variable\+Weight\+Velocity}}$<$ P\+OT $>$\+::operator() (\begin{DoxyParamCaption}\item[{P\+OT \&}]{\+\_\+po,  }\item[{unsigned}]{\+\_\+indice }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}

Evaluate the new velocities of the given particle. Need an indice to identify the particle into the topology. Steps are \+:
\begin{DoxyItemize}
\item evaluate r1 and r2, the customed learning factors
\item adjust the size of the bounds (even if dummy)
\item update the weight with the weight\+Updater (use the dummy updater if there\textquotesingle{}s no updater provided)
\item modify the bounds with the bounds modifier (use the dummy modifier if there\textquotesingle{}s no modifier provided) 
\begin{DoxyParams}{Parameters}
{\em \+\_\+po} & -\/ A particle \\
\hline
{\em \+\_\+indice} & -\/ The indice (into the topology) of the given particle \\
\hline
\end{DoxyParams}

\end{DoxyItemize}

Implements \mbox{\hyperlink{classeo_b_f_aa03c40b95210569b826df79a2237a0d0}{eo\+B\+F$<$ P\+O\+T \&, unsigned, void $>$}}.

\mbox{\Hypertarget{classeo_constricted_variable_weight_velocity_a21385fa595fe01442d9452113268f7a4}\label{classeo_constricted_variable_weight_velocity_a21385fa595fe01442d9452113268f7a4}} 
\index{eoConstrictedVariableWeightVelocity$<$ POT $>$@{eoConstrictedVariableWeightVelocity$<$ POT $>$}!operator()@{operator()}}
\index{operator()@{operator()}!eoConstrictedVariableWeightVelocity$<$ POT $>$@{eoConstrictedVariableWeightVelocity$<$ POT $>$}}
\doxysubsubsection{\texorpdfstring{operator()()}{operator()()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$class P\+OT $>$ \\
void \mbox{\hyperlink{classeo_constricted_variable_weight_velocity}{eo\+Constricted\+Variable\+Weight\+Velocity}}$<$ P\+OT $>$\+::operator() (\begin{DoxyParamCaption}\item[{P\+OT \&}]{\+\_\+po,  }\item[{unsigned}]{\+\_\+indice }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}

Evaluate the new velocities of the given particle. Need an indice to identify the particle into the topology. Steps are \+:
\begin{DoxyItemize}
\item evaluate r1 and r2, the customed learning factors
\item adjust the size of the bounds (even if dummy)
\item update the weight with the weight\+Updater (use the dummy updater if there\textquotesingle{}s no updater provided)
\item modify the bounds with the bounds modifier (use the dummy modifier if there\textquotesingle{}s no modifier provided) 
\begin{DoxyParams}{Parameters}
{\em \+\_\+po} & -\/ A particle \\
\hline
{\em \+\_\+indice} & -\/ The indice (into the topology) of the given particle \\
\hline
\end{DoxyParams}

\end{DoxyItemize}

Implements \mbox{\hyperlink{classeo_b_f_aa03c40b95210569b826df79a2237a0d0}{eo\+B\+F$<$ P\+O\+T \&, unsigned, void $>$}}.

\mbox{\Hypertarget{classeo_constricted_variable_weight_velocity_abbf7fb28e7b4a65e33d6154c3e996889}\label{classeo_constricted_variable_weight_velocity_abbf7fb28e7b4a65e33d6154c3e996889}} 
\index{eoConstrictedVariableWeightVelocity$<$ POT $>$@{eoConstrictedVariableWeightVelocity$<$ POT $>$}!updateNeighborhood@{updateNeighborhood}}
\index{updateNeighborhood@{updateNeighborhood}!eoConstrictedVariableWeightVelocity$<$ POT $>$@{eoConstrictedVariableWeightVelocity$<$ POT $>$}}
\doxysubsubsection{\texorpdfstring{updateNeighborhood()}{updateNeighborhood()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$class P\+OT $>$ \\
void \mbox{\hyperlink{classeo_constricted_variable_weight_velocity}{eo\+Constricted\+Variable\+Weight\+Velocity}}$<$ P\+OT $>$\+::update\+Neighborhood (\begin{DoxyParamCaption}\item[{P\+OT \&}]{\+\_\+po,  }\item[{unsigned}]{\+\_\+indice }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}

Update the neighborhood. 

Reimplemented from \mbox{\hyperlink{classeo_velocity_a5e2310d90e8bc72782f4c865706b4549}{eo\+Velocity$<$ P\+O\+T $>$}}.

\mbox{\Hypertarget{classeo_constricted_variable_weight_velocity_abbf7fb28e7b4a65e33d6154c3e996889}\label{classeo_constricted_variable_weight_velocity_abbf7fb28e7b4a65e33d6154c3e996889}} 
\index{eoConstrictedVariableWeightVelocity$<$ POT $>$@{eoConstrictedVariableWeightVelocity$<$ POT $>$}!updateNeighborhood@{updateNeighborhood}}
\index{updateNeighborhood@{updateNeighborhood}!eoConstrictedVariableWeightVelocity$<$ POT $>$@{eoConstrictedVariableWeightVelocity$<$ POT $>$}}
\doxysubsubsection{\texorpdfstring{updateNeighborhood()}{updateNeighborhood()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$class P\+OT $>$ \\
void \mbox{\hyperlink{classeo_constricted_variable_weight_velocity}{eo\+Constricted\+Variable\+Weight\+Velocity}}$<$ P\+OT $>$\+::update\+Neighborhood (\begin{DoxyParamCaption}\item[{P\+OT \&}]{\+\_\+po,  }\item[{unsigned}]{\+\_\+indice }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}

Update the neighborhood. 

Reimplemented from \mbox{\hyperlink{classeo_velocity_a5e2310d90e8bc72782f4c865706b4549}{eo\+Velocity$<$ P\+O\+T $>$}}.



The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
deprecated/eo/src/eo\+Constricted\+Variable\+Weight\+Velocity.\+h\end{DoxyCompactItemize}
