void GA_BuildTower::Crossover() { int pre = -1; for (int i = 0; i < pop_size; ++i) { double p = rand()%1000/1000.0; if (p < PXOVER) { if (pre == -1) pre = i; else { Xover(pre, i); pre = -1; } } } }
void crossover(void) {int mem,one; int first=0; double x; for(mem=0;mem<POPSIZE;++mem) {x=rand()%1000/1000.0; if(x<PXOVER) {++first; if(first%2==0) Xover(one,mem); else one=mem; } } }
void crossover() { //one point crossover int j, one; int first = 0; // count of the number of members chosen double x; for(j=0; j<POPSIZE; j++) { x = rand()/(double)RAND_MAX; if(x < PX) { first++; if(first%2 == 0) { Xover(one, j); //crossover adjust(one); adjust(j); } else one = j; } } }