38 for (uint dimension = 0; dimension < p1->variables.size(); dimension++) {
39 switch (state_->getRandomizer()->getRandomInteger(0, 1)) {
40 case 0:
for (uint i = 0; i < p1->getNumBits(); i++) {
41 ch->variables[dimension][i] = p1->variables[dimension][i];
44 case 1:
for (uint i = 0; i < p2->getNumBits(); i++) {
45 ch->variables[dimension][i] = p2->variables[dimension][i];
49 for(uint i = 0; i < p1->getNumBits(); i++) {
50 if (p1->variables[dimension][i] == p2->variables[dimension][i]) {
51 double changeProbability = state_->getRandomizer()->getRandomDouble();
52 if (changeProbability > PBF)
53 ch->variables[dimension][i] = ch->variables[dimension][i] ?
false:
true;