Issue with PopulationSize in Genetic Algorithm toolbox
There is a project I wanted to use the genetic algorithm tools on and attempted to rig a basic script to test it out. However, I could not run the code because it kept giving me the following error.
Error using gaoptimset>checkfield (line 436)
Invalid value for OPTIONS parameter PopulationSize: must be a positive numeric (not a character vector).
I didn’t understand where I had specified PopulationSize as a character vector, so I used optimoptions to change PopulationSize to 50 manually. However it kept throwing me the same error.
When stepped through the program, I entered ga() and found that the default value for PopulationSize is the character vector ’50 when numberOfVariables <= 5, else 200′ which obviously isn’t a numeric value. In any case, this value is supposed to be overridden when optimoptions is used to specify a value other than the default, but it didn’t.
Am I doing something wrong or is the genetic algorithm solver broken? Code is as follows.
Further details is that I am doing this on my laptop with a copy of MATLAB R2024b downloaded on it. I have the Global Optimization toolbox installed.
% Testing Genetic Algorithm
clc, clear, close all
rng default % For reproducibility
numberOfVariables = 2;
lb = [-3,-3];
ub = [3,3];
a = 0.1;
b = 0.05; % define constant values
FitnessFunction = @(x) test_fitness(x,a,b);
options = optimoptions("ga",PopulationSize=50);
[x,fval] = ga(FitnessFunction,2,[],[],[],[],lb,ub,[],options);There is a project I wanted to use the genetic algorithm tools on and attempted to rig a basic script to test it out. However, I could not run the code because it kept giving me the following error.
Error using gaoptimset>checkfield (line 436)
Invalid value for OPTIONS parameter PopulationSize: must be a positive numeric (not a character vector).
I didn’t understand where I had specified PopulationSize as a character vector, so I used optimoptions to change PopulationSize to 50 manually. However it kept throwing me the same error.
When stepped through the program, I entered ga() and found that the default value for PopulationSize is the character vector ’50 when numberOfVariables <= 5, else 200′ which obviously isn’t a numeric value. In any case, this value is supposed to be overridden when optimoptions is used to specify a value other than the default, but it didn’t.
Am I doing something wrong or is the genetic algorithm solver broken? Code is as follows.
Further details is that I am doing this on my laptop with a copy of MATLAB R2024b downloaded on it. I have the Global Optimization toolbox installed.
% Testing Genetic Algorithm
clc, clear, close all
rng default % For reproducibility
numberOfVariables = 2;
lb = [-3,-3];
ub = [3,3];
a = 0.1;
b = 0.05; % define constant values
FitnessFunction = @(x) test_fitness(x,a,b);
options = optimoptions("ga",PopulationSize=50);
[x,fval] = ga(FitnessFunction,2,[],[],[],[],lb,ub,[],options); There is a project I wanted to use the genetic algorithm tools on and attempted to rig a basic script to test it out. However, I could not run the code because it kept giving me the following error.
Error using gaoptimset>checkfield (line 436)
Invalid value for OPTIONS parameter PopulationSize: must be a positive numeric (not a character vector).
I didn’t understand where I had specified PopulationSize as a character vector, so I used optimoptions to change PopulationSize to 50 manually. However it kept throwing me the same error.
When stepped through the program, I entered ga() and found that the default value for PopulationSize is the character vector ’50 when numberOfVariables <= 5, else 200′ which obviously isn’t a numeric value. In any case, this value is supposed to be overridden when optimoptions is used to specify a value other than the default, but it didn’t.
Am I doing something wrong or is the genetic algorithm solver broken? Code is as follows.
Further details is that I am doing this on my laptop with a copy of MATLAB R2024b downloaded on it. I have the Global Optimization toolbox installed.
% Testing Genetic Algorithm
clc, clear, close all
rng default % For reproducibility
numberOfVariables = 2;
lb = [-3,-3];
ub = [3,3];
a = 0.1;
b = 0.05; % define constant values
FitnessFunction = @(x) test_fitness(x,a,b);
options = optimoptions("ga",PopulationSize=50);
[x,fval] = ga(FitnessFunction,2,[],[],[],[],lb,ub,[],options); genetic algorithm, global optimization toolbox, matlab MATLAB Answers — New Questions









