Genetics4j is an open source library for Evolutionary Algorithms. This includes Genetic Algorithm, Genetic Programming and more!


  • Genetic Algorithms

  • Strongly Typed Genetic Programming

  • Multi-Objective Optimization support with algorithms such as NSGA2 and SPEA2

  • Supports multiple replacement strategies

  • Configurable and user friendly

  • Multithreaded implementation for faster execution

  • Clear separation between the problem definition and its execution model

  • Enhanced test coverage with mutation testing :)

The project is located at and is licensed under the Apache License v2.0.


Genetics4j encompass multiple aspects of the Evolutionary Algorithms family through different modules:

  • core: Contains the core features for Genetic Algorithms

  • gp: Contains features related to Genetic Programming

  • moo: Contains features related to Multi-Objective Optimization

  • samples: Contains different examples to highlight the different features and how to use them

  • extras: Extra set of classes which can be useful but do not necessarily fit in other modules. Example: There is a CSV Evolution listener to record population over time along with any extra configurable attributes


There are various ways to learn more about Genetics4j:

  • There is a Quick Start 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