Java library for genetic algorithms, genetic programming, and multi-objective optimization
Top 42.3% on SourcePulse
Jenetics is a comprehensive Java library for implementing various evolutionary algorithms, including Genetic Algorithms, Genetic Programming, Grammatical Evolution, and Multi-objective Optimization. It's designed for researchers and developers needing a robust, flexible, and modern Java-based framework for complex optimization tasks, offering seamless integration with the Java Stream API.
How It Works
Jenetics employs a clear separation of evolutionary concepts (Gene, Chromosome, Genotype, Population, fitness Function) and utilizes an "EvolutionStream" for executing evolution steps. This stream-based approach, leveraging the Java Stream API, allows for functional-style programming and efficient parallelization of evolutionary processes. The library is highly configurable, enabling fine-tuning of evolutionary operators, selection mechanisms, and execution environments.
Quick Start & Requirements
./gradlew jar
).Highlighted Details
EvolutionStream
.jenetics.xml
) and extended GA operations (jenetics.ext
).Maintenance & Community
The project is actively maintained by Franz Wilhelmstötter, with numerous academic citations and integrations into various research projects and benchmarks (e.g., SPEAR, Renaissance Suite, APP4MC).
Licensing & Compatibility
Licensed under the Apache License, Version 2.0. This permissive license allows for commercial use and integration into closed-source projects.
Limitations & Caveats
While powerful, the library requires a solid understanding of evolutionary algorithms and Java 21+. The "experimental" .NET port may have limitations.
4 days ago
1 day