paradiseo/eo/tutorial/Lesson4/binary_value.h
evomarc 795f63b7fe Adding sharing - needed to modify quite a few files, like eoDistance.h
make_algo_scalar.h and all related files, and the like
2004-05-25 08:03:30 +00:00

25 lines
547 B
C++

#include <eo>
//-----------------------------------------------------------------------------
/** Just a simple function that takes binary value of a chromosome and sets
the fitnes.
@param _chrom A binary chromosome
*/
template <class Chrom> double binary_value(const Chrom& _chrom)
{
double sum = 0;
for (unsigned i = 0; i < _chrom.size(); i++)
if (_chrom[i])
sum += _chrom[i];
return sum;
}
struct BinaryValue
{
template <class Chrom> void operator()(Chrom& _chrom)
{
_chrom.fitness(binary_value(_chrom));
}
};