*** empty log message ***

This commit is contained in:
cahon 2002-04-25 14:26:02 +00:00
commit c99bce368c
3 changed files with 118 additions and 0 deletions

View file

@ -0,0 +1,86 @@
#include <stdexcept>
#include <iostream>
#include <strstream>
#include <eo>
#include <ga.h>
typedef eoBit<double> Indi;
#include "binary_value.h"
void main_function(int argc, char **argv)
{
const unsigned int SEED = 42;
const unsigned int VEC_SIZE = 8;
const unsigned int POP_SIZE = 25;
const unsigned int MAX_GEN = 100;
const double P_MUT_PER_BIT = 0.01;
rng.reseed(SEED);
eoEvalFuncPtr<Indi, double, const vector<bool>& > eval( binary_value );
eoUniformGenerator<bool> uGen;
eoInitFixedLength<Indi> random(VEC_SIZE, uGen);
eoPop<Indi> pop(POP_SIZE, random);
apply<Indi>(eval, pop);
pop.sort();
cout << "Initial Population" << endl;
cout << pop;
eo1PtBitXover<Indi> xover1;
eoBitMutation<Indi> mutationBitFlip(P_MUT_PER_BIT);
eoGenContinue<Indi> genCont(MAX_GEN);
eoBestSelect <Indi> select ;
eoToricCellularEasyEA <Indi> gga (genCont,
eval,
select,
xover1,
mutationBitFlip,
select,
select) ;
cout << "\n Here we go\n\n";
gga(pop);
pop.sort();
cout << "FINAL Population\n" << pop << endl;
}
// A main that catches the exceptions
int main(int argc, char **argv)
{
#ifdef _MSC_VER
// rng.reseed(42);
int flag = _CrtSetDbgFlag(_CRTDBG_LEAK_CHECK_DF);
flag |= _CRTDBG_LEAK_CHECK_DF;
_CrtSetDbgFlag(flag);
// _CrtSetBreakAlloc(100);
#endif
try
{
main_function(argc, argv);
}
catch(exception& e)
{
cout << "Exception: " << e.what() << '\n';
}
return 1;
}

View file

@ -0,0 +1,15 @@
.cpp: ; c++ -DPACKAGE=\"eo\" -DVERSION=\"0.9.1\" -I. -I../../../src -Wall -g -o $@ $*.cpp ../../../src/utils/libeoutils.a ../../../src/libeo.a
.cpp.o: ; c++ -DPACKAGE=\"eo\" -DVERSION=\"0.9.1\" -I. -I../../../src -Wall -g -c $*.cpp
ALL = CellularBitEA
lesson3 : $(firstEA)
all : $(ALL)
clean :
@/bin/rm $(ALL) *.o *~
CellularBitEA : binary_value.h

View file

@ -0,0 +1,17 @@
#include <eo>
//-----------------------------------------------------------------------------
/** Just a simple function that takes binary value of a chromosome and sets
the fitnes.
@param _chrom A binary chromosome
*/
// INIT
double binary_value(const vector<bool>& _chrom)
{
double sum = 0;
for (unsigned i = 0; i < _chrom.size(); i++)
sum += _chrom[i];
return sum;
}