Remove some not used namespace declarations.
[genetic.git] / src / main.cpp
1 #include "gene.h"
2 #include "chromosome.h"
3 #include "generation.h"
4 #include "generator/bitGenerator.h"
5
6 #include "selection/rouletteSelection.h"
7 #include "selection/linearRankSelection.h"
8 #include "crossover/crossover.h"
9 #include "mutation/mutation.h"
10 #include "fitness/wsti.h"
11
12 #include "algorithm.h"
13 #include "condition/condition.h"
14 #include "condition/generationLimitCondition.h"
15
16 using namespace genetic;
17
18 int main() {
19     typedef Gene<bool> _Gene;
20     typedef Chromosome<_Gene> _Chromosome;
21
22     typedef WSTI<_Chromosome> _Fitness;
23     typedef LinearRankSelection<_Chromosome> _Selection;
24     typedef Crossover<_Chromosome> _Crossover;
25     typedef Mutation<_Chromosome> _Mutation;
26
27     typedef generator::BitGenerator<_Chromosome> _Generator;
28     typedef Algorithm<_Chromosome, _Selection, _Crossover, _Mutation, _Fitness> _Algorithm;
29     typedef GenerationLimitCondition<_Chromosome> _Condition;
30
31     const int chromosomeSize = 10;
32     const int generationSize = 500;
33     const double crossoverChance = 0.75;
34     const double mutationChance = 0.01;
35
36     _Fitness fitness(0.5, 2.5);
37     _Generator generationGenerator(generationSize, chromosomeSize);
38
39     _Algorithm algorithm(generationGenerator, fitness, crossoverChance, mutationChance);
40     _Condition condition(10000);
41
42     algorithm.searchForResult(condition);
43
44     return 0;
45 }