alleles
is purely functional highly flexible scala library for genetic algorithms
-
Easy in use
You don't have to know how genetic algorithms work, if you know what you can use one for.
alleles
allows you to callGeneticAlgorithm.evolve
directly with standard or custom set of operatorsGeneticAlgorithm.evolve
- for simple sequential evolution of generation for certain number of iterationsGeneticAlogrithm.par.evolve
- for parallel sequential evolution of generation for certain number of iterationsGeneticAlgorithm.stream.evolve
- for evolving initial population as continuous stream of evolved ones
-
Elastic for user needs
You are no longer restricted with byte arrays or sequence of doubles. With support of type classes
alleles
allows you to use genetic algorithm with any data type you want: Books, Shapes, Colors as well as any already existing model from your domain without need of nasty adapters or modifications. -
Purely functional and highly expandable
alleles
enforces immutability which increases code readability and allows efficient caching. It is also built with modular and extensible architecture, so users can easily extend any genetic algorithm or operator for particular needs. -
Fast and optimized
Using scala parallel collections and streaming libraries , like
akka-streams
it is possible to use many genetic operators in parallel and asynchronous way with no-cost transition between them.