how can i save every generation's best position using ga
14 次查看(过去 30 天)
显示 更早的评论
i'm using the ga function in matlab, i want to save every generation's best position
how can i do that.becanse i cannot find
[x,fval,exitflag,output,population,scores] = ga(fitnessfcn,nvars,...)
return such values
1 个评论
Tsuwei Tan
2021-4-20
options = optimoptions('ga',..'OutputFcns',@ga_save_each_gen);
I did a simple funciton ga_save_each_gen to do so.
function [state,options,optchanged]=ga_save_each_gen(options,state,flag)
Score_gen=state.Score;
Population_gen=state.Population;
Generation_gen=state.Generation;
optchanged=[];
save(['gen_' num2str(Generation_gen,'%.4d') '.mat'],'Score_gen','Population_gen','Generation_gen')
end
回答(1 个)
A Jenkins
2014-3-28
Use gaoptimset to change the options. Display and PlotFcns will show some detail. You may also want to look at the OutputFcns option where you can write your own custom function to collect data.
A = [1 1; -1 2; 2 1];
b = [2; 2; 3];
lb = zeros(2,1);
ga_options=gaoptimset('Display','iter','PlotFcns',@gaplotbestf);
[x,fval,exitflag,output,population,scores] = ga(@lincontest6,...
2,A,b,[],[],lb,[],[],ga_options);
3 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Genetic Algorithm 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!