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