Minimise a fitness function using GA toolbox having variable number of variables
1 次查看(过去 30 天)
显示 更早的评论
I have an error function which I wish to minimise using GA. The error function can be a function of 1,2, 3 or many variables depending on the input given by the user. How should I write a fitness function for the GA toolbox? For example, if we have to minimise y which is a function of x, we create a separate matlab file with the command function y = abc(x) and use it in the GA toolbox. But in my case, the number of variables itself is not fixed. So how should I write such a fitness function ?
0 个评论
采纳的回答
Walter Roberson
2017-2-11
ga() always minimizes a function of one variable -- but the variable is permitted to be a vector.
For example,
F = @(x) (sum( (-x).^(0:length(x)-1) ) - 10000).^2
nvar = input('Number of variables?');
opts = optimoptions('ga', 'PlotFcn', @gaplotbestf, 'MaxGenerations', 1800);
[best_x, fval] = ga(F, nvar, [], [], [], [], [], [], [], opts)
(2 is the most interesting number of variables for the above)
2 个评论
Walter Roberson
2017-2-11
You could try
opts = optimoptions(@ga, 'PlotFcn', @gaplotbestf, 'MaxGenerations', 1800);
but I suspect that you might not have the Global Optimization Toolbox installed (or licensed perhaps) and so do not have ga. Try
which ga
to see.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Introduction to Installation and Licensing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!