jenetics/jenetics
Jenetics - Genetic Algorithm, Genetic Programming, Grammatical Evolution, Evolutionary Algorithm, and Multi-objective Optimization
What it solves
Jenetics is a Java library designed to solve optimization problems using nature-inspired algorithms. It provides a framework for minimizing or maximizing a fitness function to find the best possible solution among a vast search space, without requiring the user to manually tweak the algorithm's internal mechanics.
How it works
The library implements several evolutionary computation techniques, including Genetic Algorithms (GA), Evolutionary Algorithms, Grammatical Evolution, Genetic Programming (GP), and Multi-objective Optimization. It uses a structured approach where problems are defined by a Genotype (the representation of a solution), a Phenotype (the actual solution), and a fitness Function (the measure of success).
Unique to Jenetics is the EvolutionStream, which implements the Java Stream interface. This allows developers to treat the evolutionary process as a stream of generations, enabling the use of standard Java Stream API operations (like limit or collect) to control the execution and retrieve results.
Who it’s for
It is intended for Java developers who need to implement complex optimization, search, or symbolic regression tasks within their applications.
Highlights
- Java Stream Integration: Uses
EvolutionStreamto make evolutionary processes compatible with the Java Stream API. - Comprehensive Toolkit: Supports multiple paradigms including Genetic Programming and Grammatical Evolution.
- Multi-objective Optimization: Includes capabilities for solving problems with multiple competing goals.
- Modular Design: Separated into core, extension, and programming modules for flexible deployment.
Related
- Project
- Project
- Project
- Project
- Project