网站流量提供商,建设网站思路,中国产品网企业名录,重庆旅游网站建设公司#x1f4a5;#x1f4a5;#x1f49e;#x1f49e;欢迎来到本博客❤️❤️#x1f4a5;#x1f4a5; #x1f3c6;博主优势#xff1a;#x1f31e;#x1f31e;#x1f31e;博客内容尽量做到思维缜密#xff0c;逻辑清晰#xff0c;为了方便读者。 ⛳️座右铭欢迎来到本博客❤️❤️ 博主优势博客内容尽量做到思维缜密逻辑清晰为了方便读者。 ⛳️座右铭行百里者半于九十。 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码、数据、文章讲解 1 概述
复现论文 基于以上三点改进提出了 IABC-Kmeans 算法。该算法的基本思想是: 通过 IABC 算法进行一次迭代将迭代得到的新位置作为 KMC 的初始点并进行一次 K 均值聚类再用聚类获得的新的中心点更新蜂群; 如此交替执行 IABC 算法和 K均值聚类直到算法结束。
算法基本步骤描述如下:
步骤 1 设置引领蜂、跟随蜂和侦察蜂的数量( 一般有引领蜂数量 跟随蜂数量) ; 最大迭代次数 MCN 以及控制参数Limit; 当前迭代次数Cycle初始值为1; 聚类类别数 k; 利用最大最小距离积法初始化蜂群产生 { Z1Z2…ZN } 个初始蜂 群。
步骤 2 对初始蜂群进行一次聚类划分根据式( 5) 计算每只蜜蜂的适应度按照适应度大小排序将前一半作为引领蜂后一半作为跟随蜂。
步骤 3 引领蜂利用式( 6) 对其邻域进行搜索得到新的位置按照贪婪选择原则如果新的位置的适应度大于原先位置的适应度则用新的位置更新原位置; 否则保持原位置不变。当所有引领蜂完成邻域搜索后根据式( 4) 计算概率 Pi。
步骤 4 跟随蜂利用算得的概率 Pi 并基于轮盘赌原则选择引领蜂原则上Pi 越大表明引领蜂 i 的适应度值越大被跟随蜂选中的概率也越大。当跟随蜂完成引领蜂选择后利用式( 7) 对邻域搜索同样按照贪婪选择原则选择适应度高的位置。
步骤 5 在所有跟随蜂完成搜索后将得到的位置作为聚类中心对数据集进行一次 K 均值迭代聚类根据聚类划分用每一类的新的聚类中心更新蜂群。
步骤 6 如果某引领蜂在 Limit 次迭代后结果都没有改变则由引领蜂变为侦察蜂并随机产生一个新的位置取代原位置。
步骤 7 如果当前迭代次数大于最大次数 MCN则迭代结束算法结束; 否则转向步骤 2Cycle Cycle 1。 2 运行结果 部分代码 function [Colony Obj Fit oBas]GreedySelection(Colony1,Colony2,ObjEmp,ObjEmp2,FitEmp,FitEmp2,fbas,ABCOpts,i)
oBasfbas; ObjObjEmp; FitFitEmp; ColonyColony1; if (nargin8)%Inside the body of a user-defined function, NARGIN returns the number of input arguments that were used to call the function. for ind1:size(Colony1,1)%ind15对所有食物源进行贪婪选择 if (FitEmp2(ind)FitEmp(ind))%如果Vi的适应度值大于Xi的替换 oBas(ind)0; %zj因为这是已经被新的位置更新了所以其开采度应该置为零表示这是第一次没有被开采过 Fit(ind)FitEmp2(ind); Obj(ind)ObjEmp2(ind); Colony(ind,:)Colony2(ind,:); else%否则不变并且计数器bas1 oBas(ind)fbas(ind)1; %zj因为新的位置的适应度没有当前的好大所以在当前位置上仍保留当前解表示当前又被开采了一次 Fit(ind)FitEmp(ind); Obj(ind)ObjEmp(ind); Colony(ind,:)Colony1(ind,:); end; end; %for end; %if if(nargin9)%第i个引领蜂被跟随只对第i个食物源进行贪婪选择 indi; if (FitEmp2(ind)FitEmp(ind)) oBas(ind)0; Fit(ind)FitEmp2(ind); Obj(ind)ObjEmp2(ind); Colony(ind,:)Colony2(ind,:); else oBas(ind)fbas(ind)1; Fit(ind)FitEmp(ind); Obj(ind)ObjEmp(ind); Colony(ind,:)Colony1(ind,:); end; end;
3 参考文献 文章中一些内容引自网络会注明出处或引用为参考文献难免有未尽之处如有不妥请随时联系删除。 [1]喻金平,郑杰,梅宏标.基于改进人工蜂群算法的K均值聚类算法[J].计算机应用,2014,34(04):1065-10691088.
4 Matlab代码、数据、文章讲解