package opt.ga;
import shared.Instance;
import dist.Distribution;
/**
* A uniform cross over function
* @author Andrew Guillory gtg008g@mail.gatech.edu
* @version 1.0
*/
public class UniformCrossOver implements CrossoverFunction {
/**
* @see opt.CrossOverFunction#mate(opt.OptimizationData, opt.OptimizationData)
*/
public Instance mate(Instance a, Instance b) {
double[] newData = new double[a.size()];
for (int i = 0; i < newData.length; i++) {
if (Distribution.random.nextBoolean()) {
newData[i] = a.getContinuous(i);
} else {
newData[i] = b.getContinuous(i);
}
}
return new Instance(newData);
}
}