UNPKG

tycho-solver

Version:

Evolutionary computation and optimization library

24 lines 783 B
// Generic mutation operator for array-based individuals export class MutationOperatorImpl { geneMutator; mutationRate; rng; constructor(geneMutator, mutationRate, rng) { // default gene mutator: identity (no change) this.geneMutator = geneMutator || ((g) => g); this.mutationRate = mutationRate ?? 0.01; this.rng = rng; } mutate(individual) { const rate = this.mutationRate; const mutated = individual.map((gene, idx) => { const r = this.rng ? this.rng.random() : Math.random(); if (r < rate) { return this.geneMutator(gene, idx, individual); } return gene; }); return mutated; } } //# sourceMappingURL=MutationOperator.js.map