2。1。5 波动范围
波 动范 围(bandwidth, BW)是当新获 得的决 策变 量的值在PAR概 率范 围内进行扰 动时,取 值的扰 动的范 围。[4]
2.2 HS算法的运算步骤
根 据HS算 法首先基 于不同的问 题定义,生产HMS个初 始 解即和 声放 入到HM内。每次迭 代时,每一个决 策变 量在HM内取 值的可 能性 为HMCR,在决 策变量的取 值值域内随 机取 值的概率为1- HMCR。对于从HM内得 到的决策 变量的值,概 率性地对其使 用加减BW的方式进 行微调,进行微 调 的概 率为PAR。最 后将和 声新解的目 标函数值进 行计 算,计算 完成后和HM中的最 差 解的目 标函 数值进 行对 比,如果新解 优于HM中的最 差解,那么用新 解替换最 差解,否 则直 接丢 弃新 生 成的解 继续迭 代,直 至满 足终 止条 件为 止。
这些步骤将在接下来5个子章节中具体的描述。
2。2。1 定义问题和参数的初始化
如果待解决的问题是最小化问题,那么给出最优化问题的目标函数如下所示:
其中是目标函数,是所有决策变量的集合,是决策变量的数量,是一切决策变量全部的可能取值的集合。初始化HS算法的四个参数HMS、HMCR、PAR、BW和最大迭代次数()。由参考资料了解到,通常HMS取值为5、HMCR取值为0。9、PAR取值为0。3、BW取值为0。01。[5]
2。2。2 和声记忆库的初始化
随机生成HMS个解,每个解决策变量的取值在最后的HM中的解可用矩阵的方式显示为:
2。2。3 产生新的和声解
一个新解每个决策变量有三种生成办法:从HM中进行选取、音调微调和随机生成。把这一过程命名为“improvisation”[6]。
从HM中进行随机取值时,新和声解的第一个决策变量是从随机选取的一个值。其它决策变量是用同样的方式产生的。HMCR是一个介于0和1中间的随机数,它是从HM中选取已保存的历史值的概率。相反地,1-HMCR是从决策变量可能范围内随机取值的概率。
其中是随机生成的0-1之间的数。
获得决策变量的新的取值后,生成一个0和1之间的随机数,如果则对进行微调,否则存储不变。的微调公式为:
其中是一个取值为0或1的随机函数。
2。2。4 更新和声记忆库
如果新的和声解向量的目标函数值优于HM中目标函数值最次的,则将放入HM中,并且将HM中最差的和声解从HM中除去。
2。2。5 检查算法终止条件
评判算法是否已得到了符合要求的最优解或者已运行了最大迭代次数,若是,则终止算法执行,否则跳转到improvisation继续执行。[7]
基本HS算法的流程如图2。1所示。
2.3 HS算法的基本特征
HS算法的初始解可以是随机形成的,也可以是通过另一种启发式算法,或者是其它算法得到。从上节的算法流程的生成新和声解可以看出,的变化发生在它的邻域上,因此和声搜索算法属于一种依赖于邻域搜索的算法。所以,初始解对HS算法的终搜索值在效果上有很大影响。尤其是在解决涉猎复杂约束和多目标优化问题时,若利用随机生成的方法形成HM中的初始解,则HS算法无法搜索到合理的解,它将难以得到最优解,也就无法解决问题。这时可使用另外的启发式方法生成初始解来确保解的合理性和算法性能。
HMS的值是HS算法至关重要的参数,因为它对HS算法全局搜索能力的强弱起决定性作用。经过阅读文献,发现HMS的值越大,算法找到全域最优解的概率越大。因为HS算法是从多个点同时启动搜索,若HMS的值越大,计算量就会非常惊人,进而削弱得到最优解的速度。由此,通常HMS=5。文献综述