UNPKG

tycho-solver

Version:

Evolutionary computation and optimization library

50 lines 2.06 kB
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