tycho-solver
Version:
Evolutionary computation and optimization library
50 lines • 2.06 kB
TypeScript
import type { NeighborhoodFunction, ObjectiveFunction } from '../../search/types';
import type { InitializationOperator } from '../../core/operators/InitializationOperator';
import type { EvaluationOperator } from '../../core/operators/EvaluationOperator';
import type { SelectionOperator } from '../../core/operators/SelectionOperator';
import type { CrossoverOperator } from '../../core/operators/CrossoverOperator';
import type { MutationOperator } from '../../core/operators/MutationOperator';
import type { ReplacementOperator } from '../../core/operators/ReplacementOperator';
import type { TerminationOperator } from '../../core/operators/TerminationOperator';
export interface Individual<T> {
genome: T;
fitness: number;
}
export interface MemeticOptions<T> {
populationSize: number;
generations: number;
crossoverRate: number;
mutationRate: number;
localSearchRate: number;
initializationOperator: InitializationOperator<T>;
evaluationOperator: EvaluationOperator<T>;
selectionOperator: SelectionOperator<Individual<T>>;
crossoverOperator: CrossoverOperator<T>;
mutationOperator: MutationOperator<T>;
replacementOperator?: ReplacementOperator<Individual<T>>;
terminationOperator?: TerminationOperator<Individual<T>>;
objectiveFunction: ObjectiveFunction<T>;
neighborhoodFunction: NeighborhoodFunction<T>;
localSearchOptions?: {
maxIterations?: number;
maximize?: boolean;
costFunction?: (solution: T) => number | Promise<number>;
maximizeCost?: boolean;
};
individualFactory: () => T;
}
export declare class MemeticAlgorithm<T> {
private population;
private config;
private localSearcher;
private bestIndividual;
private rng;
constructor(config: MemeticOptions<T>);
initializePopulation(): Promise<void>;
evolve(): Promise<Individual<T>>;
getBestIndividual(): Individual<T>;
private updateBest;
getPopulation(): Individual<T>[];
}
export * from './components';
//# sourceMappingURL=index.d.ts.map