UNPKG

tycho-solver

Version:

Evolutionary computation and optimization library

22 lines (21 loc) 771 B
"use strict"; 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;