gres-ufpr / r-nsga-ii

R-NSGA-II or Reference Point Based NSGA-II proposed by Kalyanmoy Deb et al.
1 stars 2 forks source link
jmetal multiobjective-optimization nsga-ii nsgaii optimization-algorithms r-hv r-igd r-metric r-nsga-ii reference-point

R-NSGA-II

R-NSGA-II or Reference Point Based NSGA-II proposed by Kalyanmoy Deb et al.

Status

Build Status codecov

References

This implemention is based on the following paper:

Deb, Kalyanmoy, and J. Sundar. "Reference point based multi-objective optimization using evolutionary algorithms." In Proceedings of the 8th annual conference on Genetic and evolutionary computation, pp. 635-642. ACM, 2006.

How to install

This project uses GitHub as a Maven Repository. Then you have just add the following section to your repositories tag in pom.xml

<repositories>
    <repository>
        <id>mvn-repo</id>
        <url>https://github.com/gres-ufpr/mvn-repo/raw/master/releases</url>
        <releases>
            <enabled>true</enabled>
        </releases>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
</repositories>

Then add a dependency into tag of your pom.xml

<dependency>
    <groupId>ufpr.gres</groupId>
    <artifactId>r-nsga-ii</artifactId>
    <version>3.0.0</version>
</dependency>

Simulation Results

The following results were found based on the following parameter settings.

For Binary Problem

Results

Problem Encoding ε = 0.01 ε = 0.001 ε =0.0001
Knapsack Binary Solution
ZDT 1 Double Solution
ZDT 2 Double Solution
ZDT 3 Double Solution
DTLZ 2 Double Solution

R-Metric: R-HV and R-IGD

This project implements and the R-HV and R-IGD quality attributes

Both of them were implemented based on the paper entitled "R-Metric: Evaluating the Performance of Preference-Based Evolutionary Multi-Objective Optimization Using Reference Points" by Ke Li, Member, IEEE, Kalyanmoy Deb, Fellow, IEEE, and Xin Yao, Fellow, IEEE

Sets and Virtual solutions Metrics

If you want to execute, run the RMetricRunner class

For Developers

For generating a distributable version, run:

mvn deploy

Contributions

Feel free to fork this project, work on it and then make a pull request.

Questions or Suggestions

Feel free to create issues here as you need