改进的自适应和声搜索算法

  • 格式:pdf
  • 大小:281.22 KB
  • 文档页数:4

第2s卷第2期 2011年3月 甘肃联合大学学报(自然科学版) 

Journal of Gansu Lianhe University(Natural Sciences) Vo1.25 No.2 

Mar.2011 

文章编号:1672-691X(2011】02—0063—04 改进的自适应和声搜索算法 

陈莹珍,高岳林 (北方民族大学信息与系统科学研究所。宁夏银川750021) 

摘要:和声搜索算法是一种启发式优化算法,针对现有改进的和声搜索算法(IHS)的不足,提出了一种改进 的自适应和声搜索算法(IAHS).在该算法中,采用自适应的和声保留概率、音调调节概率和音调调节步长产生 新解,每次迭代产生多个新解,充分利用和声记忆库的信息.本文用了5个标准的测试函数对该算法进行测试, 结果表明该算法(IAHS)有较强的寻优能力和跳出局部最优解的能力. 关键词:和声搜索算法,自适应搜索 中图分类号:TP18 文献标识码:A 

O引言 2001年Geem Z W等人提出了一种新的启 发式算法——和声搜索[1](Harmony Search, HS)算法.类似于粒子群算法的思想来源于鸟群 捕食,和声搜索(HS)的基本思想来源于音乐创 作.在音乐创作中,乐师们反复调整乐队中各乐器 的音调,最终得到一个优美的和声. 研究者们已经提出了各种和声搜索的改进方 法.例如,2007年Mahdavi M等提出了IHSL2 算 法.在基本的和声搜索算法中,音调调节概率 (PAR)和调节步长(6 )都是采用一个固定的值, 但是在实际中,在优化的前期,希望有较小的 PAR和较大的bzv,随着迭代次数的增加,则希望 有较大的PAR和较小的bw,因此,Mahdavi M 等提出了基于动态PAR和bw的IHS算法.文中 采用的动态的PAR和b-w的表达式如下 PAR(gn)一PAR +( 一一PAR晡 )×gn/N ̄, bw(gn)一bua ̄.xexp(1n(bwm×M)×gn),(1) 其中PAR(gn)为每一代的音调调节概率, PAR ,PAR 分别是音调调节概率的最大值和 最小值,N 为最大迭代次数,g,z为当前迭代次 数,bw(gn)为每一代的音调调节步长,6 , 6 为音调调节步长的最大值和最小值. 2010年,高立群等提出了自适应和声粒子群 搜索(AHSPSO)算法[3].将和声搜索算法与粒子 群搜索算法结合,首先用粒子群优化和声记忆库 中的变量,再利用动态的PAR和bw产生新解, 更新记忆库.文中采用的自适应的音调调节概率 和调节步长如下 PAR :f ,Ef/E卜 ≥ 。 o (2) ‘ 【E /E01,E/Ef_1<1. 其中Ei为第i代和声记忆库中解变量的目标函 数值的最大值与最小值之差,Eo一1; bw( )一dl (HM( ,max)一HM(i,min))+ 2 (z 妒一z乞 )/gn, (3) 其中,gn是当前迭代次数, 坤i妒, i 是变量X 的上界和下界,HM( ,max),HM(i,min)是记忆 库中五的最大值和最小值, 1, 2是两个常数, 迭代次数较大时,左部分可以起一定的调节作用, 当算法陷入局部最优时,右部分可以起调节作用. 此外,和声搜索已经广泛的应用于工程实际 中[4 ].例如,2006年李亮等提出了改进和声搜 索算法及其在土坡稳定分析中的应用[4].利用改 进的和声搜索算法寻求复杂土坡的临界滑动面及 其对应的安全系数,改进的和声搜索算法在每次 迭代中产生多个新解,而基本的和声搜索算法中 每次迭代只产生一个新解,对改进的和声算法与 基本的和声搜索算法的结果进行了比较,发现改 进的和声搜索算法比基本的和声搜索算法能搜索 到更危险的滑动面. 2007年,金永强等提出了基于和声搜索的边 

收稿日期:2010-II-15. 基金项目:国家自然科学基金项目资助(60962006). 作者简介:陈莹珍(1987一),女,湖北襄樊人,北方民族大学在读硕士,主要从事最优化理论,智能计算等方面的应用 研究. 64 甘肃联合大学学报(自然科学版) 第25卷 坡稳定性投影寻踪聚类分析[5].传统的和声搜索 算法采用了固定的和声保留概率PAR,不能同时 兼顾局部最优解和全局最优解的寻求,本文采用 动态的HMCR和PAR对基本的和声搜索算法 进行了改进,针对边坡稳定问题的高维非线性、非 正态的特点,提出了一种基于和声搜索和投影寻 踪理论的边坡稳定性评价方法利用投影寻踪理论 将边坡稳定性评价多指标问题转换为单一投影指 标,采用改进的和声搜索算法优化投影方向.文 中,HMCR和PAR的表达式如下 一一 ×exp[ ・n[ 爱]], PAR 一茄gn(PAR i 一PAR )+PAR In. (4) 其中,NI为最大迭代次数;gn为当前迭代次数; HMCR |n,HMCR ,PAR In’PAR 分别为迭 代起始时、迭代终止时第gn次迭代时的HMCR 和PAR值. 本文结合了以上的改进方法,并对其中部分 参数做了改进.对和声保留概率(HMCR)、音调 调节概率(PAR)都采用线性变换,对文献[3]中 提出的音调调节步长中参数d ,d 也采用了线性 变化,音调调节时增加或减少不再是随机的,而是 由记忆库中的变量的平均值决定的. 1基本和声搜索算法 和声搜索(HS)是基于音乐演奏过程提出来 的.在音乐演奏中,每个演奏者发出一个音调,构 成一个和声向量,如果这个和声比较好,就把它记 录下来,以便下次产生更好的和声.乐器的音调类 比于优化问题中的决策变量 ( 一1,2,…, ),将 各乐器声调的和声类比于解向量 =( , , …, ),美学评价类比于目标函数厂(Xj),音乐家 要找到由美学评价定义的优美的和声,研究人员 要找到由目标函数定义的全局最优解.和声搜索 算法包括一系列的优化因素,例如和声记忆库 (HIVI9,和声记忆库的大小(HMS),和声保留概 率(HMCR),音调调节概率(PAR)等.在和声搜 索算法中,和声记忆库储存可行解向量,和声记忆 库的大小决定着可行解的数量,和声保留概率就 是从记忆库中选择新产生的解的概率,音调调节 概率是对产生的新解进行扰动的概率. 基本和声搜索的步骤如下: Stepl设定和声搜索的基本参数.(1)变量 的个数N R;(2)各变量的取值范围;(3)和声 记忆库可保存和声的个数HMS;(4)和声记忆保 留概率HMCR;(5)音调调节概率PAR;(6)最大 迭代次数NI. Step2初始化和声记忆库. Step3产生新解.每次可以通过三种机理产 生一个新解.(1)保留和声记忆库中的分量;(2)随 机选择产生;(3)对(1)、(2)中某些分量进行微调 扰动产生. Step4更新记忆库.若新解优于记忆库中最 差解,则用新解替换最差解,得到新的记忆库. Step5判断是否满足终止条件,若满足,停 止迭代,输出最优解;否则,重复Sep3,Step4. 

2改进的和声搜索算法 2.1和声保留概率 和声保留概率HMCR的变化是由小变化到 大的,在优化的前期阶段,较大的值有利于找到局 部最优解,后期较小的值可以增加解的多样性[引. 根据文献[5]的思想,本文提出了新的和声保留概 率的表达式,定义HMcR的变化如下 HMCR—HMCR 。 一 (HMCR ̄,, 一HMClR In) gn/NI. (5) 其中g"是当前迭代次数,NI是最大迭代次数, HMCRm, ,HMC尺 分别为和声保留概率的最大 值和最小值. 2.2音调调节概率 一般情况下,音调调节概率PAR的变化是 由小到大的,在优化的前期阶段,较小的值有利于 找到局部最优解,后期较大的值可以增加解的多 样性.根据文献[2]的思想,本文提出了音调调节 概率的表达式,PAR的变化定义如下 PAR一(O.382。gn+0.618gn)/NI. (6) 其中gn是当前迭代次数,NI是最大迭代次数. 2.3音调调节的步长 在最初的和声搜索中,每个变量的调节步长 bw是一样的,但是这个步长并不适合所有的变 量,根据文献[3]中音调调节步长的变化,对于 d1,d2两个参数,做了如下的改进 ( )一dl (HM(f,max)一HM(i,rain))+ d2。(z 一z乞一)/ , dl一( 1 一dl i )*gn/N!+dl .n; d2一(d2 In—d2一) gn/NI+d2 .(7) 第2期 陈莹珍等:改进的自适应和声搜索算法 65 其中dl In, 1 ,d2 |n,d2 分别为d1,d2的最 小值和最大值.实验表明,当 1是线性递增的, 2是线性递减时,算法的性能更好. 2.4调节的方向 如果产生的新解需要进行微调,在原来的算 法中都是随机的,本文中计算出记忆库中解的平 均值,如果产生的新解小于平均值,则 一z +BW(i);若产生的新解大于平均值,则z 一 nc 一Bw( ),其中zfn ,z ? 分别为调节前后解 的值,average(x )是和声记忆库中变量墨的 平均值. 

,-.~ fz +BW(i),ifx7 <一average(x ); new— 一Iz —BW(i),others. 

(8) 2.5每代和声产生数目 在本文的迭代过程中,采用了文献[4]的思 想,基本的和声搜索算法在每次迭代中仅产生一 个新的解,没有尽可能大的利用和声记忆库的累 积信息,文献[4]中,每次迭代的过程中都产生N 个新解,与和声记忆库中HMS个解放在一起,找 出HMS个最优解作为新的和声记忆库. 2-6改进的和声搜索算法的步骤 Stepl设定和声搜索的基本参数(1)变量的 个数NVAR;(2)各变量的取值范围;(3)和声记 忆库可保存和声的个数HMS;(4)每次迭代产生 新解的个数N;(5)最大迭代次数;(6)和声记忆 保留概率HMCR的上下界;(7)dllIIi , 1一, d2 .n’ 2 . Step2初始化和声记忆库. Step3产生新解.通过公式(5),(6),(7), (8)产生新解,每次迭代得到N个新解. Step4计算新解的目标函数值,从新产生的 N个解和记忆库中HMS个解中选出HMS个好 的解,作为新的和声记忆库. Step5判断是否满足终止条件,如不满足则 返回step3;否则算法结束. 

3实验及结果分析 为了检验算法的有效性,下面用了五个经常 用到的测试函数对该算法进行测试.这些函数模 拟了在工程实际中经常碰到的各种特征问题,因 此可以比较准确的衡量算法的优化性能.其表达 式如下: 

(1)Sphere函数:厂1( )一∑z ; (2)Ronsenbrock函数:f2(x)一∑(100 (置+l—z )。+(zI一1)。); (3)Sehaffer函数: