tycho-solver
Version:
Evolutionary computation and optimization library
21 lines • 933 B
JavaScript
export const AcceptanceOperator = async ({ candidateSolution, candidateFitness, currentSolution, currentFitness, options, isTie, isCostImprovement, iterations = 0 }) => {
// Accept improvement or tie with cost improvement
const maximize = options.maximize ?? true;
const accepted = (maximize
? candidateFitness > currentFitness
: candidateFitness < currentFitness) ||
(isTie && isCostImprovement);
const nextSolution = accepted ? candidateSolution : currentSolution;
const nextFitness = accepted ? candidateFitness : currentFitness;
// Call onClimb if improvement
if (accepted && options.onClimb) {
await options.onClimb(nextSolution, nextFitness, iterations);
}
// Return updated solution, fitness, and iterations
return {
solution: nextSolution,
fitness: nextFitness,
iterations
};
};
//# sourceMappingURL=AcceptanceOperator.js.map