EvoLib is an open source implementation of NSGA-II, NSGA-III and Unified NSGA-III (U-NSGA-III). NSGA-II is a well known Evolutionary Multiobjective Optimization (EMO) algorithm than can handle up to two objectives efficiently. NSGA-III is a widely used algorithm for handling multi (2, 3) and many (3 to 20) objectives. However, NSGA-III was shown to be less efficient with single objective optimization problems. U-NSGA-III is an improved version of NSGA-III that enhances the performance of the original algorithm in single objective optimization problems while maintaining its high performance in multi and many objective optimization problems.
- Tx2Ex: An open source mathematical expressions parser (Apache L2 License)
- Apache Commons Lang3 (Apache L2 License)
- Single, multi and many objectives
- XML inputs
- Layered reference directions
- Generate detailed simply formatted outputs
- Generate detailed Matlab plotting script
- Easily extensible pure object oriented design
- Detailed comments provided with source code
To modify EvoLib directly, clone it to your local file system using Git, then have fun. A good start point is to run optimization.SampleScript (a sample script for optimization problems involving only real-valued variables). If you want to use EvoLib in your own project as a dependency, the recommended approach is to install your local clone of EvoLib into your local Maven repository and use it from wherever as a Maven dependency. The latter approach is usually the case if your problem involves custom variables and consequently needs custom operators. For a detailed example on how to setup and develop such projects, take a look at EvoLib-Demo (https://github.com/000haitham000/evolib-demo)
Java SE Development Kit (JDK) 8 or later (http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html)
We use SemVer for versioning.
Haitham Seada (http://haithamseada.com/)
This project is licensed under the Apache License Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0). A simple explanation of the license in layman's terms can be found at (http://www.apache.org/foundation/license-faq.html#WhatDoesItMEAN).