MATLAB: How to operate genetic algorithm optimization for output values in given range

fitnesslimitgagenetic algorithmoptimization

Hello!
I've got a problem when I want to optimize a fitted function with three variables. The output after the first iteration is already in a non-feasible range. A realistic output for my problem would be anywere above 0.5 but after the first iteration step it already gives me somewhat -4e14.
I now don't really now how to fix this problem as the FitnessLimit I set at 0.5 will never be able to work. How do I fix such a problem? I thought of adding an option which allows to operate the optimization in much smaller steps of output values to be able to reach the limit…
Thanks in advance!
opts = optimoptions('ga', 'PlotFcn',{@gaplotbestf,@gaplotstopping}, 'FitnessLimit', 0.5)
[k,fval, exitflag, output] = ga(fh,3,[],[],[],[],[LB(1) LB(2) LB(3)], [UB(1) UB(2) UB(3)],[], opts)

Best Answer

I have two different but related comments:
1. If you have a feasibility constraint such as certain outputs have to be in a certain range, then include those constraints as nonlinear inequalities.
2. I think that you would have better luck if you would change your solver from ga to either fmincon (supposing that you have a smooth objective function) or pattersearch (supposing that your objective function is not smooth). See Table for Choosing a Solver.
Alan Weiss
MATLAB mathematical toolbox documentation