MATLAB: Genetic Algorithm stops after few iterations when constraints are added

gaga constraint

HI
I have been working on a genetic algorithm for optimizing the calculation of power loss and volume of my converter. The algorithm works fine when no constraints are added. But once, I add the constraints the algorithm stops in a second after 3-4 iterations with the following error:
Infeasible individuals are present in the final population.
Optimization terminated: average change in the spread of Pareto solutions less than options.FunctionTolerance.
Constraints are not satisfied within constraint tolerance.
I am using GA multi-obj with mixed integers. I do understand the constraints with GA for using mixed-integers and equality constraints. But I am using inequality constraints.
dins_max = dins_min – dins_cal ;
Temp_rise_max = Temp_rise-150;
c = [dins_max,Temp_rise_max];
ceq = [];
Where I want my dins_cal >dins_min and Temp_rise<150. I have tried to workaround every method given in the GA matlab documentation. But nothing helps. and here is how i call:
fitnessFunction= @DAB_loss_volume_cal; % Function handle to the fitness function
numberOfVariables = 8; % Number of decision variables
populationSize = 100;
stallGenLimit = 100;
generations = 200;
ParetoFraction = 0.85;
lb = [10e-3, 1, 1,0.1,2e6,100e3,1,0.5e-6];
ub = [100e-3, 50, 30,0.42, 4e6,300e3,100, 5e-6];
Bound = [lb; ub]
options = gaoptimset('PopulationSize',populationSize,…
'CreationFcn', @int_pop,…
'MutationFcn', @int_mutation,…
'CrossoverFcn',@int_crossoverarithmetic,…
'StallGenLimit', stallGenLimit,…
'Generations', generations,…
'PopulationSize',populationSize,…
'ParetoFraction',ParetoFraction,…
'PopInitRange', Bound,…
'PlotFcns',@gaplotpareto);
[x, f, exitflag, output, population, score] = gamultiobj(fitnessFunction,…
numberOfVariables, [], [], [], [], lb, ub,@constraintfile, options);
variables [2,3,6,7] are integers
This is the output:
output =
struct with fields:
problemtype: 'nonlinearconstr'
rngstate: [1Ă—1 struct]
generations: 102
funccount: 10302
message: 'Optimization terminated: average change in the spread of Pareto solutions less than options.FunctionTolerance.↵Constraints are not satisfied within constraint tolerance.'
maxconstraint: 568.3102
averagedistance: 0
spread: 0
exitflag = -2
Any help would be appreciated.
Thanks
Sneha

Best Answer

You cannot run gamultiobj with integer constraints. Sorry.
Alan Weiss
MATLAB mathematical toolbox documentation
Related Question