opt4j
opt4j copied to clipboard
Modular Java framework for meta-heuristic optimization
Opt4J - Modular Java framework for meta-heuristic optimization
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.
Java Versions
Starting with Release 3.4, Opt4J requires Java 21 (LTS) or higher. Opt4J version 3.3 and lower is Java 11 compatible.
Usage
Opt4J can be used as standalone Swing-based application or as a library.
Linux/Unix
Run:
./start.sh
Windows
Run:
./start.bat
Developer
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.
Contributing
- 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
History
Opt4J was formerly hosted at https://sourceforge.net/projects/opt4j/
Credits
Brought to you by
- Martin Lukasiewycz
- Felix Reimann
- Michael Glaß
- Fedor Smirnov
This project uses
- google/guice
- sat4j (in subproject opt4j-satdecoding)
License
Opt4J uses MIT License.