doing things work on VC++
This commit is contained in:
parent
24b8b8045a
commit
1eaeece266
1 changed files with 7 additions and 6 deletions
|
|
@ -38,6 +38,8 @@ template<class Chrom> class eoBreeder: public eoTransform<Chrom>
|
||||||
*/
|
*/
|
||||||
void operator()(eoPop<Chrom>& pop)
|
void operator()(eoPop<Chrom>& pop)
|
||||||
{
|
{
|
||||||
|
unsigned i;
|
||||||
|
|
||||||
for (Operators::const_iterator op = operators.begin();
|
for (Operators::const_iterator op = operators.begin();
|
||||||
op != operators.end();
|
op != operators.end();
|
||||||
op++)
|
op++)
|
||||||
|
|
@ -46,16 +48,15 @@ template<class Chrom> class eoBreeder: public eoTransform<Chrom>
|
||||||
case unary:
|
case unary:
|
||||||
{
|
{
|
||||||
eoMonOp<Chrom>& monop = (eoMonOp<Chrom>&)*(op->second);
|
eoMonOp<Chrom>& monop = (eoMonOp<Chrom>&)*(op->second);
|
||||||
for (unsigned i = 0; i < pop.size(); i++)
|
for (i = 0; i < pop.size(); i++)
|
||||||
if (uniform() < op->first)
|
if (uniform() < op->first)
|
||||||
monop(pop[i]);
|
monop(pop[i]);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case binary:
|
case binary:
|
||||||
{
|
{
|
||||||
vector<unsigned> pos(pop.size(), 1);
|
vector<unsigned> pos(pop.size());
|
||||||
pos[0] = 0;
|
iota(pos.begin(), pos.end(), 0);
|
||||||
partial_sum(pos.begin(), pos.end(), pos.begin());
|
|
||||||
random_shuffle(pos.begin(), pos.end());
|
random_shuffle(pos.begin(), pos.end());
|
||||||
|
|
||||||
cout << "pos = ";
|
cout << "pos = ";
|
||||||
|
|
@ -64,7 +65,7 @@ template<class Chrom> class eoBreeder: public eoTransform<Chrom>
|
||||||
cout << endl;
|
cout << endl;
|
||||||
|
|
||||||
eoBinOp<Chrom>& binop = (eoBinOp<Chrom>&)*(op->second);
|
eoBinOp<Chrom>& binop = (eoBinOp<Chrom>&)*(op->second);
|
||||||
for (unsigned i = 1; i < pop.size(); i += 2)
|
for (i = 1; i < pop.size(); i += 2)
|
||||||
if (uniform() < op->first)
|
if (uniform() < op->first)
|
||||||
binop(pop[pos[i - 1]], pop[pos[i]]);
|
binop(pop[pos[i - 1]], pop[pos[i]]);
|
||||||
break;
|
break;
|
||||||
|
|
|
||||||
Reference in a new issue