42bool RouletteWheel :: advanceGeneration(StateP state, DemeP deme)
45 IndividualP best = selBestOp->select(*deme);
49 std::vector<IndividualP> wheel;
50 wheel = selFitPropOp->selectMany(*deme, (uint) deme->size());
53 for(uint i = 0; i < wheel.size(); ++i)
54 wheel[i] =
copy(wheel[i]);
57 for(uint i = 0; i < deme->size(); i++)
60 ECF_LOG(state, 5,
"Selected individuals:");
61 for(uint i = 0; i < deme->size(); i++){
62 ECF_LOG(state, 5, dbl2str(deme->at(i)->fitness->getValue()));
66 uint noCrx = (int)(deme->size() *
crxRate_ /2);
69 for(uint i = 0; i < noCrx; i++){
72 IndividualP parent1 = selRandomOp->select(*deme);
73 IndividualP parent2 = selRandomOp->select(*deme);
74 ECF_LOG(state, 5,
"Parents: " + dbl2str(parent1->fitness->getValue()) +
", " + dbl2str(parent2->fitness->getValue()));
77 IndividualP child1 =
copy(parent1);
78 IndividualP child2 =
copy(parent2);
81 mate(parent1, parent2, child1);
82 mate(parent1, parent2, child2);
93 for(uint i = 0; i < deme->size(); i++)
94 if(!deme->at(i)->fitness->isValid()) {
99 IndividualP random = selRandomOp->select(*deme);
100 if(best->fitness->isBetterThan(random->fitness))
bool registerParameter(StateP state, std::string name, voidP value, enum ECF::type T, std::string description="")
Helper function: register a single parameter with the system.