Opt4J is an open source Java-based framework for evolutionary computation. It contains a set of (multi-objective) optimization algorithms such as evolutionary algorithms (including SPEA2 and NSGA2), differential evolution, particle swarm optimization, and simulated annealing. The benchmarks that are included comprise ZDT, DTLZ, WFG, and the knapsack problem.
The goal of Opt4J is to simplify the evolutionary optimization of user-defined problems as well as the implementation of arbitrary meta-heuristic optimization algorithms. For this purpose, Opt4J relies on a module-based implementation and offers a graphical user interface for the configuration as well as a visualization of the optimization process.
Starting with Release 3.4, Opt4J requires Java 21 (LTS) or higher. Opt4J version 3.3 and lower is Java 11 compatible.
Opt4J can be used as standalone Swing-based application or as a library.
Run:
./start.sh
Run:
./start.bat
Opt4J uses Gradle. Run
./gradlew tasks
to show all available tasks.
Use
./gradlew eclipse
to create the required .project and .classpath files to import the project in Eclipse.
Use
./gradlew run
to execute the application.
- Fork it!
- Create your feature branch:
git checkout -b my-new-feature
- Commit your changes:
git commit -am 'Add some feature'
- Push to the branch:
git push origin my-new-feature
- Submit a pull request :D
Opt4J was formerly hosted at https://sourceforge.net/projects/opt4j/
Brought to you by
- Martin Lukasiewycz
- Felix Reimann
- Michael Glaß
- Fedor Smirnov
This project uses
- google/guice
- sat4j (in subproject opt4j-satdecoding)
Opt4J uses MIT License.