Is it possible to get some repeated values of non-dominated solutions in a pareto optimal solution set?

3 views (last 30 days)
I tried to solve an unconstrained multi-objective problem through a Non- Dominated Sort Evolutionary Algorithm (NDSEA) and got some repeated values of non-dominated solutions in the pareto optimal solutions set. I am now confused about the repeated values of non-dominated solutions in the optimal data set of solutions. Is it alright to have some repeated non-dominated solutions in the pareto optimal solution set? First 10 solutions of my pareto optimal solution set are attached in the screenshot file.
Please help me to clear the confusion that i have.

Accepted Answer

Alan Weiss
Alan Weiss on 20 Jan 2021
It can be difficult for solvers to remove duplicate points themselves. Feel free to do so yourself after the solver finishes.
Alan Weiss
MATLAB mathematical toolbox documentation
  4 Comments
Syed Shahed
Syed Shahed on 26 Jan 2021
Edited: Syed Shahed on 26 Jan 2021
Dear Alan,
Is there any other approach except this one to remove those duplicates from the solutions of gamultiobj?
This method seems complex enough for me to implement.
Does it possible to have some duplicate solutions shown by gamultiobj due to limited number of solutions?
I checked the problem with NSGA 2 and it didn't include a single duplicate of solution.
Can you please suggest any other way of removing duplicates from gamultiobj result?
My objective function:
function f=MOGA_a(g)
x1=g(1);
x2=g(2);
x3=g(3);
x4=g(4);
x5=g(5);
x6=g(6);
f=[];
f(1)=-(671.17-(1107.08*x1)-(1.03*x2)-(8.49*x4)+(13.27*x6)-(2.11*(x1*x2))-(35.74*(x1*x3))-(42.93*(x1*x6))+(0.028*(x2*x4))+(0.89*(x3*x6))+(2666.77*(x1*x1)));
f(2)=33.17+(0.023*x5)+(1.53*x6)-(1.49*x1*x3)-(0.12*x1*x4)-(1.87*x1*x6)+(0.00084*x2*x4)-(0.0029*x2*x5)-(0.0051*x2*x6)+(0.0086*x3*x4)+(0.066*x3*x5)+(0.061*x3*x6)+(0.011*x4*x5)-(0.014*x4*x6)-(0.081*x5*x6)+(8.23*x1*x1)-(0.00019*x2*x2)-(0.029*x3*x3)+(0.0027*x4*x4)+(0.079*x6*x6);
end
Bound:
lb = [0.1 200 2 60 2 5];
ub= [0.5 320 10 90 8 11.67];
Output:
Alan Weiss
Alan Weiss on 26 Jan 2021
I don't know of another approach. I think that the clumpthem function in the post I linked is relatively straightforward, and you can modify it for your case. Basically, you sort rows based on, say, objfun1, and pretty much any duplicate you find there is a duplicate, as you can check by doing an isequal row by row.
Alan Weiss
MATLAB mathematical toolbox documentation

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!