tycho-solver
Version:
Evolutionary computation and optimization library
25 lines • 724 B
JavaScript
// One-point crossover for array-based individuals
export class CrossoverOperatorImpl {
rng;
constructor(rng) {
this.rng = rng;
}
crossover(parent1, parent2) {
if (parent1.length !== parent2.length) {
return [parent1, parent2];
}
const point = this.rng
? this.rng.int(parent1.length)
: Math.floor(Math.random() * parent1.length);
const child1 = [
...parent1.slice(0, point),
...parent2.slice(point)
];
const child2 = [
...parent2.slice(0, point),
...parent1.slice(point)
];
return [child1, child2];
}
}
//# sourceMappingURL=CrossoverOperator.js.map