A few minor corrections (and some comments) after Maarten big commit
This commit is contained in:
parent
2ff2b66fdd
commit
bf0e84fc56
5 changed files with 15 additions and 11 deletions
|
|
@ -48,6 +48,8 @@ the original population, is an instantiation of the next population and
|
||||||
has often a selection function embedded in it to select new individuals.
|
has often a selection function embedded in it to select new individuals.
|
||||||
|
|
||||||
Note that the actual work is performed in the apply function.
|
Note that the actual work is performed in the apply function.
|
||||||
|
AND that the apply function is responsible for invalidating
|
||||||
|
the object if necessary
|
||||||
*/
|
*/
|
||||||
template <class EOT>
|
template <class EOT>
|
||||||
class eoGenOp : public eoOp<EOT>, public eoUF<eoPopulator<EOT> &, void>
|
class eoGenOp : public eoOp<EOT>, public eoUF<eoPopulator<EOT> &, void>
|
||||||
|
|
|
||||||
|
|
@ -37,6 +37,9 @@ the return type of the operator and invalidate the fitness of the individual.
|
||||||
This functor is used in algorithms that work with straight eoMonOp, eoBinOp
|
This functor is used in algorithms that work with straight eoMonOp, eoBinOp
|
||||||
or eoQuadOp operators, for instance eoSGA. Note that eoGenOp derived operators
|
or eoQuadOp operators, for instance eoSGA. Note that eoGenOp derived operators
|
||||||
generally do invalidate the fitness of the objects they have changed.
|
generally do invalidate the fitness of the objects they have changed.
|
||||||
|
|
||||||
|
Return value means "Has_Changed" and not "Needs_To_Be_Invalidated"
|
||||||
|
as successive invalidation are not really a problem
|
||||||
*/
|
*/
|
||||||
|
|
||||||
template <class EOT>
|
template <class EOT>
|
||||||
|
|
@ -68,6 +71,9 @@ the return type of the operator and invalidate the fitness of the individual.
|
||||||
This functor is used in algorithms that work with straight eoMonOp, eoBinOp
|
This functor is used in algorithms that work with straight eoMonOp, eoBinOp
|
||||||
or eoQuadOp operators, for instance eoSGA. Note that eoGenOp derived operators
|
or eoQuadOp operators, for instance eoSGA. Note that eoGenOp derived operators
|
||||||
generally do invalidate the fitness of the objects they have changed.
|
generally do invalidate the fitness of the objects they have changed.
|
||||||
|
|
||||||
|
Return value means "Has_Changed" and not "Needs_To_Be_Invalidated"
|
||||||
|
as successive invalidation are not really a problem
|
||||||
*/
|
*/
|
||||||
|
|
||||||
template <class EOT>
|
template <class EOT>
|
||||||
|
|
@ -99,6 +105,9 @@ the return type of the operator and invalidate the fitness of the individual.
|
||||||
This functor is used in algorithms that work with straight eoMonOp, eoBinOp
|
This functor is used in algorithms that work with straight eoMonOp, eoBinOp
|
||||||
or eoQuadOp operators, for instance eoSGA. Note that eoGenOp derived operators
|
or eoQuadOp operators, for instance eoSGA. Note that eoGenOp derived operators
|
||||||
generally do invalidate the fitness of the objects they have changed.
|
generally do invalidate the fitness of the objects they have changed.
|
||||||
|
|
||||||
|
Return value means "Has_Changed" and not "Needs_To_Be_Invalidated"
|
||||||
|
as successive invalidation are not really a problem
|
||||||
*/
|
*/
|
||||||
|
|
||||||
template <class EOT>
|
template <class EOT>
|
||||||
|
|
|
||||||
|
|
@ -205,6 +205,6 @@ std::vector<double> rates;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
// for General Ops, it's another story -
|
// for General Ops, it's another story - see eoOpCOntainer
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -84,9 +84,9 @@ template<class EOT> class eoSGATransform : public eoTransform<EOT>
|
||||||
};
|
};
|
||||||
|
|
||||||
private:
|
private:
|
||||||
eoQuadOp<EOT>& cross;
|
eoInvalidateQuadOp<EOT> cross;
|
||||||
double crossoverProba;
|
double crossoverProba;
|
||||||
eoMonOp<EOT>& mutate;
|
eoInvalidateMonOp<EOT> mutate;
|
||||||
double mutationProba;
|
double mutationProba;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -55,14 +55,7 @@ public :
|
||||||
bool objectChanged = objectXOver(_eo1, _eo2); // as vector<double>
|
bool objectChanged = objectXOver(_eo1, _eo2); // as vector<double>
|
||||||
bool stdDevChanged = stdDevXOver(_eo1.stdevs, _eo2.stdevs);
|
bool stdDevChanged = stdDevXOver(_eo1.stdevs, _eo2.stdevs);
|
||||||
|
|
||||||
/// Marc, I didn't change it, but if only the stdev has changed,
|
return objectChanged;
|
||||||
/// doesn't that mean that the fitness is stil valid. Maarten
|
|
||||||
if ( objectChanged || stdDevChanged )
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
|
||||||
Reference in a new issue