UNPKG

tycho-solver

Version:

Evolutionary computation and optimization library

25 lines 724 B
// 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