資源簡介
遺傳算法改進粒子群優化算法,可用于SVM的參數優化等,
代碼片段和文件信息
%%?GA?優化?PSO
%%?清空環境
clc;
clear
close?all
%%?參數初始化
lenchrom=2;????%字符串長度(個體長度),染色體編碼長度
pc=0.7;????????%設置交叉概率,本例中交叉概率是定值,若想設置變化的交叉概率可用表達式表示,或從寫一個交叉概率函數,例如用神經網絡訓練得到的值作為交叉概率
pm=0.3;????????%設置變異概率,同理也可設置為變化的
%粒子群算法中的兩個參數
c1?=?1.49445;
c2?=?1.49445;
maxgen=10;???%?進化次數??
popsize=10;?%種群規模
%粒子更新速度
Vmax=1;
Vmin=-1;
%種群
popKmax=20;
??popKmin=2;
??popamax=10000;
??popamin=100;
%?變量取值范圍
bound=[popKmin?popKmax;popamin?popamax];??%變量范圍
%?優化粒子數目
par_num=2;
%%?產生初始粒子和速度
for?i=1:popsize
????%隨機產生一個種群
???pop(i1)?=?(popKmax-popKmin)*rand+popKmin;??
????pop(i2)?=?(popamax-popamin)*rand+popamin;
????V(i1)=Vcmax*rands(11);??
????V(i2)=Vgmax*rands(11);
????%初始化速度
????%計算適應度
????fitness(i)=fun(pop(i:));???%染色體的適應度
end
%找最好的染色體
[bestfitness?bestindex]=min(fitness);
zbest=pop(bestindex:);???%全局最
評論
共有 條評論