MATLAB: Duplicates in Pareto frontier using gamultiobj

gamultiobjGlobal Optimization Toolboxoptimizationpareto frontier

I am using gamultiobj in the Global Optimization Toolbox to solve a knapsack problem. I use the following code:
[xbest, fbest, exitflag] = gamultiobj(@KnapsackWeightMulti, 22, [], [], [], [], ...
lb, ub, @const_knap, opts)
When I examine the xbest variable generated, which to my understanding represents the Pareto frontier of solutions, many of the solutions are duplicates. Why is this?

Best Answer

The genetic algorithm does not remove duplicate points that it finds.
I do not know how you are implementing the constraints for the problem, but I believe that this is an integer-constrained problem. It is entirely possible that gamultiobj does not have a large enough population to give you a diverse Pareto front with the constraints satisfied, or there might not be that many points on the Pareto front even with a large initial population that is well-dispersed. In other words, it is possible that the solution is, by its nature, just a few points, so gamultiobj has to have a lot of duplicates in its solution.
Alan Weiss
MATLAB mathematical toolbox documentation
Related Question