GA optimisation how to find maxima instad of minima.

2 views (last 30 days)
Greetings, I have the following code;
I use "ga" of Global Optimisation Toolbox and it works.
My only problem here is that the ga is trying to find the minima where as I want to find the maxima. How can I set the ga optimisation to find the maxima of y(1) ?
(The only way I found is to put a minus in the y(1) equation.)
SquareF.m
function y = SquareF(x)
%y(1) = (x+2)^2 - 10;
Lt = 10; %Total Length
A = Lt*x; % Side A
B = Lt-A; % Side B
y(1) = A*B;
rL = A+B;
end
Optim.m
clc; clear all; close all
FitnessFunction = @SquareF;
numberOfVariables = 1;
A = []; b = [];
Aeq = []; beq = [];
lb = 0;
ub = 1;
options = optimoptions(@ga,'PlotFcn',{@gaplotpareto,@gaplotscorediversity});
[x,Volume] = ga(FitnessFunction,numberOfVariables,A,b,Aeq,beq,lb,ub)

Accepted Answer

Jan
Jan on 18 Nov 2021
(The only way I found is to put a minus in the y(1) equation.)
This is the perfect solution already.
  2 Comments
BioZ
BioZ on 18 Nov 2021
Ok, I thought perhaps there was an option that would dictate ga function to find minama or maxima.
Jan
Jan on 18 Nov 2021
All optimizers are minimizers. This is a convention without a deeper meaning. Changing the sign of the cost function is a cheap solution - equivalent to cups for left-handers.

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!