資源簡介
本代碼是matlab的代碼,畢業設計的三個算法,對原來的粒子群算法進行改進,分別是混沌粒子群,和GAPSO得到的效果還不錯,注意這是代碼,源代碼。

代碼片段和文件信息
%%?清空環境
clc
clear
%%?參數初始化
%粒子群算法中的兩個參數
c1?=?1.49445;
c2?=?1.49445;
D=10;%粒子維數
maxgen=1000;???%?進化次數??
sizepop=20;???%種群規模
u=2;%混沌系數
Vmax=1;
Vmin=-1;
popmax=5;
popmin=-5;
randdata1=?xlsread(‘randdata1‘);
randdata2=?xlsread(‘randdata2‘);
%%?產生初始粒子和速度
for?i=1:sizepop
????%隨機產生一個種群
????pop(i:)=randdata1(i:);????%初始種群
????V(i:)=randdata2(i:);??%初始化速度
????%計算適應度
????fitness(i)=fun(pop(i:));???%粒子的適應值
end
%%?個體極值和群體極值
[bestfitness?bestindex]=min(fitness);
zbest=pop(bestindex:);???%全局最佳
gbest=pop;????%個體最佳
fitnessgbest=fitness;???%個體最佳適應度值
fitnesszbest=bestfitness;???%全局最佳適應度值
%%?迭代尋優
for?i=1:maxgen
????
????for?j=1:sizepop
????????
????????%速度更新
????????V(j:)?=?V(j:)?+?c1*rand*(gbest(j:)?-?pop(j:))?+?c2*rand*(zbest?-?pop(j:));
????????V(jfind(V(j:)>Vmax))=Vmax;
????????V(jfind(V(j:) ????????
????????%種群更新
????????pop(j:)=pop(j:)+V(j:);
????????pop(jfind(pop(j:)>popmax))=popmax;
????????pop(jfind(pop(j:) ????????
????????%適應度值
????????fitness(j)=fun(pop(j:));?
???
????end
????
????for?j=1:sizepop
????????
????????%個體最優更新
????????if?fitness(j)?????????????gbest(j:)?=?pop(j:);
????????????fitnessgbest(j)?=?fitness(j);
????????end
????????
????????%群體最優更新
????????if?fitness(j)?????????????zbest?=?pop(j:);
????????????fitnesszbest?=?fitness(j);
????????end
????end?
??
????%%對粒子群最優位置進行混沌優化
??????y(1:)=(zbest-popmin)/(popmax-popmin);%將最優位置映射到Logistic方程的定義域[01]
??????fitness(1)=fun(y(1:));?
????????for?t=1:sizepop-1?%通過Logistic方程進行M次迭代,得到混沌序列
????????????for?e=1:D
????????y(t+1e)=u*y(te)*(1-y(te));?
????????????end
????????y(t+1:)=popmin+(popmax-popmin)*y(t+1:);%將混沌序列逆射到原解空間
????????fitness(t+1)=fun(y(t+1:));?%計算混沌變量可行解序列的適應度值
????????end
[ybestfitness?ybestindex]=min(fitness);%尋找最優混沌可行解矢量
??ybest=y(ybestindex:);
????????ran=1+fix(rand()*sizepop);%產生一隨機數1~sizepop之間
????????pop(ran:)=ybest;
????yy(i)=fitnesszbest;????
????????
end
%%?結果分析
plot(yy‘m‘‘LineWidth‘5)
title(‘多峰函數-Generaliaed?Rastrigin最優個體適應度曲線‘‘fontsize‘20);
xlabel(‘迭代次數‘‘fontsize‘25);ylabel(‘適應度值‘‘fontsize‘25);
legend(‘基本粒子群算法‘‘混沌粒子群算法‘‘fontsize‘30);
grid?on
hold?on
display(‘混沌粒子群算法輸出結果‘);
zbest
minbest=min(yy)
meanbest=mean(yy)
stdbest=std(yy)
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????2615??2012-05-05?15:30??遺傳粒子群優化算法-GAPSO\CPSO.m
?????文件????????713??2012-05-05?18:17??遺傳粒子群優化算法-GAPSO\fun.m
?????文件???????4274??2012-06-19?11:14??遺傳粒子群優化算法-GAPSO\GAPSO.m
?????文件???????1845??2012-05-05?15:30??遺傳粒子群優化算法-GAPSO\PSO.m
?????文件??????20992??2012-04-24?16:29??遺傳粒子群優化算法-GAPSO\randdata1.xls
?????文件??????20992??2012-04-24?16:29??遺傳粒子群優化算法-GAPSO\randdata2.xls
?????文件??????60988??2012-05-05?17:53??遺傳粒子群優化算法-GAPSO\Rastrigin.fig
?????文件?????107023??2012-05-05?17:53??遺傳粒子群優化算法-GAPSO\Rastrigin.jpg
?????文件??????65384??2012-05-05?15:56??遺傳粒子群優化算法-GAPSO\Rosenbrock.fig
?????文件??????89617??2012-05-05?15:57??遺傳粒子群優化算法-GAPSO\Rosenbrock.jpg
?????文件?????138503??2012-05-05?17:57??遺傳粒子群優化算法-GAPSO\Schwefels?Problem2.22.jpg
?????文件?????100038??2012-05-05?17:50??遺傳粒子群優化算法-GAPSO\SchwefelsProblem?2.fig
?????文件??????41176??2012-05-05?15:40??遺傳粒子群優化算法-GAPSO\Sphere?Model.fig
?????文件??????99297??2012-05-05?15:41??遺傳粒子群優化算法-GAPSO\Sphere?Model.jpg
?????目錄??????????0??2019-07-05?15:26??遺傳粒子群優化算法-GAPSO
-----------?---------??----------?-----??----
???????????????753457????????????????????15
- 上一篇:MATLAB GUI語音信號分析
- 下一篇:在Matlab中對CAPM模型的估計實現
評論
共有 條評論