1.完整项目描述和程序获取
>面包多安全交易平台:https://mbd.pub/o/bread/Y52cmJxy
>如果链接失效,可以直接打开本站店铺搜索相关店铺:
>如果链接失效,程序调试报错或者项目合作也可以加微信或者QQ联系。
2.部分仿真图预览
3.算法概述
果蝇优化算法FOA(Fruit Fly Optimization Algorithm)是由台湾博士潘文超于2011年提出的,与蚁群算法和粒子群算法类似,是基于动物群体觅食行为演化出的一种寻求全局优化的新方法。它不同于顺序执行的传统智能算法,而是以果蝇群体自组织性和并行性为基础,构造出的一种动物自治体模型。FOA有着算法简单、控制参数少、容易实现、且具有一定并行性等特点,因此在各领域得到广泛应用[4]。FOA可以优化神经网络参数,已成功应用于企业经营绩效评估、外贸出口预测、原油含水率预测等[3,5-6];FOA也可优化支持向量机模型,已成功应用于故障诊断、物流需求量预测等[7-8]。但由于FOA是较晚提出的一种随机搜索算法,其在理论分析和应用研究等方面还处于初级阶段,同时也存在易发散、收敛精度不高等缺点。
4.部分源码
X1=100*rand(1,100)+20;
Y1=100*rand(1,100)+20;
X2=100*rand(1,100)+100;
Y2=100*rand(1,100)+100;
X_axis = [X1,X2];
Y_axis = [Y1,Y2];
Data = [X_axis;Y_axis];
Cluster= 2;
Iters = 1;
figure(1);
plot(X_axis,Y_axis,'r*');
%初始化kmeans聚类
[Cxy1,Err1] = kmean(Data,Cluster,Iters);
%%
%初始果蝇群体位置
X_ini = 100*rand(1,2);
Y_ini = 100*rand(1,2);
%迭代次数
MIter = 150;
%种群规模
Pops = 10;
%果蝇寻优开始
%利用嗅觉寻找食物
for i=1:Pops
%果蝇个体飞行距离
X(i,:) = X_ini + 200*rand()-100;
Y(i,:) = Y_ini + 200*rand()-100;
%与原点之距离
D(i,1) =(X(i,1)^2+Y(i,1)^2)^0.5;
D(i,2) =(X(i,2)^2+Y(i,2)^2)^0.5;
%味道浓度为距离之倒数,先求出味道浓度判定值
S(i,1) = 1/D(i,1);
S(i,2) = 1/D(i,2);
%利用味道浓度判定函数求出味道浓度
[Cxy,Err]= kmean_opt(Data,Cluster,Iters,[S(i,1);S(i,2)]);
Smell(i) = Err;
end
%寻找初始极值
[bestSmell,bestindex]=min(Smell);
%利用视觉寻找伙伴聚集味道浓度最高之处
X_ini = X(bestindex);
Y_ini = Y(bestindex);
Smellbest = bestSmell;
%果蝇迭代
for g=1:MIter
g
for i=1:Pops
%由上一代最佳位置处增加果蝇个体飞行距离
X(i,:) = X_ini + 200*rand() - 100;
Y(i,:) = Y_ini + 200*rand() - 100;
%与原点距离
%与原点之距离
D(i,1) =(X(i,1)^2+Y(i,1)^2)^0.5;
D(i,2) =(X(i,2)^2+Y(i,2)^2)^0.5;
%味道浓度为距离之倒数,先求出味道浓度判定值
S(i,1) = 1/D(i,1);
S(i,2) = 1/D(i,2);
[Cxy,Err]= kmean_opt(Data,Cluster,Iters,[S(i,1);S(i,2)]);
Smell(i) = Err;
end
end
05_043_m