MATLAB: Difference in function evaluations between ga and gamultiobj

evaluationsgagamultiobjgenetic algorithmoptimization

Hi everyone,
I currently have an optimization problem with 18 variables, Lower and upper bounds, as well as one constraint function specifying that -x(9)+x(10)<=0 (inequality). I normally use a population of 200, and 100 generations, however once I started noticing issues, I reduced the number of generations to 3.
When I run ga, and output the number of function evaluations I get 2600. This seems way too high as my function evaluations should equal to Population+(Population*Generations).
When I run gamultiobj, but I only calculate a single objective (I normally calculate 2 objectives but for the purpose of this comparison I changed it to 1), I get 800 function evaluations which seems correct.
Is there a fundamental difference between ga and gamultiobj that would explain the large discrepancy between the number of evaluations needed? The 2600 does not make sense to me…
Thanks in advance!

Best Answer

You are probably specifying your inequality constraint as a nonlinear constraint. If you specify it as a linear constraint, then ga will take many fewer iterations and generations.
Alan Weiss
MATLAB mathematical toolbox documentation