R-NSGA-II or Reference Point Based NSGA-II proposed by Kalyanmoy Deb et al.
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.
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>
The following results were found based on the following parameter settings.
For Binary Problem
- populationSize = 100;
- maxEvaluations = 10000 * populationSize;
- SinglePointCrossover(0.9)
- BitFlipMutation(0.001)
For Double Problem
- populationSize = 100;
- maxEvaluations = 10000 * populationSize;
- SBXCrossover(0.9, 10.0)
- PolynomialMutation(0.01, 20.0)
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 |
This project implements and the R-HV and R-IGD quality attributes
- R-HV: Hypervolume by using R-Metric
- R-IGD: Inverted Generational Distance by using R-Metric
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 generating a distributable version, run:
mvn deploy
Feel free to fork this project, work on it and then make a pull request.
Feel free to create issues here as you need