Skip to content

Original readme.md

Simon Girardin edited this page Jun 8, 2020 · 1 revision

NSGA-II

an NSGA-II implementation using Java

Original Authors of the Paper: Kalyanmoy Deb, Amrit Pratap, Sameer Agarwal, T. Meyarivan

links to original contents:

note: this implementation of NSGA-II algorithm is in pure reference to the original published paper. This is not an effort to convert the originally implemented C code in Java. The original C code by the authors has not be referred to while writing this implementation.

Dependency: Java( >= 13), JFreeChart(1.5.0), JCommon(1.0.24)

Please Note:

This is v3 of the algorithm implementation. This reference implementation has been updated to be:

  • Used as package.
  • Much more generic, customizable and hence more powerful.
  • More efficient than the previous version.

The reference v2 implementation can be found here. The README of that implementation can be found here.

The reference v1 implementation can be found here. The README of that implementation can be found here.

note: Code commenting of v3 is under progress and not all code is commented properly. This shall be done shortly. In the mean time, if you are unable to understand any part of the code, feel free to open an issue about it and I shall try to resolve it.

Documentation

This is a fully customizable implementation of the NSGA-II algorithm, made as generic as possible. This documentation assumes you have basic understanding of the NSGA-II algorithm. Apart from the core concepts of the algorithm, everything else in this package can be implemented as per the user's choice and plugged into the algorithm dynamically.

By default, the package provides a default implementation of every plugin and hence the package can be run with just one line of code as a PoC.

(new NSGA2()).run();

For more information, visit the Wiki

For full documentation, visit the Documentation Wiki.

Using it in your project

This package shall be published to maven shortly. Till then you can use the source package directly in your project.

Contributing

This project is open to pull requests and encourages new features through contribution. The contribution guidelines shall be updated shortly.

Clone this wiki locally