Skip to content

bmahe/Genetics4J

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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