enome
Version:
A genome generation and evolution library.
19 lines (18 loc) • 1.45 kB
TypeScript
import { Observable, Observer, Subject, Subscription } from 'rxjs';
import { Genome, IEvaluation, IGenomeOptions, IOrganismOptions, IPopulationOptions, Organism, ReactiveCollection, ReactiveProperty } from '../index';
export declare abstract class Population<Gen extends IGenomeOptions, Pop extends IPopulationOptions, Org extends IOrganismOptions, Data, Pheno, AState, EState> {
genOptions: Gen;
popOptions: Pop;
orgOptions: Org;
evaluations: Subject<IEvaluation<Gen, Data, Pheno>>;
generation: number;
private subs;
constructor(genOptions: Gen, popOptions: Pop, orgOptions: Org);
abstract createOrganism(genome: Genome<Gen>, options: IOrganismOptions): Organism<Gen, Pop, Org, Data, Pheno, AState, EState>;
mutate(genome: Genome<Gen>): Genome<Gen>;
createOrganisms(n: number): Array<Organism<Gen, Pop, Org, Data, Pheno, AState, EState>>;
populate(organisms: Observer<Organism<Gen, Pop, Org, Data, Pheno, AState, EState>>, top: ReactiveCollection<IEvaluation<Gen, Data, Pheno>>, avgFitness: ReactiveProperty<number>, progress: ReactiveProperty<number>): Subscription;
updateGenotype(evaluations: Observable<IEvaluation<Gen, Data, Pheno>>, top: ReactiveCollection<IEvaluation<Gen, Data, Pheno>>, avgFitness: ReactiveProperty<number>): Observable<Genome<Gen>>;
private reproduceGenotype(evaluation, top, avgFitness);
private randomizeGenotype(evaluation, top, avgFitness);
}