Biblioteka umożliwiająca wykorzystanie algorytmów genetycznych do obliczeń.
Z założenia wszystko może być w niej genem. Prosta wartość liczbowa (int),
czy też jakaś bardziej skomplikowana struktura.
Przykładowe wywołanie programu:
#include "gene.h"
#include "chromosome.h"
#include "generation.h"
#include "generator/bitGenerator.h"
#include "selection/rouletteSelection.h"
#include "selection/linearRankSelection.h"
#include "crossover/crossover.h"
#include "mutation/mutation.h"
#include "fitness/wsti.h"
#include "algorithm.h"
#include "condition/condition.h"
#include "condition/generationLimitCondition.h"
using namespace genetic ;
int main () {
typedef Gene < bool > _Gene ;
typedef Chromosome < _Gene > _Chromosome ;
typedef WSTI < _Chromosome > _Fitness ;
typedef LinearRankSelection < _Chromosome > _Selection ;
typedef Crossover < _Chromosome > _Crossover ;
typedef Mutation < _Chromosome > _Mutation ;
typedef generator :: BitGenerator < _Chromosome > _Generator ;
typedef Algorithm < _Chromosome , _Selection , _Crossover , _Mutation , _Fitness > _Algorithm ;
typedef GenerationLimitCondition < _Chromosome > _Condition ;
const int chromosomeSize = 10 ;
const int generationSize = 500 ;
const double crossoverChance = 0.75 ;
const double mutationChance = 0.01 ;
_Fitness fitness ( 0.5 , 2.5 );
_Generator generationGenerator ( generationSize , chromosomeSize );
_Algorithm algorithm ( generationGenerator , fitness , crossoverChance , mutationChance );
_Condition condition ( 10000 );
algorithm . searchForResult ( condition );
return 0 ;
}
Linki