Skip to content

Latest commit

 

History

History
47 lines (32 loc) · 3.13 KB

README.md

File metadata and controls

47 lines (32 loc) · 3.13 KB

Genetics4j

pipeline status

Dynamic XML Badge

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.

Features

  • 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 :)

Documentation and Quickstart

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

Examples

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

License

Everything is under Apache License Version 2.0