This is the second major release of the hal-cgp library.
It contains the following changes:
New features
- Provide possibility to restrict local search to `k` best individuals 160
- Track parent id in offsprings, i.e., cloned individuals, to allow the reconstruction of full lineages 168
- New logic for mutation of genes: instead of mutating the same number of genes in each offspring, the number of mutations is now sampled from a distribution 180
- Allow multiple parameters for parametrized nodes 191
- Sphinx-powered documentation 181 , 188 , 189 , 200 , 205 , 218 , 220 , 223 , 234
- Extend cache decorator with functional equivalence checking 207
- Use norm clipping instead of value clipping to avoid changing the direction of the gradient in local search 210
- Make sure user-set attributes of individuals are copied to offspring to allow consistent recording 222
- New node: if/else operator to support, for example, piecewise target functions 231
- New Examples: 227 (minimal example), 230 (using multiple genomes), 231 (using if/else node)
- Add option to limit number of fitness evaluations instead of number of generations 238
- Add functionality to reorder the nodes in the parents genome(s) before creating offspring 239
Bugfixes
- Avoid parameters being reininitialized in `Genome.mutate()` 213
- Fix broken `Node.repr` 233
Maintenance
- Improvements in test suite 161 , 171 , 176 , 179 , 190 , 193
- Simplification of internal routines 169, 170
- Simplification of the `Node` class 178
- Removal of crossover operation and breeding pool 195
- Remove unused function `_is_active_input_gene` 211
- Use "logical and", and reuse existing functions in helper functions of `Genome` 212
- Sort imports consistently 219
Contributors (in alphabetical order)
Jakob Jordan
Henrik Mettler
Maximilian Schmidt