GA optimisation how to find maxima instad of minima.
2 views (last 30 days)
Show older comments
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)
0 Comments
Accepted Answer
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
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.
More Answers (0)
See Also
Categories
Find more on Genetic Algorithm in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!