資源簡介
使用遺傳算法,對目標(biāo)函數(shù)進(jìn)行全局尋優(yōu),可以得到全局最優(yōu)解。
代碼片段和文件信息
%%?GA
clc?%?清屏
clear?all;?%?刪除workplace變量
close?all;?%?關(guān)掉顯示圖形窗口
warning?off
%%?參數(shù)初始化
popsize=100;??????????????%種群規(guī)模
lenchrom=7;??????????????%變量字串長度
pc=0.7;??????????????????%設(shè)置交叉概率,本例中交叉概率是定值,若想設(shè)置變化的交叉概率可用表達(dá)式表示,或從寫一個(gè)交叉概率函數(shù),例如用神經(jīng)網(wǎng)絡(luò)訓(xùn)練得到的值作為交叉概率
pm=0.3;??????????????????%設(shè)置變異概率,同理也可設(shè)置為變化的
maxgen=100;???%?進(jìn)化次數(shù)??
%種群
popmax=50;
popmin=0;
bound=[popmin?popmax;popmin?popmax;popmin?popmax;popmin?popmax;popmin?popmax;popmin?popmax;popmin?popmax];??%變量范圍
%%?產(chǎn)生初始粒子和速度
for?i=1:popsize
????%隨機(jī)產(chǎn)生一個(gè)種群
????GApop(i:)=Code(lenchrombound);???????%隨機(jī)產(chǎn)生個(gè)體
????%計(jì)算適應(yīng)度
????fitness(i)=fun(GApop(i:));????????????%染色體的適應(yīng)度
end
%找最好的染色體
[bestfitness?bestindex]=min(fitness);
zbest=GApop(bestindex:);???%全局最佳
gbest=GApop;????????????????%個(gè)體最佳
fitnessgbest=fitness;???????%個(gè)體最佳適應(yīng)度值
fitnesszbest=bestfitness;???%全局最佳適應(yīng)度值
%%?迭代尋優(yōu)
for?i=1:maxgen
????????i
????????%種群更新?GA選擇更新
????????GApop=Select2(GApopfitnesspopsize);
????????%?交叉操作?GA
????????GApop=Cross(pclenchromGApoppopsizebound);
????
- 上一篇:PMSG單機(jī)Matlab模型
- 下一篇:MATLAB SPIN路由算法
評論
共有 條評論