-
大小: 1KB文件類型: .rar金幣: 2下載: 0 次發(fā)布日期: 2021-06-04
- 語言: 其他
- 標(biāo)簽:
資源簡(jiǎn)介
參數(shù)自適應(yīng)差分進(jìn)化算法SACPMDE.rar參數(shù)自適應(yīng)差分進(jìn)化算法SACPMDE.rar參數(shù)自適應(yīng)差分進(jìn)化算法SACPMDE.rar

代碼片段和文件信息
function?[trbjbmn]?=?SACPMDE(VTRXVminXVmaxDNPfname)
%?參數(shù)自適應(yīng)差分進(jìn)化算法對(duì)Rastrigrin函數(shù)起作用
%?aa?????當(dāng)前計(jì)算到第幾次
%?VTR????優(yōu)化的目標(biāo)值
%?fname??選擇測(cè)試函數(shù)
%?XVmin??搜索空間下限
%?XVmax??搜索空間上限
itermax?=?8000;????????????%?maximum?number?of?iterations?(generations)
F?=?0.6;??????????????????%?DE-stepsize?F?from?interval?[0?2]
F1=0.45;
CR?=?0.9;?????????????????%?crossover?probability?constant?from?interval?[0?1]
%-----DE?Initialize--------------------------------------------------------
pop?=?zeros(NPD);????????%?initialize?pop
for?i?=?1:NP
???pop(i:)?=?XVmin?+?rand(1D).*(XVmax?-?XVmin);
end
popold?=?zeros(size(pop));%?toggle?population
val?=?zeros(1NP);????????%?create?and?reset?the?“cost?array“
bestmem?=?zeros(1D);?????%?best?population?member?ever
bestmemit?=?zeros(1D);???%?best?population?member?in?iteration
for?i?=?1:NP??????????????%?Evaluate?the?best?member?after?initialization
????input?=?pop(i:);
????output(i)?=?feval(fnameinput);
end
val?=?output‘;
[bestvalitidx]?=?min(val);
bestmemit?=?pop(idx:);???%?best?member?of?current?iteration
bestmem?=?bestmemit;??????%?best?member?ever
bestval?=?bestvalit;??????%?best?value?ever
%-----DE?Iteration---------------------------------------------------------
tr?=?zeros(1itermax);
for?j?=?1:itermax
????if?(bestval-VTR)?1e-5
????????break
????end???
????popold?=?pop;
????%?generate?the?trail?population
????for?i?=?1:NP
????????%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
????????CR=0.1;
????????if?val(i)<=mean(val)
???????????CR=0.1+(0.6-0.1)*(val(i)-max(val))/(min(val)-max(val));?
????????end?????
????????%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
????????%?pick?up?the?donor?and?differential?vectors
????????rd?=?fix(rand(1)?*?NP?+?1);
????????while?val(rd)?>?val(i)
????????????rd?=?fix(rand(1)?*?NP?+?1);
????????end
????????rb?=?fix(rand(1)?*?NP?+?1);
????????while?rb?==?i?||?rb?==?rd
?????????????rb?=?fix(rand(1)?*?NP?+?1);
????????end
????????rc?=?fix(rand(1)?*?NP?+?1);
????????while?rc?==?i?||?rc?==?rd?||?rc==rb
?????????????rc?=?fix(rand(1)?*?NP?+?1);
????????end
????????re?=?fix(rand(1)?*?NP?+?1);
????????while?re?==?i?||?re?==?rd?||?re==rb??||?re==rc
?????????????re?=?fix(rand(1)?*?NP?+?1);
????????end
????????%?bulid?a?trial?vector?and?crossover
????????jr?=?fix(rand(1)?*?D?+?1);
????????%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
????????%?找基變量
????????tb=rd;
????????if?val(rb:)<=min(val(rd:)val(rc:))
???????????tb=rb;
????????end
????????if?val(rc:)<=min(val(rd:)val(rb:))
???????????tb=rc;
????????end
????????%?找另兩個(gè)差分向量;
????????tm=rd;
????????if?val(rb:)>=min(val(rd:)val(rc:))?&&?val(rb:)<=max(val(rd:)val(rc:))
???????????tm=rb;
????????end
????????if?val(rc:)>=min(val(rd:)val(rb:))?&&?val(rc:)<=max(val(rd:)val(rb:))
????????????tm=rc;
????????end
????????%?找最差的向量
????????tw=rd;
????????if?val(rb:)>=max(val(rd:)val(rc:))
???????????tw=rb;
????????end
????????if?val(rc:)>=max(val(rd:)val(rb:))
?????????
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件???????4326??2009-05-05?10:13??SACPMDE.m
-----------?---------??----------?-----??----
?????????????????4326????????????????????1
評(píng)論
共有 條評(píng)論