-
Notifications
You must be signed in to change notification settings - Fork 1
/
CHANGELOG
94 lines (74 loc) · 3.58 KB
/
CHANGELOG
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
=== 0.2.0
* Fixes:
* various bugfixes
* fixed hillclimber acceptance [Florian Pilz]
* fixed Edge Recombination [Florian Pilz]
* added SP_k problem to binary benchmark functions
* added EvoSynth.rand_element to retrieve a random element from a array
* added EvoBench (benchmarking for evolutionary algorithms) module:
* diversity calculations (distance, entropy and subsequence)
* mean, median, variance calculations for array/population
* t-test to determine statistical significance
* Comparator, to compare the performance of two or more Evolvers
* TestRun: runs a evolver with a given configuration (n times) and collects the produced data
* Experiment class: run a experiment with a experimental plan and compare different parameters
* FullFactorialPlan : full factorial experimental plan
* export
* evosynth has its own gnuplot class now, no need for a external gem anymore
(removed dependency on gnuplot, gruff and rmagick gems)
* moved exporter (console, csv, gnuplot) to Export module and directory
* added simple HTML exporter: call it csv-2-html if you want ;-)
* various changes and improvements:
* added genome mixin, ArrayGenome and BinaryGenome include it
* refactoring of profile:
- renamed Profile to Configuration
- constructor now yield self, to make scoped block initialisation possible
- removed unnessesary util function: create_console_logger (not needed anymore)
* refactoring of evolver:
- moved Evolver into EvoSynth (core) module
- constructor now yield self, to make scoped block initialisation possible
- removed ConfigurationUsingEvolver and RunnableEvolver mixin's and merged code
into Evolver
- added a couple of methods, which need to be implemented by concrete evolvers
- renamed a lot of methods
* refactored logging features:
- constructor now yield self, to make scoped block initialisation possible
- added DataFetcher and DataSet classes
- removed output module
- moved logger to core and export to its own module (see above)
- renamed #clear_data to #clear_data!
- added factory method, which should cover the most common use-cases#
- all exporter now use datasets, instead of logger (direct use of dataset)
=== 0.1.0
- Initial Release -
* classes for individuals, populations, algorithm configurations, genomes
* support for custom randomizer
* meta operators: proportional, sequentional and conditional combined operators
* logging support with exporter to gnuplot, gruff and csv
* many predefined fitness functions
* most common evolutionary algorithms:
* hillclimber (single individual and population based)
* standard genetic algorithm, steady state GA
* memetic algorithm
* evolution strategies (adaptive, selfadaptive and derandomized)
* local search (hillclimber, threshold acceptance, simulated annealing, great deluge, record-to-record travel)
* coevolutionary algorithms (round robin and balanced)
* selection strategies:
* identity
* random selection
* best selection
* n-stage tournament selection
* tournament selection
* fitness proportional selection
* roulette wheel selection
* mutations:
* identity
* one gene flipping, binary mutation, efficient binary mutation
* exchange mutation, inversion mutation, mixing mutation, shifting mutation
* uniform real mutation, gauss mutation, self-adaptive gaus mutation
* recombinations:
* identity
* one-point-crossover, k-point-crossover, uniform crossover
* arithmetic crossover
* ordered recombination, partially mapped crossover, edge recombination
* global uniform crossover, global arithmetic crossover