|
百度网盘链接如下:http://pan.baidu.com/s/1o7Wxk8a
具体链接在halcom.cn论坛,联系人QQ:3283892722
欢迎大家录制视频,并提交给我,我来设置视频,你可在论坛进行打赏分享。
视频专用播放器:http://halcom.cn/forum.php?mod=viewthread&tid=258&extra=page%3D1
代码如下:
- %***設置參數
- %清空運行環境
- clc
- clear
- %速度更新參數
- X_axis=10*rand();
- Y_axis=10*rand();
- maxgen=100; %疊代次數
- sizepop=20; %種群規模
- %個體和速度最大和最小值
- for i=1:sizepop
- X(i)=X_axis+2*rand()-1;
- Y(i)=Y_axis+2*rand()-1;
- D(i)=(X(i)^2+Y(i)^2)^0.5;
- S(i)=1/D(i);
- %類似Fitness適應度函數
- Smell(i)=2-S(i)^2;
- end
- %***根據初始味道濃度值尋找極值
- [bestSmell bestindex]=max(Smell);
- %***保留最佳值位置
- X_axis=X(bestindex);
- Y_axis=Y(bestindex);
- Smellbest=bestSmell;
- %***根據公式更新粒子位置和速度,並且根據新粒子的適應度值更新個體極值和群體極值
- %疊代尋優
- for g=1:maxgen
- %粒子位置和速度更新
- for i=1:sizepop
- X(i)=X_axis+2*rand()-1;
- Y(i)=Y_axis+2*rand()-1;
- D(i)=(X(i)^2+Y(i)^2)^0.5;
- S(i)=1/D(i);
- %類似Fitness適應度函數
- Smell(i)=2-S(i)^2;
- end
- %***根據初始味道濃度值尋找極值
- [bestSmell bestindex]=max(Smell);
- %***保留最佳值位置
- if bestSmell>Smellbest
- X_axis=X(bestindex);
- Y_axis=Y(bestindex);
- Smellbest=bestSmell;
- end
- %每代最優值紀錄到yy數組中
- yy(g)=Smellbest;
- Xbest(g)=X_axis;
- Ybest(g)=Y_axis;
- end
- %***繪製最佳化個體適應度值趨勢圖
- figure(1)
- plot(yy)
- title('Optimization process','fontsize',12)
- xlabel('Iteration Number','fontsize',12);ylabel('Smell','fontsize',12);
- figure(2)
- plot(Xbest,Ybest,'b.');
- title('Fruit fly flying route','fontsize',14)
- xlabel('X-axis','fontsize',12);ylabel('Y-axis','fontsize',12);
复制代码
参考文献:
Wen-Tsao Pan (2011) A new fruit fly optimization algorithm: Taking the financial distress model as an example, Knowledge-Based Systems, Vol.26, pp.69-74, 2012, DOI information: 10.1016/j.knosys.2011.07.001.
|
|