genetic-algorithm
Version:
Gentic Algorithm TypeScript implementation, customisable
58 lines (48 loc) • 1.13 kB
TypeScript
interface ICreature {
clone() : ICreature;
randomize() : void;
score:number;
}
interface ICreaturePair {
creature1:ICreature;
creature2:ICreature;
}
interface IRandomizer {
random() : number;
randomInt(max:number) : number;
randomBetween(from:number, to:number, step:number) : number;
}
interface ICreatureBuilder {
execute() : ICreature;
}
interface IFitnessFunction {
execute(creature:ICreature) : number;
}
interface IMutationOperator {
execute(creature:ICreature) : ICreature;
}
interface ICrossoverOperator {
execute(a:ICreature, b:ICreature) : ICreaturePair;
}
interface IEvolver {
evolve() : ICreature;
}
interface IPreselection {
preselect(population:IPopulation) : IPopulation;
}
interface IPopulation {
findBest() : ICreature;
creatures:ICreature[];
}
interface ISettings {
mutationOperator:IMutationOperator;
crossoverOperator:ICrossoverOperator;
creatureBuilder:ICreatureBuilder;
fitnessFunction:IFitnessFunction;
populationSize:number;
iterations:number;
mutationProbability:number;
crossoverProbability:number;
ntour:number;
onIteration?:(i?:number)=>void;
}