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