tycho-solver
Version:
Evolutionary computation and optimization library
22 lines (21 loc) • 771 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.MutationOperatorImpl = void 0;
// Generic mutation operator for array-based individuals
class MutationOperatorImpl {
constructor(geneMutator, mutationRate) {
this.geneMutator = geneMutator;
this.mutationRate = mutationRate !== null && mutationRate !== void 0 ? mutationRate : 1;
}
mutate(individual) {
const rate = this.mutationRate / individual.length;
const mutated = individual.map((gene, idx) => {
if (Math.random() < rate) {
return this.geneMutator(gene, idx, individual);
}
return gene;
});
return mutated;
}
}
exports.MutationOperatorImpl = MutationOperatorImpl;