Logistic模型描述控制参数的灰狼优化算法
- 格式:pdf
- 大小:1.12 MB
- 文档页数:7
灰狼优化算法--简单易懂附python代码ps:本博文为个人理解,如有错误请不吝赐教本博文部分引用了1、算法原理:简单的讲,狼群中有 Alpha、Beta、Delta三只灰狼做头狼,Alpha是狼王,Beta、Delta分别排第二第三,Beta要听老大Alpha 的,Delta要听Alpha、Beta的。
这三头狼指导着狼群里其他的狼寻找猎物。
狼群寻找猎物的过程就是我们寻找最优解的过程。
2、公式方面大家可以看另一博主的博文。
3、代码如下:import randomimport numpydef GWO(objf, lb, ub, dim, SearchAgents_no, Max_iter):# 初始化 alpha, beta, and delta_posAlpha_pos = numpy.zeros(dim) # 位置.形成30的列表Alpha_score = float("inf") # 这个是表示“正负无穷”,所有数都比 +inf 小;正无穷:float("inf"); 负无穷:float("-inf") Beta_pos = numpy.zeros(dim)Beta_score = float("inf")Delta_pos = numpy.zeros(dim)Delta_score = float("inf") # float() 函数用于将整数和字符串转换成浮点数。
# list列表类型if not isinstance(lb, list): # 作用:来判断一个对象是否是一个已知的类型。
其第一个参数(object)为对象,第二个参数(type)为类型名,若对象的类型与参数二的类型相同则返回Truelb = [lb] * dim # 生成[100,100,.100]30个if not isinstance(ub, list):ub = [ub] * dim# Initialize the positions of search agents初始化所有狼的位置Positions = numpy.zeros((SearchAgents_no, dim))for i in range(dim): # 形成5*30个数[-100,100)以内Positions[:, i] = numpy.random.uniform(0, 1, SearchAgents_no) * (ub[i] - lb[i]) + lb[i] # 形成[5个0-1的数]*100-(-100)-100Convergence_curve = numpy.zeros(Max_iter)#迭代寻优for l in range(0, Max_iter): # 迭代1000for i in range(0, SearchAgents_no): # 5# 返回超出搜索空间边界的搜索代理for j in range(dim): # 30Positions[i, j] = numpy.clip(Positions[i, j], lb[j], ub[j]) # clip这个函数将将数组中的元素限制在a_min(-100),a_max(100)之间,大于a_max的就使得它等于 a_max,小于a_min,的就使得它等于a_min。
灰狼优化算法(GWO)原理(2020)混合灰狼优化(HGWO,DE-GWO)算法matlab源码今天学习一个比较新的优化算法,用差分进化(DE)改进原始的灰狼优化(GWO)得到的HGWO(也可以叫DE-GWO)算法。
仍然以优化SVR参数为例,需要的同学可以根据需要自己修改源码。
function[bestc,bestg,test_pre]=my_HGWO_SVR(para,input_train,out put_ train,input_test,output_test)% 参数向量parameters [n,N_iteration,beta_min,beta_max,pCR]% n为种群规模,N_iteration为迭代次数% beta_min 缩放因子下界 Lower Bound of Scaling Factor% beta_max=0.8; % 缩放因子上界Upper Bound of Scaling Factor% pCR 交叉概率 Crossover Probability% 要求输入数据为列向量(矩阵)%% 数据归一化[input_train,rule1]=mapminmax(input_train');[output_train,rule2]=mapminmax(output_train');input_test=mapminmax('apply',input_test',rule1);output_test=mapminmax('apply',output_test',rule2);input_train=input_train';output_train=output_train';input_test=input_test';output_test=output_test';%% 利用差分进化-灰狼优化混合算法(DE_GWO)选择最佳的SVR 参数nPop=para(1); % 种群规模 Population SizeMaxIt=para(2); % 最大迭代次数Maximum Number ofIterations nVar=2; % 自变量维数,此例需要优化两个参数c和g Number of Decision VariablesVarSize=[1,nVar]; % 决策变量矩阵大小Decision Variables Matrix Sizebeta_min=para(3); % 缩放因子下界Lower Bound of Scaling Factorbeta_max=para(4); % 缩放因子上界 Upper Bound of Scaling FactorpCR=para(5); % 交叉概率 Crossover Probabilitylb=[0.01,0.01]; % 参数取值下界ub=[100,100]; % 参数取值上界%% 初始化% 父代种群初始化parent_Position=init_individual(lb,ub,nVar,nPop); % 随机初始化位置parent_Val=zeros(nPop,1); % 目标函数值for i=1:nPop % 遍历每个个体parent_Val(i)=fobj(parent_Position(i,:),input_train,output_ train,input_test,output_test); % 计算个体目标函数值% 突变种群初始化mutant_Position=init_individual(lb,ub,nVar,nPop); % 随机初始化位置mutant_Val=zeros(nPop,1); % 目标函数值for i=1:nPop % 遍历每个个体mutant_Val(i)=fobj(mutant_Position(i,:),input_train,output_ train,input_test,output_test); % 计算个体目标函数值% 子代种群初始化child_Position=init_individual(lb,ub,nVar,nPop); % 随机初始化位置child_Val=zeros(nPop,1); % 目标函数值for i=1:nPop % 遍历每个个体child_Val(i)=fobj(child_Position(i,:),input_train,output_tr ain,input_test,output_test); % 计算个体目标函数值%% 确定父代种群中的Alpha,Beta,Delta狼[~,sort_index]=sort(parent_Val); % 父代种群目标函数值排序parent_Alpha_Position=parent_Position(sort_index(1),:); % 确定父代Alpha狼parent_Alpha_Val=parent_Val(sort_index(1)); % 父代Alpha 狼目标函数值parent_Beta_Position=parent_Position(sort_index(2),:); % 确定父代Beta狼parent_Delta_Position=parent_Position(sort_index(3),:); % 确定父代Delta狼%% 迭代开始BestCost=zeros(1,MaxIt);BestCost(1)=parent_Alpha_Val;for it=1:MaxIta=2-it*((2)-MaxIt); % 对每一次迭代,计算相应的a值,a decreases linearly fron 2 to 0% 更新父代个体位置for par=1:nPop % 遍历父代个体for var=1:nVar % 遍历每个维度% Alpha狼Huntingr1=rand(); % r1 is a random number in [0,1]r2=rand(); % r2 is a random number in [0,1]A1=2*a*r1-a; % 计算系数AC1=2*r2; % 计算系数CD_alpha=abs(C1*parent_Alpha_Position(var)-parent_Position(p ar,var));X1=parent_Alpha_Position(var)-A1*D_alpha;% Beta狼Huntingr1=rand();r2=rand();A2=2*a*r1-a; % 计算系数AC2=2*r2; % 计算系数CD_beta=abs(C2*parent_Beta_Position(var)-parent_Position(par ,var));X2=parent_Beta_Position(var)-A2*D_beta;% Delta狼Huntingr1=rand();r2=rand();A3=2*a*r1-a; % 计算系数AC3=2*r2; % 计算系数CD_delta=abs(C3*parent_Delta_Position(var)-parent_Position(par,var));X3=parent_Delta_Position(var)-A3*D_delta;% 位置更新,防止越界X=(X1+X2+X3)-3;X=max(X,lb(var));X=min(X,ub(var));parent_Position(par,var)=X;parent_Val(par)=fobj(parent_Position(par,:),input_train,out put_train,input_test,output_test); % 计算个体目标函数值 % 产生变异(中间体)种群for mut=1:nPopA=randperm(nPop); % 个体顺序重新随机排列A(A==i)=[]; % 当前个体所排位置腾空(产生变异中间体时当前个体不参与)beta=unifrnd(beta_min,beta_max,VarSize); % 随机产生缩放因子y=parent_Position(a)+beta.*(parent_Position(b)-parent_Posit ion(c)); % 产生中间体% 防止中间体越界y=max(y,lb);y=min(y,ub);mutant_Position(mut,:)=y;% 产生子代种群,交叉操作 Crossoverfor child=1:nPopx=parent_Position(child,:);y=mutant_Position(child,:);z=zeros(size(x)); % 初始化一个新个体j0=randi([1,numel(x)]); % 产生一个伪随机数,即选取待交换维度编号for var=1:numel(x) % 遍历每个维度if var==j0 || rand=pCR % 如果当前维度是待交换维度或者随机概率小于交叉概率z(var)=y(var); % 新个体当前维度值等于中间体对应维度值z(var)=x(var); % 新个体当前维度值等于当前个体对应维度值child_Position(child,:)=z; % 交叉操作之后得到新个体child_Val(child)=fobj(z,input_train,output_train,input_test ,o utput_test); % 新个体目标函数值% 父代种群更新for par=1:nPopif child_Val(par)parent_Val(par) % 如果子代个体优于父代个体parent_Val(par)=child_Val(par); % 更新父代个体% 确定父代种群中的Alpha,Beta,Delta狼[~,sort_index]=sort(parent_Val); % 父代种群目标函数值排序parent_Alpha_Position=parent_Position(sort_index(1),:); % 确定父代Alpha狼parent_Alpha_Val=parent_Val(sort_index(1)); % 父代Alpha 狼目标函数值parent_Beta_Position=parent_Position(sort_index(2),:); % 确定父代Beta狼parent_Delta_Position=parent_Position(sort_index(3),:); % 确定父代Delta狼BestCost(it)=parent_Alpha_Val;bestc=parent_Alpha_Position(1,1);bestg=parent_Alpha_Position(1,2);%% 图示寻优过程plot(BestCost);xlabel('Iteration');ylabel('Best Val');%% 利用回归预测分析最佳的参数进行SVM网络训练cmd_cs_svr=['-s 3 -t 2',' -c ',num2str(bestc),' -g ',num2str(bestg)];model_cs_svr=svmtrain(output_train,input_train,cmd_cs_sv r); % SVM模型训练%% SVM网络回归预测[output_test_pre,~]=svmpredict(output_test,input_test,mo del_cs_svr); % SVM模型预测及其精度test_pre=mapminmax('reverse',output_test_pre',rule2);test_pre = test_pre';function x=init_individual(xlb,xub,dim,sizepop)% 参数初始化函数% lb:参数下界,行向量% ub:参数上界,行向量% dim:参数维度% sizepop 种群规模% x:返回sizepop*size(lb,2)的参数矩阵xRange=repmat((xub-xlb),[sizepop,1]);xLower=repmat(xlb,[sizepop,1]);x=rand(sizepop,dim).*xRange+xLower;%% SVR_fitness -- objective functionfunctionfitness=fobj(cv,input_train,output_train,input_test,output_ test)% cv为长度为2的横向量,即SVR中参数c和v的值cmd = ['-s 3 -t 2',' -c ',num2str(cv(1)),' -g ',num2str(cv(2))];model=svmtrain(output_train,input_train,cmd); % SVM模型训练[~,fitness]=svmpredict(output_test,input_test,model); % SVM模型预测及其精度fitness=fitness(2); % 以平均均方误差MSE作为优化的目标函数值close allload wndspd % 示例数据为风速(时间序列)数据,共144个样本%% HGWO-SVR% 训练-测试数据准备(用前3天预测后一天),用前100天做训练数据input_train(1,:)=wndspd(1:97);input_train(2,:)=wndspd(2:98);input_train(3,:)=wndspd(3:99);output_train=[wndspd(4:100)]';input_test(1,:)=wndspd(101:end-3);input_test(2,:)=wndspd(102:end-2);input_test(3,:)=wndspd(103:end-1);output_test=(wndspd(104:end))';para=[30,500,0.2,0.8,0.2];[bestc,bestg,test_pre]=my_HGWO_SVR(para,input_train',out put_train',input_test',output_test');%% 预测结果图err_pre=output_test'-test_pre;figure('Name','测试数据残差图')set(gcf,'unit','centimeters','position',[0.5,5,30,5])plot(err_pre,'*-');figure('Name','原始-预测图')plot(test_pre,'*r-');hold on;plot(output_test,'bo-');legend('预测','原始',0)set(gcf,'unit','centimeters','position',[0.5,13,30,5]) %__________ _____________________________________________ ____________% 随机梯度下降法不同于批量梯度下降,随机梯度下降是每次迭代使用一个样本来对参数进行更新。
灰狼算法的改进及在机器人路径规划中的应用灰狼算法的改进及在机器人路径规划中的应用引言:随着机器人在各个领域的广泛应用,路径规划作为机器人导航中的重要问题,一直备受关注。
传统的路径规划方法存在着很多问题,如在复杂环境中效率低下、易受局部最优解的限制等。
为了克服这些问题,灰狼算法作为一种新型的智能优化算法在机器人路径规划中得到了应用。
本文将介绍灰狼算法的基本原理,并探讨其在机器人路径规划中的应用和改进措施。
一、灰狼算法的基本原理灰狼算法是由Mirjalili等人于2014年提出的一种新兴的优化算法,其灵感来源于灰狼群体中的自然行为。
在灰狼群体中,存在着一种等级制度,Alpha狼位于群体的顶端,其余的狼按照等级进行排列。
灰狼算法的基本原理是通过模拟狼群的行为来搜索解空间中的最优解。
灰狼算法的步骤如下:1. 初始化一群随机的灰狼,每个灰狼代表一个解。
2. 根据目标函数的值,确定Alpha狼。
3. 根据Alpha狼的位置和其他狼的位置,通过一定的运算方式更新每个狼的位置。
4. 更新后,通过目标函数的值确定新的Alpha狼。
5. 重复步骤3和步骤4,直到满足终止条件。
灰狼算法以其简单而高效的特点,被广泛应用于各种最优化问题中。
二、灰狼算法在机器人路径规划中的应用在机器人路径规划中,目标是找到从起点到终点的最优路径,同时需要考虑到避免障碍物和优化路径长度等问题。
传统的路径规划算法如A*算法、Dijkstra算法等存在着一些问题,如不适用于复杂环境、易受局部最优解的限制等。
因此,利用灰狼算法解决机器人路径规划问题成为了一种新的选择。
灰狼算法在机器人路径规划中的应用可以概括为以下几个方面:1. 路径搜索空间的表示:将路径规划问题转化为一个优化问题,将路径搜索空间中的每个解表示为一只灰狼的位置,使用目标函数来评估解的质量。
2. 适应度函数的定义:根据实际的问题需求,设计适应度函数以评估每个解的质量。
适应度函数考虑的因素包括路径长度、避碰能力、安全性等。
新型灰狼优化算法在函数优化中的应用罗佳;唐斌【摘要】针对灰狼优化算法在求解连续函数优化问题时精度不高、易出现早熟收敛等缺陷,提出一种改进的灰狼优化算法.该算法在初始种群个体时采用混沌序列方法,为算法全局搜索的多样性奠定基础.根据个体适应度值将种群分为两个子种群,分别执行不同的搜索方式,以平衡算法的开采能力和勘探能力.选取几个标准测试函数对算法性能进行测试,测试结果表明,与其他群智能优化算法相比,该算法在求解精度和收敛速度方面均具有较强的竞争力.【期刊名称】《兰州理工大学学报》【年(卷),期】2016(042)003【总页数】6页(P96-101)【关键词】灰狼优化算法;函数优化;群智能;混沌【作者】罗佳;唐斌【作者单位】贵州民族大学人文科技学院,贵州贵阳550025;贵州财经大学信息学院,贵州贵阳550004【正文语种】中文【中图分类】TP301.6工程应用领域中的许多问题可以转化为求解一个连续函数优化问题,可描述为式中:f(x)为目标函数,x=(x1,x2,…,xd)为d维决策变量,li和ui分别为变量xi的上界和下界.由于问题(1)的复杂性,传统优化方法难以对其进行有效的求解.群体智能优化算法如遗传算法(genetic algorithm,GA)、粒子群优化(particle swarm optimization,PSO)算法、差分进化(differential evolution,DE)算法、人工蜂群(Artificial bee colony,ABC)算法、布谷鸟搜索算法(cuckoo search algorithm,CSA)、蝙蝠算法(bat algorithm,BA)、万有引力搜索算法(gravitational search algorithm,GSA)和果蝇优化算法(fruit fly optimization,FFA)等,具有结构简单、参数设置少和容易实现等特点,因此在连续函数优化问题中有着广泛的应用[1-6].灰狼优化(grey wolf optimization,GWO)算法是Mirjalili等[7]于2014年提出的一种新型群体智能优化算法,它源于对灰狼群体捕食行为的模拟,通过狼群跟踪、包围、追捕、攻击猎物等过程实现优化的目的.GWO算法具有结构简单、需要调节的参数少、编程容易实现、有较强的搜索能力等特点,在函数优化方面,已被证明在收敛精度和收敛速度上均优于粒子群算法[7].因此,GWO算法在特征子集选择[8]、多输入多输出电力系统[9]、直流电机最优控制[10]和多层传感器训练[11]等领域中有着广泛的应用.然而,GWO算法与其他群体智能优化算法一样,存在易陷入局部最优、求解精度不高、收敛速度慢等缺点.针对GWO算法存在的缺点,研究者对其进行了改进,如Saremi等[12]将动态进化种群算子引入到GWO算法中,以加强算法的局部搜索能力和加快收敛速度;Muangkote等[13]提出一种改进的GWO算法用于训练高斯径向基函数链接网络.本文将混沌序列方法引入初始化种群个体,根据个体适应度值将种群分为两个子种群,分别执行不同的搜索方式,提出一种改进的GWO算法.标准测试函数的实验结果表明了该算法的有效性.1.1 灰狼群体捕食行为灰狼是顶级食肉动物,位于食物链的顶端,其生活方式大多以群居为主,通常每个群体中平均有5~12只狼,构建了灰狼种群等级金字塔,并具有严格的等级管理制度,如图1所示.金字塔第一层为种群中的头狼称为α,它在狼群中是最具有管理能力的个体,主要负责群体各项决策事务,包括捕食行动、作息时间与地点、食物分配等.金字塔第二层称为β,它是α的智囊团队,协助α做出管理决策,并辅助处理群体组织的行为活动.当α出现空缺时,β将替补成为α.β对狼群中除了α以外的其他成员具有支配权,同时还起着协调反馈的作用,它将α狼的命令下达给群体中其他成员,并监督执行情况反馈给α狼.金字塔第三层为δ,δ听从α及β的指令,但可以指挥其他底层个体,主要负责侦察、放哨、捕猎、看护等事务.年老的α及β也将降为δ级别.金字塔最底层称为ω,主要负责平衡种群内部关系,以及照看幼狼的事务.灰狼的种群等级在实现群体高效捕杀猎物的过程中发挥着至关重要的作用.捕食过程由α带领完成,首先狼群以团队模式搜索、跟踪、靠近猎物,然后从各个方位包围猎物,当包围圈足够小且完善时,狼群在α的指挥下由离猎物最近的β、δ展开进攻,在猎物逃跑时,其余个体进行补给,实现群狼包围圈的跟随变换移动,从而对猎物不断实施各个方向的攻击,最终捕获猎物.1.2 GWO算法描述由1.1小节可知,在GWO算法中,由α、β、δ执行追捕行为,ω跟随前三者进行猎物跟踪围剿,最终完成捕食任务.利用GWO算法求解连续函数优化问题时,假设灰狼种群中的灰狼数目为N,搜索空间为d维,其中第i只灰狼在d维空间中的位置可表示为xi=(xi1,xi2,…,xid),种群中当前最优个体记为α,将适应度值排名第二及第三的对应个体记为β和δ,剩余个体记为ω,猎物的位置对应于优化问题的全局最优解.GWO算法的寻优过程为:在搜索空间中随机产生一群灰狼,在进化过程中,由α、β、δ负责对猎物的位置(全局最优解)进行评估定位,群内其余个体以此为标准计算自身与猎物之间的距离,并完成对猎物的全方位靠近、包围、攻击等行为,最终捕获猎物.下面给出算法中的三个定义.定义1 灰狼与猎物间的距离.在捕食过程中,灰狼首先需要对猎物进行包围,对应在GWO算法中,需要确定个体与猎物之间的距离:其中:Xp(t)表示第t代时猎物的位置;X(t)表示第t代时灰狼个体的位置;常数C 为摆动因子,由下式决定:C=2r1r1为[0,1]之间的随机数.定义2 灰狼位置更新:A=2ar2-a其中:A为收敛因子;r2为[0,1]的随机数;a随着迭代次数增加从2线性递减到0.定义3 猎物位置定位.当灰狼判断出猎物所在位置时,将由头狼α带领β、δ发动追捕行为.在狼群中,α、β、δ三者最靠近猎物,可以利用这三者的位置来判断猎物所在方位.狼群内个体跟踪猎物方位的机制如图2所示.狼群中个体跟踪猎物方位的数学描述如下:由式(6~11)计算出群内个体与α、β、δ的距离,然后由式(12)即可综合判断出个体向猎物移动的方向. GWO算法的伪代码如下:Initialize the grey wolf population Xi (i =1,2,…,N)Initialize a,A,and CCalculate the fitness of each individualXα= the best search individualXβ= the second best search ind ividualXδ= the third best search individualWhile (t Max number of iterations)For each search individualUpdate the position of the current search individual by equation (12)End forUpdate a,A,and CCalculate the fitness of all search individualUpdate Xα,Xβ,and Xδt=t +1End whileReturn Xα2.1 种群初始化对基于种群迭代的智能优化算法来说,初始种群的好坏影响着算法的全局收敛速度和解的质量,多样性较好的初始种群对提高算法的寻优性能很有帮助[14].另外,在求解函数优化问题前,全局最优解处于什么位置没有任何先验知识.因此,在种群初始化时应尽可能使个体能均匀分布在搜索空间中.然而,在标准GWO算法中,初始种群是随机产生的,无法保证个体在搜索空间中均匀分布,从而影响算法的搜索效率.混沌是一种非线性现象,可在一定范围内按自身规律不重复地遍历所有状态,将混沌算子引入到优化算法中可提高算法的全局搜索能力[15].因此,本文利用Tent混沌序列来产生初始种群.Tent映射比Logistic映射具有更好的遍历均匀性和更快的收敛速度,并通过严格的数学推理,证明了Tent映射可以作为产生优化算法的混沌序列.Tent映射表达式为Tent映射经贝努利位移变换后表示如下:根据Tent映射的特性,在可行域中产生Tent混沌序列的步骤详见文献[15].2.2 动态搜索策略在GWO算法中,α、β、δ作为种群的最高决策层,引导整个狼群靠近并捕获目标猎物.显然,最高决策层个体为种群内个体提供了启发式信息,能够有效激励群体智慧,是狼群进化的根本动力.然而,不可忽略的是,最高决策层同时也约束了狼群的多样性发展.因为在群体进化过程中,所有个体均朝着最优个体方向移动,在进化后期,导致整个种群进化停滞,从而陷入局部最优.因此,本文提出一种动态搜索策略,其原理如下:首先,根据群体中个体的适应度值,将种群分为两个子种群,即局部子种群和全局子种群,适应度值较优的个体作为局部子种群,适应度值较差的个体作为全局子种群,两个子种群的个体数目分别为N1和N2,且满足N1+N2=N(N为种群规模).然后,对局部子种群中的个体,按照式(6~11)进行移动,它们将逐步向全局最优解方向靠近,主要完成局部搜索任务.对全局子种群中的个体,主要进行全局搜索,同时保持种群的多样性,根据下式进行移动搜索:其中:X(t)为全局子种群中随机选择的个体.考虑到基于种群迭代的群体智能优化算法在进化前期需要具有较强的全局搜索能力,能使种群在整个解空间中进行大范围的全局搜索,这时全局子种群中个体数目N2应取一较大数;在进化中期,应平衡算法的全局搜索和局部搜索能力,这时两个子种群个体数目N1和N2的取值相当;在进化后期,算法的主要任务是进行局部精确搜索,这时局部子种群个体数目N1应取一较大值.由此可知,两个子种群中的个体数目N1和N2不是固定不变,而是随着进化过程动态变化的,从而在一定程度上协调了算法的全局搜索和局部搜索能力.2.3 IGWO算法步骤Step 1:设置算法参数,种群规模N,最大迭代次数,在解空间中随机生成a、A、C等参数;Step 2:在解空间中利用混沌序列产生N个灰狼个体位置构成初始种群,令t=1;Step 3:计算种群中每个灰狼个体的适应度值,并将适应度值进行排序,记录最优适应度值及对应位置;Step 4:将适应度值排列前三位的灰狼个体位置分别记为Xα、Xβ和Xδ;Step 5:对局部子种群中的灰狼个体,按照式(6~8)计算剩余个体与Xα、Xβ和Xδ的距离,并根据式(9~12)更新各灰狼个体的位置;Step 6:对全局子种群中的灰狼个体,按照式(15)更新个体的位置;Step 7:更新a、A、C等参数的值;Step 8. 判断算法是否满足结束条件,若满足,则算法结束,输出最优解Xα;否则,返回Step 3.3.1 测试函数为了验证IGWO算法的寻优能力,从文献中选取5个标准测试函数进行数值实验,5个测试函数表达式及变量范围见表1,其中,f1(x)~f5(x)分别称为Sphere函数、Rosenbrock函数,Rastrigin函数、Ackley函数和Griewank函数.除了Sphere 函数为单峰函数以外,其他4个函数均为多峰函数,5个测试函数的理论最优解均为0.5个测试函数的空间特征如图3所示.3.2 实验结果及分析利用IGWO算法对上述5个标准测试函数进行数值实验,其参数设置如下:种群规模N=30,最大迭代次数为1 000,每个函数的维数均设置为30维,每个测试函数在上述参数设置下独立运行30次,记录其最优值、平均值、最差值和标准差,并与ABC算法、GSA算法和GWO算法的结果进行比较.三种算法的参数设置如下:在ABC算法中,种群规模N=30,最大迭代次数为1 000,limit的值设为100;在GSA算法中,种群规模N=30,G0=100,β=20;GWO 算法的参数与IGWO算法相同.表2给出了IGWO算法与ABC算法、GSA算法和GWO算法对5个标准测试函数的实验结果比较.从表2可以看出,对于Sphere函数、Rastrigin函数、Ackley函数和Griewank函数,本文提出的IGWO算法在30次实验中均能一致地找到全局最优解,尤其是Rastrigin函数和Griewank函数,均能找到理论精确值0;另外,IGWO算法对这4个函数30次实验得到的标准差非常小,甚至为0,这也充分说明IGWO算法具有较强的鲁棒性.由于Rosenbrock函数是非常复杂的函数,IGWO算法没找到全局最优解.与ABC算法相比,在5个测试函数上无论是最优值、平均值、最差值,还是标准差值,IGWO算法均获得了较好的结果.与GSA算法和GWO算法相比,对于Sphere 函数、Rastrigin函数、Ackley函数和Griewank函数,IGWO算法获得了较好的寻优结果.对于复杂的Rosenbrock函数,IGWO算法得到了较好的最优值、平均值和最差值,而GSA算法和GWO算法则获得了较好的标准差.图4~8给出四种算法对5个测试函数的进化收敛曲线,可以清晰地看出,除了复杂的Rosenbrock函数,IGWO算法对其他4个测试函数均能快速地收敛到全局最优解.作为一种新型的群体智能优化方法,灰狼优化算法自提出以来受到了广泛的关注,但其存在收敛速度慢、易陷入局部最优等缺陷.为了克服其缺点,本文提出一种基于动态搜索策略的改进灰狼优化算法用于求解无约束优化问题.在改进算法中,首先利用混沌序列产生初始种群个体,以保证狼群个体能均匀分布在解空间中;然后将初始种群分为全局子种群和局部子种群,分别执行不同的搜索方式,以协调算法的全局搜索和局部搜索能力,且子种群个体数目自适应动态调整.最后,对几个标准测试函数进行仿真实验,结果表明,与其他几种智能优化算法相比,改进灰狼优化算法具有较强的寻优性能和鲁棒性.【相关文献】[1] ISLAM S M,DAS S,GHOSH S,et al.An adaptive differentialevolution algorithm with novel mutation and crossover strategies for global numericaloptimization [J].IEEE Transactions on System,Man,and Cybernetics,2012,42(2):482-500. [2] 龙文.自适应调整子种群个体数目的遗传算法及其应用 [J].兰州理工大学学报,2013,39(4):80-84.[3] YAZDANI S,NUZAMABADI-POUR H,KAMYAB S.A gravitational search algorithm for multimodal optimization [J].Swarm and Evolutionary Computation,2014,14(1):1-14.[4] 肖辉辉,段艳明.基于差分进化的布谷鸟搜索算法 [J].计算机应用,2014,34(6):1631-1635,1640.[5] 王伟,龙文.基于交叉算子的改进人工蜂群算法 [J].兰州理工大学学报,2014,41(1):101-106.[6] GAO W F,LIU S Y,HUANG L L.Enhancing artificial bee colony algorithm using more information-based search equations [J].Information Sciences,2014,270(3):112-133.[7] MIRJALILI S,MIRJALILI S M,LEWIS A.Grey wolf optimizer [J].Advances in Engineering Software,2014,69(7):46-61.[8] EMARY E,ZAWBAA H M,GROSAN C,et al.Feature subset selection approach by gray-wolf optimization [C]//Proceedings of the International Afro-European Conference on Industrial Advancement.Berlin:Springer,2014:1-13.[9] EI-GAAFARY A A M,MOHAMED Y S,HEMEIDA A M,et al.Grey wolf optimization for multi input multi output system [J].Universal Journal of Communications and Networks,2015,3(1):1-6.[10] MADADI A,MOTLAGH M M.Optimal control of DC motor using grey wolf optimizer algorithm [J].Technical Journal of Engineering and Applied Sciences,2014,4(4):373-379. [11] MIRJALILI S.How effective is the grey wolf optimizer in training multi-layer perceptrons [J].Applied Intelligence,2015,42(4):608-619.[12] SAREMI S,MIRJALILI S Z,MIRJALILI S M.Evolutionary population dynamics and grey wolf optimizer [J].Neural Computing and Applications,2015,26(5):983-989.[13] MUANGKOTE N,SUNAT K,CHIEWCHANWATTANA S.An improved grey wolf optimizer for training q-Gaussian radial basis functional-link nets [C]//Proceedings of the International Conference on Computer Science and Engineering.Khon Kaen:IEEE,2014:209-214.[14] HAUPT R,HAUPT S.Practical genetic algorithm [M].New York:John Wiley &Rons,2004.[15] 单梁,强浩,李军,等.基于Tent映射的混沌优化算法 [J].控制与决策,2005,20(2):179-182.。
灰狼算法和粒子群算法灰狼算法和粒子群算法是两种常用的进化计算算法,它们在优化问题中具有广泛的应用。
本文将分别介绍灰狼算法和粒子群算法的原理和特点,并通过比较它们的优缺点,探讨其适用的场景。
1. 灰狼算法灰狼算法是由灰狼群体的行为和特性启发而来的一种群体智能算法。
灰狼群体中的每只狼都有一个适应度值,适应度值越高表示狼的位置越好。
算法的核心思想是模拟灰狼群体中的寻食行为,通过迭代更新每只狼的位置,最终找到最优解。
灰狼算法的具体步骤如下:1)初始化灰狼群体的位置和适应度值;2)通过适应度值的大小确定群体中的Alpha狼、Beta狼和Delta 狼;3)根据Alpha狼的位置和其他狼的位置,更新每只狼的位置;4)更新每只狼的适应度值;5)重复步骤3和4,直到满足停止条件。
灰狼算法的优点是简单易实现,收敛速度快,适用于解决复杂的非线性优化问题。
然而,灰狼算法在处理高维优化问题时,容易陷入局部最优解。
2. 粒子群算法粒子群算法是一种模拟鸟群觅食行为的群体智能算法。
算法中的每个粒子都有一个位置和速度,通过更新粒子的速度和位置,最终找到最优解。
粒子群算法的核心思想是通过个体和群体的交互合作来搜索最优解。
粒子群算法的具体步骤如下:1)初始化粒子群体的位置和速度;2)根据粒子的适应度值,更新局部最优解;3)根据局部最优解和全局最优解,更新粒子的速度和位置;4)更新粒子的适应度值;5)重复步骤2、3和4,直到满足停止条件。
粒子群算法的优点是容易实现,具有较好的全局搜索能力,适用于解决多峰优化问题。
然而,粒子群算法在处理高维优化问题时,易陷入局部最优解。
3. 算法比较与适用场景灰狼算法和粒子群算法都是基于群体智能的优化算法,它们在某些方面具有相似之处,但也存在一些差异。
灰狼算法与粒子群算法相比,优点是收敛速度快,适用于解决复杂的非线性优化问题;缺点是在处理高维优化问题时,容易陷入局部最优解。
粒子群算法与灰狼算法相比,优点是具有较好的全局搜索能力,适用于解决多峰优化问题;缺点是在处理高维优化问题时,易陷入局部最优解。
gwo控制参数GWO(Grey Wolf Optimizer)是一种模拟灰狼群体行为的优化算法,它通过模拟灰狼的社会行为来解决复杂的优化问题。
在GWO算法中,存在一些重要的控制参数,这些参数会直接影响算法的性能和收敛速度。
本文将介绍GWO算法中的几个重要控制参数,并讨论它们的作用以及如何选择合适的参数值。
1. 灰狼群体数量(N)灰狼群体数量是指参与算法优化的灰狼个体数量。
较大的群体数量可以增加搜索空间的覆盖度,提高算法的全局搜索能力。
然而,过大的群体数量会增加计算复杂度,降低算法的收敛速度。
因此,在选择灰狼群体数量时,需要综合考虑问题的复杂度和计算资源的限制。
2. 迭代次数(Max_iter)迭代次数是指算法执行的总次数。
较大的迭代次数可以增加算法的搜索深度,提高优化效果。
然而,过大的迭代次数会增加计算时间,降低算法的执行效率。
因此,在选择迭代次数时,需要根据问题的复杂度和时间资源的限制进行权衡。
3. 狼群的迁徙速度(a)狼群的迁徙速度参数控制了狼群在搜索空间中的移动速度。
较大的迁徙速度可以增加算法的全局搜索能力,但可能会导致算法陷入局部最优解。
较小的迁徙速度可以提高算法的局部搜索能力,但可能会导致算法收敛速度较慢。
因此,在选择狼群的迁徙速度时,需要根据问题的性质和优化目标进行调整。
4. 狼群的迁徙距离(A)狼群的迁徙距离参数控制了狼群在搜索空间中的移动范围。
较大的迁徙距离可以增加算法的搜索范围,提高全局搜索能力。
然而,过大的迁徙距离可能会导致算法的震荡和不稳定。
较小的迁徙距离可以提高算法的局部搜索能力,但可能会导致算法陷入局部最优解。
因此,在选择狼群的迁徙距离时,需要综合考虑问题的复杂度和优化目标。
5. 狼的位置更新系数(C)狼的位置更新系数参数控制了狼的位置更新的幅度。
较大的位置更新系数可以增加算法的搜索速度,但可能会导致算法在搜索空间中跳跃过大。
较小的位置更新系数可以增加算法的稳定性,但可能会导致算法的收敛速度较慢。
灰狼算法的参数-概述说明以及解释1.引言1.1 概述灰狼算法是一种新兴的优化算法,受到了越来越多研究者的关注和重视。
灰狼算法模拟了自然界中灰狼群体的协同行为,利用优胜劣汰的原理来搜索最优解。
在实际问题中,选择适当的参数设置对于算法的性能至关重要。
因此,深入研究灰狼算法的参数对算法的性能提升具有重要意义。
本文将重点介绍灰狼算法的参数及其调优方法,希望能够为灰狼算法的进一步发展提供参考。
1.2 文章结构文章结构部分主要介绍了整篇文章的组织结构,包括了引言、正文和结论三个主要部分。
在引言部分,将会对灰狼算法的参数进行简要介绍,同时呈现出整篇文章的目的和重要性。
在正文部分,将详细探讨灰狼算法的背景、参数的重要性以及参数调优方法。
最后在结论部分,会对整篇文章的主要内容做一个总结,并展望灰狼算法在未来的应用前景和研究方向。
整个文章结构清晰明了,逻辑性强,有助于读者更好地理解和掌握灰狼算法的参数优化问题。
1.3 目的灰狼算法作为一种新兴的优化算法,在解决各种优化问题中展现出了很好的性能和效果。
本文的目的旨在深入探讨灰狼算法的参数对算法性能的影响,通过对参数的调整和优化来提高算法的收敛速度和优化能力,从而进一步提高算法的实用性和效率。
在深入研究灰狼算法参数的基础上,我们还希望结合实际问题进行案例分析,验证参数调优后算法的实际效果,为灰狼算法在实际工程和科学研究中的应用提供更有力的支持和指导。
通过本文的研究,希望能够为推动灰狼算法在优化问题中的应用,以及进一步推动优化算法的发展做出贡献。
2.正文2.1 灰狼算法简介灰狼算法是一种启发式算法,基于自然界灰狼群体的行为特征而设计。
这种算法最初由米尔扎·赛利曼·拉希迪(Mirjalili)等人提出,并于2014年首次发表。
灰狼算法的灵感来源于灰狼群体的社会结构和行为,灰狼群体以一种复杂的等级结构来协调捕猎活动,这种结构包括首领、子群体和普通成员。
在灰狼算法中,解决问题的种群被建模为一群灰狼。
收稿日期:2020⁃03⁃19;修回日期:2020⁃06⁃12㊀㊀基金项目:辽宁省 兴辽英才 计划项目(XLYC1807018);沈阳市 双百工程 计划项目(18⁃400⁃6⁃16)作者简介:王勇亮(1997⁃),男,山西忻州人,硕士研究生,主要研究方向为智能计算㊁机器人控制㊁滑模控制;王挺(1978⁃),男(通信作者),黑龙江齐齐哈尔人,副研究员,主要研究方向为特种机器人技术㊁模式识别与智能系统(wangting@sia.cn);姚辰(1964⁃),男,研究员,主要研究方向为机器人学㊁机器人控制㊁特种机器人技术.基于Kent映射和自适应权重的灰狼优化算法∗王勇亮1,2,3,王㊀挺1,2†,姚㊀辰1,2(1.中国科学院沈阳自动化研究所机器人学国家重点实验室,沈阳110016;2.中国科学院机器人与智能制造创新研究院,沈阳110169;3.中国科学院大学,北京100049)摘㊀要:针对灰狼优化算法(GWO)易陷入局部最优㊁后期收敛速度慢等问题,提出一种基于Kent映射和自适应权重的灰狼优化算法㊂首先,该算法在种群初始化时引入Kent混沌映射,增强了初始化群体的多样性,可以对搜索空间进行更全面彻底的搜索;其次,在收敛因子a和种群位置更新公式中引入三角函数和贝塔分布,提高了算法后期的收敛速度;最后,在CEC2017常用的四类测试函数上的仿真实验表明,在相同的实验条件下,改进后的灰狼优化算法在求解精度和收敛速度上都有显著提升,且其性能明显优于其他智能优化算法和其他改进的灰狼优化算法㊂关键词:Kent映射;灰狼优化算法;贝塔分布;全局优化;自适应权重;混沌初始化0㊀引言灰狼优化(greywolfoptimization,GWO)算法是一种基于种群的元启发式算法,由Mirjalili等人[1]在2014年提出,是根据灰狼在围捕和狩猎过程中的行为启发得来㊂函数优化测试对比实验[2]表明,GWO算法与遗传算法(geneticalgorithm,GA)㊁粒子群优化(par⁃ticlewwarmoptimization,PSO)和差分进化(differentialevolution,DE)相比在部分函数上能够取得较好的结果,有一定竞争力㊂目前,GWO算法已成功应用于资源分配调度系统[3,4]㊁流量预测[5]㊁感知器训练[6]㊁位移预测[7,8]㊁石油利用率提高[9]㊁PID控制器优化[10,11]㊁特征选取[12]㊁皮革分割[13]等领域中㊂然而基本GWO算法存在易陷入局部最优㊁搜索后期收敛速度慢等缺点㊂针对GWO存在的不足,学者们提出了很多改进方法,并在相应函数集上进行了测试实验㊂文献[14]受粒子群优化算法的启发,提出一种控制参数随机动态调整策略,然而该改进算法也有一定的局限性,对Rosenbrock函数表现不佳㊂文献[15]提出一种新的位置更新公式,使算法具备跳出局部最优的能力㊂虽然该改进算法在搜索精度㊁稳定性以及收敛速度上均有明显的提升,但在后期收敛速度仍然较慢㊂文献[16]将遗传算法中的三种算子引入GWO中,提出一种遗传 灰狼混合算法,提高了算法的全局收敛性,针对精英个体的变异操作能有效地防止算法陷入局部最优值㊂实验结果显示,该算法对部分函数的求解过程效果显著,但由于变异操作的不确定性,对其他函数起到了相反的效果㊂文献[17]提出了一种基于对抗混沌序列的灰狼优化算法,引入罗切斯特(Logistic)混沌序列搜索方式跳出局部最优,但在判断何时使用混沌搜索的问题上并没有给出明确的说明㊂文献[18]将PSO中个体最优位置信息融入到位置更新公式,并引入帐篷混沌映射(tent)进行种群初始化㊂但在中高维(如100维)上,该算法的优化能力减弱㊂截至目前,改进的GWO算法都很难在提高收敛速度和避免陷入局部最优两方面同时达到最优㊂基本GWO算法中收敛因子线性得从2递减到0,而在实际优化问题中由于搜索过程复杂,线性变化的收敛因子导致算法的搜索能力弱㊂除此之外,位置更新方程中前三等级的狼权重相等,然而在自然界中灰狼狩猎过程中等级越高的狼起到更重要的作用㊂针对上述不足,本文设计出一种收敛因子的非线性变化方式和自适应权重的位置更新方程㊂同时,将贝塔分布引入和位置更新方程中协调算法的搜索能力㊂种群初始化时,为保证算法的收敛速度,引入Kent混沌映射产生初始种群加快算法的全局收敛速度㊂仿真实验表明该算法性能显著提高㊂1㊀基本灰狼优化算法在GWO算法中,设灰狼的种群规模为N,搜索空间为d维,则第i只灰狼在空间中的位置即为全局最优解㊂根据文献[1],灰狼包围猎物的位置更新为D=|CˑXp(t)-X(t)|(1)X(t+1)=Xp(t)-AˑD(2)其中:t为当前迭代次数;Xp=(x1,x2, ,xd)为猎物位置;AˑD为包围步长㊂向量A和C定义为A=2(r1-E)ˑa(3)C=2r2(4)其中:r1和r2为[0,1]的1行d列随机向量;E是每一个元素都是1的1行d列向量;a为收敛因子向量,随着迭代次数增加从2线性递减到0,即a=2(1-t/tmax)ˑET(5)由式(1) (5)可知,其他灰狼个体在捕食过程中由前三等级的狼引导指挥的捕食位置更新为Dα=|C1ˑXα-X|,Dβ=|C2ˑXβ-X|,Dδ=|C3ˑXδ-X|(6)X1=Xα-A1ˑDα,X2=Xβ-A2ˑDβ,X3=Xδ-A3ˑDδ(7)X(t+1)=X1+X2+X33(8)2㊀改进的灰狼优化算法2 1㊀基于Kent映射的种群初始化混沌理论因具有随机性㊁遍历性和非重复性等特点被广泛引入群智能算法中增强初始化群体的多样性以改善其算法的优化性能㊂与随机搜索相比,混沌理论可以对搜索空间进行全面彻底搜索㊂综上所述,为使初始种群个体尽可能地利用解空间的信息,本文将混沌理论中的Kent映射引入改进GWO算法的种群初始化,Kent映射的数学模型[19]为xk+1=xk/μ0<xk<μxk+1=(1-xk)/(1-μ)μɤxk<1{(9)xi,j=xmin,j+xk,jˑ(xmax,j-xmin,j)(10)Kent映射在其参数范围内是一个混沌映射,但当μ=0.5时,系统呈现短周期状态,故本文不取μ=0.5㊂在使用该映射时,初值x0不能与系统参数μ相同,否则系统将演化成周期系统㊂利用Kent混沌映射产生初始群体的具体步骤如算法1所示㊂算法1a)随机初始化种群初值x(i,j),设置种群规模N㊁维数d和最大混沌迭代步数k,随机产生一个数μ(j),μɪ(0,1),μʂ0.5且μʂx(1,j),i=j=k=1;b)以式(9)进行迭代,j㊁k自增1,产生xk,j序列,以式(10)进行迭代,i自增1,产生xi,j序列,此时产生的xi,j序列就是初始化的种群矩阵;c)若迭代达到最大次数,则跳转至d),否则返回b);d)终止运行,保存x序列㊂2 2㊀自适应调整策略GWO算法中的收敛因子a影响着整个算法的迭代和最终求解全局最优解,并且考虑到前三等级的狼在寻找猎物的过程中能力不同,而基本灰狼优化算法中最优解㊁次优解及第三优解视为同等重要,因此在本文中引入贝塔分布[20]和三角函数对收敛因子a及权重参数ω进行扰动㊂上述参数的非线性变化影响着算法的收敛速度及搜索能力㊂贝塔分布是满足二项分布和伯努利分布的密度函数,其分布在[0,1]㊂贝塔函数公式和概率分布函数分别为B(b1,b2)=ʏ10tb1-1(1-t)b2-1dt㊀b1>0,b2>0(11)f(x)=xb1-1(1-x)b2-1B(b1,b2)㊀0<x<1(12)综上所述,本文提出收敛因子a的调整策略:a=2-2tan(1ξˑ(tMiter)ˑπ)+0.2B(b1,b2)fiɤfavgamaxfi>favgìîíïïïï(13)其中:ξ=2-2tanh(t/Miterˑπ)㊂为进一步加快GWO算法的收敛速度,本文提出一种加入贝塔分布扰动的加权位置更新方式,如式(14)所示㊂X(t+1)=ω1X1+ω2X2+ω3X3(14)其中:ω1=ω1min+(ω1max-ω1min)cos(2πtMiter)+σB(b1,b2)(15)ω1min=0.6,ω1max=0.8(16)ω3=ω3min+(ω3max-ω3min)cos(2πtMiter)-σB(b1,b2)(17)ω3min=0.08,ω3max=0.1(18)ω2=1-ω1-ω3(19)σ为惯性权重的调整因子,与贝塔分布融合后控制惯性权重ω1,2,3的偏移程度,使算法的收敛速度和全局搜索能力提高㊂在本文中,取σ=0.1㊂2 3㊀AWGWO算法描述改进算法AWGWO(基于Kent映射的自适应权重的灰狼优化算法)具体实现步骤如算法2所示㊂算法2a)初始化种群规模N,最大混沌迭代步数k,Kent映射的相关系数μ值,求解维度d,最大迭代次数Miter,灰狼种群的初始位置X,初始化惯性权重调整系数σ,惯性权重ω等参数;b)利用算法1初始化产生灰狼种群{xdi,i=1d,2d, ,Nd};c)计算群体中每个个体的适应度值{f(xdi),i=1d,2d, ,Nd},并记录前三个最优个体α㊁β㊁δ,其对应位置分别为xα㊁xβ㊁xδ;d)i㊁j增加1,根据式(13)计算距离控制参数a,根据式(3)(4)计算参数A㊁C的值,根据式(6)(7)(14)更新个体位置;e)根据更新的个体位置重新计算群体中个体的适应度值{f(xi),i=1,2, ,N},更新前三个最优个体对应位置xα㊁xβ㊁xδ,迭代次数增1;f)判断是否满足终止条件,若满足则返回全局最优适应度值,否则返回d)进行循环迭代㊂3㊀实验分析3 1㊀实验测试函数为了验证本文算法的适用性㊁有效性和高效性,选择CEC2017中常用测试函数,与基本GWO[1]㊁PSO㊁EGWO[14]㊁EEGWO[2]㊁IGWO[15]算法进行实验对比㊂其中,EGWO对种群初始化方法㊁收敛因子和位置更新公式全部进行了改变,EEGWO根据PSO的启发对位置更新公式和收敛因子进行了改变,IGWO仅对位置更新公式进行了改变㊂测试函数中,f1㊁f2为单峰函数,f3为多峰函数,f4㊁f5为混合函数;f6为复合函数,所有函数定义域为[-100,100]㊂函数具体定义如表1所示㊂表1㊀CEC2017测试函数编号函数名定义域最优解f1bentcigarfunction[-100,100]100f2sumofdifferentpowerfunction[-100,100]200f3Rosenbrock sfunction[-100,100]400f4hybridfunction1[-100,100]1100f5hybridfunction2[-100,100]1200f6compositionfunction8[-100,100]28003 2㊀参数设置为保证比较结果的公平性,所有算法的各项参数设置如下:种群规模N为90,为增加寻优难度,将维度d设置为30㊁50和100,最大迭代次数Miter设置为5000,根据文献[20]将AWGWO算法中贝塔分布的参数设置为b1=1,b2=2㊂3 3㊀自适应调整策略在基本GWO算法中,种群初始化的值对最终的寻优结果有重要作用,但基本算法中初始化种群采用随机数生成的方法,这种方法并不能对搜索空间进行全面搜索㊂与随机搜索相比,混沌理论可以对搜索空间进行全面彻底搜索㊂因此,本文提出了一种基于Kent映射的混沌初始化种群方法,并对采用Kent映射初始化的GWO_kent算法与随机初始化的GWO算法在30维进行实验对比以验证该部分改进的有效性,加粗的部分表示同一函数上的最优解,如表2所示㊂表2㊀初始化种群实验对比函数GWO_kentGWO函数GWO_kentGWOf11.12E+099.73E+08f41.47E+031.56E+03f21.58E+301.46E+31f54.81E+076.27E+07f35.59E+025.71E+02f63.35E+033.38E+03㊀㊀从表2中可以看出,除了在单峰函数f1的求解上初始化方法和随机方法相近外,在相同测试环境下本文提出的初始化方法的求解精度比随机初始化的求解精度要更高㊂3 4㊀收敛因子在基本GWO算法中收敛因子a影响着整个算法的迭代和最终求解全局最优解㊂因此,本文提出了一种引用三角函数和贝塔分布干扰的收敛因子更新公式,并对采用改进收敛因子的GWO_a算法与基本GWO算法在30维进行实验对比以验证该部分改进的有效性,加粗的部分表示同一函数上的最优解,如表3所示㊂表3㊀收敛因子实验对比函数GWO_aGWO函数GWO_aGWOf17.04E+059.73E+08f41.25E+031.56E+03f21.16E+191.46E+31f55.34E+066.27E+07f34.87E+025.71E+02f63.25E+033.38E+03㊀㊀从表3中可以看出,在相同测试环境下本文提出的收敛因子更新方法比线性更新方法的求解精度要更高㊂3 5㊀惯性权重在基本GWO算法中前三等级狼的惯性权重都是一样的㊂因此,本文提出了一种引用三角函数和贝塔分布干扰的惯性权重,并对改进后的GWO_w算法与基本GWO算法在30维进行实验对比以验证该部分改进的有效性,加粗的部分表示同一函数上的最优解,如表4所示㊂表4㊀惯性权重实验对比函数GWO_wGWO函数GWO_wGWOf17.53E+079.73E+08f41.22E+031.56E+03f21.06E+241.46E+31f59.05E+066.27E+07f35.17E+025.71E+02f63.25E+033.38E+03㊀㊀从表4中可以看出,在相同测试环境下本文提出的权重更新策略的求解精度比固定惯性权重的求解精度要更高㊂3 6㊀实验结果与分析为避免随机性和偶然性对实验结果造成影响,此次实验对两种算法在低高维30㊁50和中高维100上分别独立运行30次,不同维度的选择是为了增加寻优难度,以便于验证AWGWO算法在处理各种复杂问题时的能力,尤其是在100维情况下的求解结果有利于判断算法的稳定性和鲁棒性㊂统计各函数的适应度平均值和方差,实验结果如表5 7和图1 3所示㊂其中,表5 7给出了AWGWO算法与其他基本智能优化算法和改进的灰狼优化算法在维度为30㊁50和100上的函数寻优结果,在表中加粗的部分表示同一函数上的最优解㊂图1 3是各种算法寻优过程的收敛曲线,表示算法在各函数中的收敛情况㊂所有测试均在IntelCorei7⁃4710MQ2.50GHzCPU㊁8GB内存的计算机上进行,编写程序在MATLABR2018b上实现㊂3 6 1㊀求解精度从表5㊁6中的实验数据可以看出,当维度为30㊁50维时,AWGWO算法在单峰函数f1㊁f2上的求解效果相比于其他算法取得了较高的准确度,从实验结果可以看到其准确度至少提高了1000倍㊂从多峰函数f3上的求解效果可知,AWGWO在f3函数上的求解精度优于其他算法,比较接近该函数的全局最小值,同基本GWO算法相比,准确度提高了25%㊂针对混合函数f4㊁f5,改进算法的求解精度明显更高,f4的求解精度较其他五个算法中最好的PSO算法提高了2%㊂方差大小也反映出AWGWO算法的求解稳定性更高;在复合函数f6上,AWGWO算法的求解精度更高㊂从六个常用函数的求解结果可以看出,同其他智能优化算法相比,改进算法AWGWO在求解函数最优解时精度较高,且随着维数的增加,从方差大小可以得出该算法的求解稳定性也相对更好㊂从表7中的实验数据可以看出,当维度为100维时,改进算法的求解精度同30㊁50维的求解结果相比差异较其他算法更小,由此说明随着维数的增加,如增加到中高维100维时,AWGWO算法的求解稳定性更好,且在其他算法受到维数灾难进而最优值精度受到干扰的情况下,AWGWO算法的求解精度依然稳定且鲁棒性更好,凸显出其在求解高维函数上求解准确度稳定性和鲁棒性更好,求解优势更大㊂表5㊀AWGWO算法和其他智能优化算法在30维对六个函数的寻优结果比较函数PSOmeanvarianceGWOmeanvarianceEGWOmeanvarianceEEGWOmeanvarianceIGWOmeanvarianceAWGWOmeanvariancef17.38E+092.87E+199.73E+086.03E+174.25E+083.70E+153.72E+098.19E+193.45E+081.20E+171.62E+052.17E+09f21.05E+351.43E+711.46E+316.42E+635.50E+279.09E+562.14E+333.01E+675.15E+252.03E+713.16E+151.31E+32f31.66E+039.09E+055.71E+021.14E+035.65E+022.65E+023.52E+034.96E+065.29E+028.59E+024.91E+023.19E+02f41.26E+032.04E+031.56E+032.63E+051.30E+036.97E+031.73E+033.39E+051.30E+037.47E+031.24E+031.51E+03f54.76E+082.59E+176.27E+071.28E+155.27E+073.93E+147.44E+071.47E+151.76E+073.36E+142.94E+062.29E+12f63.88E+034.09E+043.38E+033.46E+033.32E+034.32E+023.51E+031.93E+043.31E+031.53E+033.19E+031.73E+03表6㊀AWGWO算法和其他智能优化算法在50维对六个函数的寻优结果比较函数PSOmeanvarianceGWOmeanvarianceEGWOmeanvarianceEEGWOmeanvarianceIGWOmeanvarianceAWGWOmeanvariancef12.77E+109.89E+195.22E+096.93E+183.91E+092.90E+175.08E+102.30E+201.69E+092.57E+188.64E+053.46E+10f21.61E+667.8E+1332.94E+486.18E+971.40E+555.84E+1111.28E+528.5E+1044.27E+463.24E+943.78E+421.44E+86f36.86E+036.97E+068.84E+024.90E+041.25E+033.60E+044.89E+031.38E+076.96E+025.94E+035.47E+023.18E+03f41.67E+031.38E+052.94E+031.23E+064.77E+033.82E+066.35E+036.97E+061.79E+031.40E+051.35E+032.70E+03f59.69E+095.07E+196.02E+087.69E+173.17E+096.14E+181.79E+106.00E+192.76E+082.09E+172.43E+071.44E+14f66.30E+037.41E+053.95E+031.07E+054.29E+031.12E+056.02E+031.37E+063.71E+036.10E+043.33E+031.43E+03表7㊀AWGWO算法和其他智能优化算法在100维对六个函数的寻优结果比较函数PSOmeanvarianceGWOmeanvarianceEGWOmeanvarianceEEGWOmeanvarianceIGWOmeanvarianceAWGWOmeanvariancef11.19E+114.47E+203.12E+103.82E+195.04E+102.50E+201.39E+115.61E+201.31E+103.41E+197.78E+061.72E+12f210E+1503.0E+3035.1E+1237.6E+2487.0E+1391.2E+2812.6E+1501.5E+3029.02E+1152.4E+2336.6E+1101.3E+223f32.56E+048.45E+072.99E+032.65E+058.02E+038.97E+062.08E+045.09E+071.70E+037.06E+047.44E+021.37E+03f44.11E+032.95E+064.24E+041.62E+087.02E+042.14E+085.93E+041.27E+082.50E+044.72E+073.48E+031.73E+05f55.60E+103.33E+204.91E+097.21E+181.38E+101.38E+206.57E+106.86E+202.04E+106.09E+171.45E+081.84E+15f61.86E+046.78E+066.93E+039.99E+059.21E+039.87E+061.46E+042.55E+075.50E+034.93E+053.58E+031.81E+033 6 2㊀收敛过程图1(a) (f)㊁2(a) (f)展示的是六种不同的智能优化算法PSO㊁GWO㊁EGWO㊁EEGWO㊁IGWO㊁AWGWO在30㊁50维情况下对函数求解的收敛过程㊂其中,函数f1㊁f2是单峰函数㊂从迭代收敛图可以看出,AWGWO算法比其他五种算法的收敛性更好,而且在后期搜索性能更优,因而最终寻优结果更好;f3是多峰函数,从图中可以看出其收敛效果较其他类型的智能算法更好,没有陷入局部最优㊁跳出早熟情况;函数f4㊁f5是混合函数,从图中可以看出改进算法在该函数寻优过程中后期收敛速度快,跳出了局部最优且寻优精度更高;函数f6是复合函数,从图中可以看出改进算法在该函数中寻优精度更高,收敛速度更快㊂综合来看,在低高维(30㊁50维)情况下,相比于其他智能优化算法,AWGWO算法在四种不同的函数求解过程中具有较好的收敛情况和更高的求解精度,且基本GWO算法后期收敛速度慢的情况也得到了明显改善㊂图1㊀六种智能优化算法在30维对六个函数的收敛性能比较图2㊀六种智能优化算法在50维对六个函数的收敛性能比较图3(a) (f)展示的是六种不同的智能优化算法在100维情况下对函数求解的收敛过程㊂相比于其他智能优化算法,可以明显地看到AWGWO算法在高维情况下的收敛速度和后期收敛效果更突出,比30维和50维的收敛速度和收敛效果都更优于其他五种算法,由此可得在更高维的函数求解中,AWGWO算法的收敛速度和跳出局部最小的能力更加明显,后期收敛速度慢的情况也得到了明显改善㊂从收敛图中可以观察到,AWGWO算法的收敛效果好,且随着维数的增加其收敛情况和后期收敛速度更有优势㊂4㊀结束语本文针对基本GWO存在的易陷入局部最优㊁易早熟收敛㊁求解精度较低等问题,提出一种基于Kent映射和自适应权重的灰狼优化算法㊂种群初始化阶段,引入混沌学中的Kent映射,与随机搜索相比,Kent映射的引入可以使算法对搜索空间进行全面彻底的搜索㊂通过修改位置更新方程和收敛因子,提高了算法的收敛速度,平衡了算法的搜索和开发能力㊂仿真实验表明,本文改进的AWGWO算法在单峰函数㊁多峰函数㊁复合函数和混合函数这四大类标准函数的寻优结果中具有较高的精度和较快的收敛速度,与其他基本类型的智能优化算法和改进的GWO算法相比有较好的收敛性能和较高的求解精度和稳定性,且该算法在高维函数求解中求解的稳定性和鲁棒性更好,求解能力优于其他算法㊂下一步将进一步对算法性能进行提升,并将其应用于实际优化问题㊂图3㊀六种智能优化算法在100维对六个函数的收敛性能比较参考文献:[1]MirjaliliS,LewisA.Greywolfoptimizer[J].AdvancesinEnginee⁃ringSoftware,2014,69:46⁃61.[2]LongWen,JiaoJianjun,LiangXiming,etal.Anexploration⁃enhancedgreywolfoptimizertosolvehigh⁃dimensionalnumericaloptimization[J].EngineeringApplicationsofArtificialIntelligence,2018,68(2):63⁃80.[3]TikhamarineY,Souag⁃GamaneD,KisiO.Anewintelligentmethodformonthlystreamflowprediction:hybridwaveletsupportvectorregressionbasedongreywolfoptimizer[J].ArabianJournalofGeosciences,2019,12(17):articleNo.540.[4]YangYefeng,YangBo,WangShilong,etal.Animprovedgreywolfoptimizeralgorithmforenergy⁃awareservicecompositionincloudma⁃nufacturing[J].TheInternationalJournalofAdvancedManufac⁃turingTechnology,2019,105(7⁃8):3079⁃3091.[5]AhmadZ,AmirS,MahdiJ.Identificationofinfluentialusersinsocialnetworkusinggraywolfoptimizationalgorithm[J].ExpertSystemswithApplications,2020,142(9):112971.[6]晏福,徐建中,李奉书.混沌灰狼优化算法训练多层感知器[J].电子与信息学报,2019,41(4):115⁃122.[7]LianCheng,ZengZhigang,YaoWei,etal.Displacementpredictionmodeloflandslidebasedonamodifiedensembleempiricalmodede⁃compositionandextremelearningmachine[J].NaturalHazards,2013,66(2):759⁃771.[8]YuZhi,ShiXiuzhi,ZhouJian,etal.Predictionofblast⁃inducedrockmovementduringbenchblasting:useofgraywolfoptimizerandsupportvectorregression[J/OL].NaturalResourcesResearch,2019(9):doi:10.1007/s11053⁃019⁃09593⁃3.[9]ZhaoBin,RenYi,GaoDiankui,etal.Energyutilizationefficiencyeva⁃luationmodelofrefiningunitbasedoncontourletneuralnetworkopti⁃mizedbyimprovedgreyoptimizationalgorithm[J].Energy,2019,185(10):1032⁃1044.[10]杨博,束洪春,朱德娜,等.基于群灰狼优化的光伏逆变器最优无源分数阶PID控制[J].控制与决策,2019,11(15):11⁃12.[11]HattaNM,ZainAM,SallehuddinR,etal.Recentstudiesonoptimisa⁃tionmethodofgreywolfoptimiser(GWO):areview(2014⁃2017)[J].ArtificialIntelligenceReview,2019,52:2651⁃2683.[12]Abdel⁃BassetM,El⁃ShahatD,El⁃HenawyI,etal.Anewfusionofgreywolfoptimizeralgorithmwithatwo⁃phasemutationforfeatureselection[J].ExpertSystemswithApplications,2019,139:112824.[13]SenelFA,GekneF,YyukselAS.AnovelhybridPSO⁃GWOalgorithmforoptimizationproblems[J].EngineeringwithComputers,2018,35(4):1359⁃1373.[14]龙文,蔡绍洪,焦建军.一种改进的灰狼优化算法[J].电子学报,2019,47(1):171⁃177.[15]邢尹,陈闯,刘立龙.求解函数最优解的改进灰狼算法[J].计算机仿真,2018,35(9):264⁃268.[16]顾清华,李学现,卢才武,等.求解高维复杂函数的遗传 灰狼混合算法[J].控制与决策,2019,11(23):1⁃8.[17]GuptaS,DeepK.Anopposition⁃basedchaoticgreywolfoptimizerforglobaloptimisationtasks[J].JournalofExperimental&TheoreticalArtificialIntelligence,2018,31(5):751⁃779.[18]TengZhijun,LyuJinling,GuoLiwen.Animprovedhybridgreywolfopti⁃mizationalgorithm[J].SoftComputing,2018,23(15):6617⁃6631.[19]TavazoeiMS,HaeriM.Comparisonofdifferentone⁃dimensionalmapsaschaoticsearchpatterninchaosoptimizationalgorithms[J].AppliedMathematicsandComputation,2007,187(2):1076⁃1085.[20]YuanXiaohui,ChenChen,JiangMin,etal.PredictionintervalofwindpowerusingparameteroptimizedBetadistributionbasedLSTMmodel[J].AppliedSoftComputing,2019,82(9):105550.(上接第36页)c)动态攻击策略下,考虑局部信息(节点度㊁节点强度)和全局信息(加权介数中心性和加权接近中心性)的节点重要度排序方法,对应的蓄意攻击都会严重影响城市公交网络的行程时间可靠性,导致网络的准时性严重下降㊂因此,在动态观测下,需全面考虑不同角度的关键节点,保证观测的全面性㊂d)动态攻击策略下,城市公交网络的行程时间可靠性在蓄意攻击早期大幅度下降㊂因此,在早期加大对关键节点的防护力度,能大大减少蓄意攻击对网络准时性的影响㊂e)单独攻击策略表明对网络行程时间可靠性影响大的节点往往处于多条公交线路的汇集处,对网络行程时间可靠性影响大的边往往与网络中重要节点具有连接关系㊂因此,运营者需加强对这些节点和边的保护,以此保证城市公交网络运营的准时性㊂参考文献:[1]AngeloudisP,FiskD.Largesubwaysystemsascomplexnetworks[J].PhysicaA:StatisticalMechanicsanditsApplications,2005,367(7):553⁃558.[2]王甲生,吴晓平,陈永强.不同信息条件下加权复杂网络抗毁性仿真研究[J].中南大学学报:自然科学版,2013,44(5):1888⁃1894.[3]种鹏云,帅斌,尹惠.基于复杂网络的危险品运输网络抗毁性仿真[J].复杂系统与复杂性科学,2014,11(4):10⁃18.[4]段东立,吴俊,邓宏钟,等.基于可调负载重分配的复杂网络级联失效模型[J].系统工程理论与实践,2013,33(1):203⁃208.[5]刘朝阳,吕永波,刘步实,等.城市轨道交通运输网络级联失效抗毁性研究[J].交通运输系统工程与信息,2018,18(5):82⁃87.[6]张勇,白玉,杨晓光.城市道路网络的行程时间可靠性[J].系统工程理论与实践,2009,29(8):171⁃176.[7]FerberC,HolovatchT,HolovatchY,etal.Publictransportnetworks:empiricalanalysisandmodeling[J].TheEuropeanPhysicalJour⁃nalB,2009,68(2):261⁃275.[8]王婧,何杰,吴炼.雨天高速公路网行程时间可靠性评价方法[J].交通运输系统工程与信息,2011,11(6):117⁃123.[9]IidaY.Basicconceptsfuturedirectionsofroadnetworkreliabilityana⁃lysis[J].JournalofAdvancedTransportation,1999,33(2):125⁃134.[10]LyuLinyuan,ChenDuanbing,RenXiaolong,etal.Vitalnodesidentifi⁃cationincomplexnetworks[J].PhysicsReports,2016,650(9):1⁃63.[11]李黎,管晓宏,赵千川,等.网络生存适应性的多目标评估[J].西安交通大学学报,2010,44(10):1⁃7.[12]陈峰,胡映月,李小红,等.城市轨道交通有权网络相继故障可靠性研究[J].交通运输系统工程与信息,2016,16(2):139⁃145.[13]HeegaardPE,TrivediKS.Networksurvivabilitymodeling[J].Com⁃puterNetworks,2009,53(8):1215⁃1334.[14]AlbertR,JeongH,BarabasiAL.Errorandattacktoleranceofcomplexnetworks[J].Nature,2000,406(6794):378⁃382.。
GWO(灰狼优化)算法以优化SVM算法的参数c和g为例,对GWO算法MATLAB源码进行了逐行中文注解。
————————————————tic % 计时器%% 清空环境变量close allformat compact%% 数据提取% 载入测试数据wine,其中包含的数据为classnumber = 3,wine:178*13的矩阵,wine_labes:178*1的列向量load wine.mat% 选定训练集和测试集% 将第一类的1-30,第二类的60-95,第三类的131-153做为训练集train_wine = [wine(1:30,:);wine(60:95,:);wine(131:153,:)];% 相应的训练集的标签也要分离出来train_wine_labels = [wine_labels(1:30);wine_labels(60:95);wine_labels(131:153)] ;% 将第一类的31-59,第二类的96-130,第三类的154-178做为测试集test_wine = [wine(31:59,:);wine(96:130,:);wine(154:178,:)];% 相应的测试集的标签也要分离出来test_wine_labels = [wine_labels(31:59);wine_labels(96:130);wine_labels(154:178 )];%% 数据预处理% 数据预处理,将训练集和测试集归一化到[0,1]区间[mtrain,ntrain] = size(train_wine);[mtest,ntest] = size(test_wine);dataset = [train_wine;test_wine];% mapminmax为MATLAB自带的归一化函数[dataset_scale,ps] = mapminmax(dataset',0,1);dataset_scale = dataset_scale';train_wine = dataset_scale(1:mtrain,:);test_wine = dataset_scale( (mtrain+1):(mtrain+mtest),: );%% 利用灰狼算法选择最佳的SVM参数c和gSearchAgents_no=10; % 狼群数量,Number of search agents Max_iteration=10; % 最大迭代次数,Maximum numbef of iterationsdim=2; % 此例需要优化两个参数c和g,number of your variableslb=[0.01,0.01]; % 参数取值下界ub=[100,100]; % 参数取值上界% v = 5; % SVM Cross Validation参数,默认为5% initialize alpha, beta, and delta_posAlpha_pos=zeros(1,dim); % 初始化Alpha狼的位置Alpha_score=inf; % 初始化Alpha狼的目标函数值,change this to -inf for maximization problemsBeta_pos=zeros(1,dim); % 初始化Beta狼的位置Beta_score=inf; % 初始化Beta狼的目标函数值,change this to -inf for maximization problemsDelta_pos=zeros(1,dim); % 初始化Delta狼的位置Delta_score=inf; % 初始化Delta狼的目标函数值,change this to -inf for maximization problems%Initialize the positions of search agentsPositions=initialization(SearchAgents_no,dim,ub,lb);Convergence_curve=zeros(1,Max_iteration);l=0; % Loop counter循环计数器% Main loop主循环while lMax_iteration % 对迭代次数循环for i=1:size(Positions,1) % 遍历每个狼% Return back the search agents that go beyond the boundaries of the search space% 若搜索位置超过了搜索空间,需要重新回到搜索空间Flag4ub=Positions(i,:)ub;Flag4lb=Positions(i,:)lb;% 若狼的位置在最大值和最小值之间,则位置不需要调整,若超出最大值,最回到最大值边界;% 若超出最小值,最回答最小值边界Positions(i,:)=(Positions(i,:).*(~(Flag4ub+Flag4lb)))+ub.*F lag4ub+lb.*Flag4lb; % ~表示取反% 计算适应度函数值cmd = [' -c ',num2str(Positions(i,1)),' -g ',num2str(Positions(i,2))];model=svmtrain(train_wine_labels,train_wine,cmd); % SVM 模型训练[~,fitness]=svmpredict(test_wine_labels,test_wine,model); % SVM模型预测及其精度fitness=100-fitness(1); % 以错误率最小化为目标% Update Alpha, Beta, and Deltaif fitnessAlpha_score % 如果目标函数值小于Alpha狼的目标函数值Alpha_score=fitness; % 则将Alpha狼的目标函数值更新为最优目标函数值,Update alphaAlpha_pos=Positions(i,:); % 同时将Alpha狼的位置更新为最优位置if fitnessAlpha_score fitnessBeta_score % 如果目标函数值介于于Alpha狼和Beta狼的目标函数值之间Beta_score=fitness; % 则将Beta狼的目标函数值更新为最优目标函数值,Update betaBeta_pos=Positions(i,:); % 同时更新Beta狼的位置if fitnessAlpha_score fitnessBeta_score fitnessDelta_score % 如果目标函数值介于于Beta狼和Delta狼的目标函数值之间Delta_score=fitness; % 则将Delta狼的目标函数值更新为最优目标函数值,Update deltaDelta_pos=Positions(i,:); % 同时更新Delta狼的位置a=2-l*((2)-Max_iteration); % 对每一次迭代,计算相应的a 值,a decreases linearly fron 2 to 0% Update the Position of search agents including omegas for i=1:size(Positions,1) % 遍历每个狼for j=1:size(Positions,2) % 遍历每个维度% 包围猎物,位置更新r1=rand(); % r1 is a random number in [0,1]r2=rand(); % r2 is a random number in [0,1]A1=2*a*r1-a; % 计算系数A,Equation (3.3)C1=2*r2; % 计算系数C,Equation (3.4)% Alpha狼位置更新D_alpha=abs(C1*Alpha_pos(j)-Positions(i,j)); % Equation (3.5)-part 1X1=Alpha_pos(j)-A1*D_alpha; % Equation (3.6)-part 1r1=rand();r2=rand();A2=2*a*r1-a; % 计算系数A,Equation (3.3)C2=2*r2; % 计算系数C,Equation (3.4)% Beta狼位置更新D_beta=abs(C2*Beta_pos(j)-Positions(i,j)); % Equation (3.5)-part 2X2=Beta_pos(j)-A2*D_beta; % Equation (3.6)-part 2r1=rand();r2=rand();A3=2*a*r1-a; % 计算系数A,Equation (3.3)C3=2*r2; % 计算系数C,Equation (3.4)% Delta狼位置更新D_delta=abs(C3*Delta_pos(j)-Positions(i,j)); % Equation(3.5)-part 3X3=Delta_pos(j)-A3*D_delta; % Equation (3.5)-part 3% 位置更新Positions(i,j)=(X1+X2+X3)-3;% Equation (3.7)Convergence_curve(l)=Alpha_score;bestc=Alpha_pos(1,1);bestg=Alpha_pos(1,2);bestGWOaccuarcy=Alpha_score;%% 打印参数选择结果disp('打印选择结果');str=sprintf('Best Cross Validation Accuracy = %g%%,Best c = %g,Best g = %g',bestGWOaccuarcy*100,bestc,bestg);disp(str)%% 利用最佳的参数进行SVM网络训练cmd_gwosvm = ['-c ',num2str(bestc),' -g ',num2str(bestg)];model_gwosvm = svmtrain(train_wine_labels,train_wine,cmd_gwosvm);%% SVM网络预测[predict_label,accuracy] = svmpredict(test_wine_labels,test_wine,model_gwosvm);% 打印测试集分类准确率total = length(test_wine_labels);right = sum(predict_label == test_wine_labels);disp('打印测试集分类准确率');str = sprintf( 'Accuracy = %g%% (%d-%d)',accuracy(1),right,total);disp(str);%% 结果分析% 测试集的实际分类和预测分类图plot(test_wine_labels,'o');plot(predict_label,'r*');xlabel('测试集样本','FontSize',12);ylabel('类别标签','FontSize',12);legend('实际测试集分类','预测测试集分类');title('测试集的实际分类和预测分类图','FontSize',12);%% 显示程序运行时间% This function initialize the first population of search agentsfunctionPositions=initialization(SearchAgents_no,dim,ub,lb) Boundary_no= size(ub,2); % numnber of boundaries% If the boundaries of all variables are equal and user enter a signle% number for both ub and lbif Boundary_no==1Positions=rand(SearchAgents_no,dim).*(ub-lb)+lb;% If each variable has a different lb and ubif Boundary_no1for i=1:dimub_i=ub(i);lb_i=lb(i);Positions(:,i)=rand(SearchAgents_no,1).*(ub_i-lb_i)+lb_i;代码修改及说明:安装libsvm下载libsvm将下载的libsvm直接放在matlab安装路径toolbox下点击matlab “主页-设置路径” 选择libsvm包中的windows文件夹将libsvm windows文件夹下的 svmtrain 及svmpredict函数修改为 svmtrain2 和 svmpredict2等形式,目的是防止与matlab下冲突(注:2017及以下版本可以使用svmtrain,高版本不再支持)源码修改将所有svmtrain()及svmpredict() 函数改为 svmtrain2()及svmpredict2() ;将代码[~,fitness]=svmpredict(test_wine_labels,test_wine,model); % SVM模型预测及其精度改为[~,~,fitness]=svmpredict(test_wine_labels,test_wine,model); % SVM模型预测及其精度或者[fitness,~,~]=svmpredict(test_wine_labels,test_wine,model); % SVM模型预测及其精度(至于为什么还未清楚?目前我还没有看代码,原理也还没有看,仅改了下代码)将代码[output_test_pre,acc]=svmpredict2(output_test',input_test', model_gwo_svr); % SVM模型预测及其精度改为[output_test_pre,acc,~]=svmpredict2(output_test',input_test ',model_gwo_svr); % SVM模型预测及其精度(同上,仅是为了解决维度的问题)%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%人们总是能从大自然中得到许多启迪,从生物界的各种自然现象或过程中获得各种灵感,由此提出了许多能够解决复杂函数优化的启发式算法,主要分为演化算法和群体智能算法。