一种基于多策略协同作用的粒子群优化的方法
【技术领域】
[0001] 本发明属于人工智能领域中的智能计算,特别是涉及一种具有高效函数优化的实 现方法。
【背景技术】
[0002] 群智能算法是一种通过模拟自然界生物群体的随机优化算法,粒子群优化算法 (particleswarmoptimization,PS0)是由学者Kennedy和Eberhart提出的一种群体智能 算法。
[0003] PS0算法是一种随机的智能优化算法,源于对鸟群觅食行为的研究。算法中每个粒 子的位置都是搜索空间中潜在的一个解,在每次迭代搜索过程中,粒子通过追逐个体极值 pbest和全局极值gbest来更新自己的位置,粒子都有一个由适应度函数决定的适应值,评 价粒子位置的优劣。假设在D维搜索空间中有NP个粒子,用向量\= (Xll,xl2,...,xld)表 示第i个粒子在搜索空间中的位置,向量Vi=(vvi2,. . .,vid)表示第i个粒子在迭代搜 索中的速度。第i个粒子的个体极值用Pi=(PPu,. . .,Pid)表示,粒子的全局极值表示 为pg=(pgl,pg2,. . .,pgd)。粒子的更新公式如下:
[0004]vid (t+1) =wvid (t) (pid-xid (t)) +c2r2 (pgd-xid (t)) (1)
[0005] xid(t+l) =xid(t)+vid(t+l) (2)
[0006] 其中,t表示当前迭代搜索的次数,CJPC2分别为自我认知参数和社会认知参 数,通常取为C1=C1= 2 为非负常数,称为惯性权重;r1与r2为[0, 1]之间的随机数; vlde[-V_,v_],为粒子的最大速度。
[0007]由于PS0算法具有结构简单、调整参数少、搜索效率高、容易实现等特点,已经广 泛的应用于路径优化,神经网络的训练,多目标优化,电力系统控制等领域。然而,PS0算法 也存在易早熟收敛、进化后期收敛速度慢等缺点。针对这些问题,很多学者进行了改进的研 究。SHIY和EBERHARTR.提出对惯性权重采用一种线性递减的方式动态的更新权重,使 粒子迭代初期拥有较大权重利于粒子快速搜索,迭代后期权重较小而利于粒子局部搜索。 KLRANMS和GUNDUZΜ提出一种融合人工蜂群算法的粒子群优化算法,通过粒子群算法与 人工蜂群算法中的信息共享,增强全局和局部的搜索能力,提升算法性能。刘朝华等人提出 一种协同进化的的粒子群算法,粒子间的协同作用,扩大了解空间的搜索范围,粒子间共享 着更加丰富的信息。周新宇等人提出一种精英反向学习的策略,通过对适应度值较好的粒 子进行反向学习,增强算法的全局勘探能力。
[0008] 为了进一步的改进粒子群算法的不足,将一些变异策略引入到粒子群中,王晖等 人针对粒子群算法容易陷入局部极值,提出了粒子群算法中引入柯西变异,对优秀粒子进 行变异产生更好的解来引导粒子的运动。SUBBARAJΡ等人提出融合的柯西变异粒子群算 法与自适应变异的粒子群算法,利用变异策略,提升了解决最优无功调度问题的性能。朱 德刚等人提出一种基于高斯扰动策略的粒子群算法,采用对粒子个体最优位置加入高斯扰 动,防止粒子陷入局部最优。SAHNEHSARAEI等人提出将遗传算法中的交叉和变异操作与粒 子群算法混合,利用粒子群算法与遗传算法交叉和变异的各自优势,较大程度的提升了算 法性能。
[0009] 上面的变异策略大多只是单个变异策略对粒子进行作用。粒子在迭代执行过程 中,各个阶段执行的特征不同,单一的变异策略在粒子执行的某个阶段会起作用,在粒子执 行的另一些阶段,作用效果并不明显。
【发明内容】
[0010] 本发明旨在克服现有技术缺陷,目的在于提供一种能够提尚函数优化精度和提尚 函数优化稳定性的多策略协同作用的粒子群优化的方法。
[0011] 为实现上述目的,本发明采用的技术方案具体步骤是:
[0012] 第一步、粒子种群的初始化
[0013] 对于粒子的初始化,首先随机初始化种群大小为NP个粒子,包括粒子的位置L、速 度V、控制粒子变化的惯性权重W、粒子的迭代次数T、粒子的维数D、粒子的社会学习能力Q 和粒子的自我学习能力C2;则粒子的总评估次数Sum为:
[0014] Sum=NP*T(1)
[0015] 第二步、对NP个粒子计算适应度值
[0016] 每个粒子都有一个由适应度函数决定的适应度值,所述适应度值用于评价粒子的 优劣,适应度函数用f(*)表示;NP个粒子中每个粒子还有个体极值,第i个粒子的个体极 值用Pi=(Pn,Pl2,. . .,Pld)表示;NP个粒子中粒子的全局极值用Pg=(Pgl,Pg2,. . .,Pgd)表 示;通过粒子的运行迭代,更新粒子的适应度值;
[0017] 第三步、确定粒子速度和位置变化的方式
[0018] 首先在粒子执行过程中给定一个概率P,所给的概率用来控制粒子按照精英反向 学习策略来执行粒子速度和位置的变化或按照高斯扰动变异策略来执行粒子速度和位置 的变化,然后产生一个(〇, 1)之间的随机数R为:
[0019]R=rand(0, 1) (2)
[0020] 最后比较R和P的大小,当R〈P时,按照公式(3)给出的精英反向学习策略来执行 粒子位置的变化,
[0021]
[0022] 其中&1和bi是粒子的动态边界的最大值和最小值,X^是当前粒子中的精英个 体;
[0023] 当R>P时,按照公式(4)给出高斯扰动变异策略来执行粒子置的变化;
[0024] Xid (t+1) =Xid (t) * (l+k*Gauss(u,δ2)) (4)
[0025] 其中ke(〇,l),u表示期望,δ2表示方差;
[0026] 第四步、对粒子的位置执行柯西变异
[0027] 首先对粒子进行柯西变异,在粒子迭代进化的过程中,所有的粒子都向全局最优 的粒子学习,较好的最优粒子能提高粒子的搜索效率;柯西分布是一个数学期望不存在的 连续分布函数,一维的柯西分布概率密度函数为:
[0028]
[0029] 其中t为比例参数且大于0 ;通过对粒子的最优位置进行柯西变异,适应度函数评 价粒子变异后的位置,将较优的位置赋给粒子,让粒子群体拥有一个较好的领导粒子,提高 算法的收敛精度;
[0030] 对粒子位置进行柯西变异公式如下:
[0031] P'gbest=Pgbest+(Xnax-Xnin)*Cauchy(o,s) (6)
[0032] 其中X_为当前粒子空间的最大值,X_为当前粒子空间的最小值;
[0033] 然后比较粒子当前最优解和粒子历史最优解,当粒子当前最优解优于粒子历史最 优解,则按公式(7)更新粒子的位置,
[0034] Pgbest=gbest(7)
[0035] 当粒子当前最优解劣于粒子历史最优解时,粒子全局最优解不发生改变;
[0036] 最后,对柯西变异的比例参数s按照公式(8)进行线性的递减,
(8)
[0037]
[0038] 其中,Iter_为粒子的最大迭代次数;
[0039] 第五步、对粒子停止执行的条件进行确定
[0040] 在粒子初始化时,设定了粒子的迭代次数T,和评估次数Sum,NP个粒子每迭代完 成一次,迭代次数加1,粒子的评估次数加NP,若当前粒子的迭代次数小于初始设定的迭代 次数T,则粒子进行新一次的迭代;若当前粒子的迭代次数达到设定的迭代次数T,则粒子 停止迭代运行。
[0041] 优选的,第五步中,对粒子停止执行的条件进行确定,还包括:设定一种初始给出 函数优化精度e,当达到精度e时,粒子停止迭代运行。
[0042] 优选的,所述高斯扰动变异策略中,期望u设置为0。
[0043] 优选的,在比例参数线性递减的柯西变异策略中,比例参数s初始设置为1。
[0044] 本发明还给出了上述的基于多策略协同作用的粒子群函数优化的方法性能的测 试,采用多种测试方法进行测试,测试函数如下所述:
[0045] a.单峰测试函数,用来测试函数的寻优速度和收敛精度;
[0046] b.多峰测试函数,多峰函数具有多个局部