UNPKG

@zfunction/genetics-js

Version:

Genetic and evolutionary algorithms framework for the web

35 lines (34 loc) 2 kB
import { CrossoverParams } from '../crossover/base'; import { Crossover } from '../crossover/base/Crossover'; import { FitnessFunction } from '../fitness/FitnessFunction'; import { GeneratorParams, IndividualGenerator } from '../generator/base'; import { BaseIndividual } from '../individual/base/BaseIndividual'; import { Mutation, MutationParams } from '../mutation/base/Mutation'; import { Population } from '../population/Population'; import { IndividualsSelection, IndividualsSelectionParams } from '../selection/base/IndividualsSelection'; import { PopulationReplacement, PopulationReplacementParams } from '../selection/replacement/PopulationReplacement'; import { TerminationCondition } from '../termination/TerminationCondition'; export interface EvolutionaryAlgorithmParams<I extends BaseIndividual<T>, T, GParams extends GeneratorParams, SParams extends IndividualsSelectionParams, XParams extends CrossoverParams<I, T>, MParams extends MutationParams> { populationSize: number; generator: IndividualGenerator<I, GParams, T>; generatorParams: GParams; selection: IndividualsSelection<I, T, SParams>; selectionParams: SParams; crossover: Crossover<I, T, XParams>; crossoverParams: XParams; mutation: Mutation<I, T, MParams>; mutationParams: MParams; fitnessFunction: FitnessFunction<I, T>; replacement: PopulationReplacement<I, T>; replacementParams: PopulationReplacementParams; terminationCondition: TerminationCondition<I, T>; } export declare class EvolutionaryAlgorithm<I extends BaseIndividual<T>, T, GParams extends GeneratorParams, SParams extends IndividualsSelectionParams, XParams extends CrossoverParams<I, T>, MParams extends MutationParams> { population: Population<I, T>; generations: number; private params; constructor(params: EvolutionaryAlgorithmParams<I, T, GParams, SParams, XParams, MParams>); run(): void; nextGeneration(): void; private runGeneration; }