Genetics4j is an open source library for Evolutionary Algorithms. This includes Genetic Algorithm, Genetic Programming and more!
See the website https://genetics4j.org for more information, quickstart and examples.
- Genetic Algorithms
- Strongly Typed Genetic Programming
- Multi-Objective Optimization support with algorithms such as NSGA2 and SPEA2
- NeuroEvolution of Augmenting Topologies, also known as NEAT
- Supports multiple replacement strategies
- Configurable and user friendly
- Multi-GPU and Multithreaded based implementations for faster execution
- Clear separation between the problem definition and its execution model
- Enhanced test coverage with mutation testing :)
There are various ways to learn more about Genetics4j:
- There is a Quickstart guide to help you get up and running in minutes!
- Each module contains its own documentation
- Javadocs are built for the whole project as well as for each individual modules. They can be found under Project Reports
- Various additional reports are also published under Project Reports, including changelogs and tests results and coverage
There are a few examples with this library. Namely:
- Clustering where we attempt to find the best way to cluster data and compare the different approaches
- Mixture Models where we attempt to find the best way to cluster data using mixture models with the help of GPUs
- 6 ways to handle your bloat issues where we explore different methods from the Multi Objective Optimization field to find the best equation to represent a set of data points. This provides us a way to find a good trade-off between long and precise equations and shorter but less precise equations
- Fitness Sharing where we present one technique to reduce the likelihood to get stuck in a local optimum and explore a great set of diverse solutions
- Impelementing XOR with NEAT where we implement a XOR gate with NeuroEvolution of Augmenting Topologies (NEAT)
- Evolutionary Painting with GPUs where we use genetic algorithms to generate whole paintings. We also use GPUs for faster computations
Everything is under Apache License Version 2.0