how can i save every generation's best position using ga

조회 수: 4 (최근 30일)
li jian
li jian 2014년 3월 28일
댓글: Tsuwei Tan 2021년 4월 20일
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
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
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
li jian
li jian 2014년 3월 31일
Hi Jenkins,I have solved the problem with the help of the custom plot function in PlotFcns option
zainab1996
zainab1996 2019년 1월 1일
can you help with the code plz, i have the same problem

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Genetic Algorithm에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by