@zfunction/genetics-js
Version:
Genetic and evolutionary algorithms framework for the web
30 lines (29 loc) • 1.41 kB
TypeScript
import { FitnessFunction } from '../fitness/FitnessFunction';
import { GeneratorParams } from '../generator/base/GeneratorParams';
import { IndividualGenerator } from '../generator/base/IndividualGenerator';
import { BaseIndividual } from '../individual/base/BaseIndividual';
export interface PopulationItem<I extends BaseIndividual<T>, T> {
individual: I;
fitness: number;
age: number;
}
export interface PopulationStatistics {
averageAge: number;
averageFitness: number;
fitnessSum: number;
fittestIndividualIndex: number;
}
export declare class Population<I extends BaseIndividual<T>, T> {
static readonly DEFAULT_FITNESS = 0;
static readonly DEFAULT_FITTEST_IND_INDEX = -1;
populationStatistics: PopulationStatistics;
private items;
generatePopulationWithOperations<Params extends GeneratorParams>(populationSize: number, generator: IndividualGenerator<I, Params, T>, generatorParams: Params, fitnessFunction: FitnessFunction<I, T>): void;
getPopulationSize(): number;
replacePopulation(populationItems: Array<PopulationItem<I, T>>): void;
pushIndividual(individual: I, fitness?: number, age?: number): void;
getFittestIndividualItem(): PopulationItem<I, T> | undefined;
getPopulationItem(index: number): PopulationItem<I, T>;
getPopulationItems(): PopulationItem<I, T>[];
private setStatistics;
}