和声搜索算法——个人解读
来源:互联网 发布:广东人事考试中心 网络 编辑:程序博客网 时间:2024/05/19 04:04
联系方式:860122112@qq.com
和声搜索算法(Harmony search, HS)是一种新兴的智能优化算法,通过反复调整记忆库中的解变量,使函数值随着迭代次数的增加不断收敛,从而来完成优化。算法概念简单、可调参数少、容易实现。
类似于模拟退火算法对物理退火的模拟、遗传算法对生物进化的模仿、以及粒子群优化算法对鸟群的模仿等,和声算法模拟了音乐演奏的原理,它是 2001 年韩国学者 Geem Z W 等人提出的一种新颖的智能优化算法。算法模拟了音乐创作中乐师们凭借自己的记忆,通过反复调整乐队中各乐器的音调, 最终达到一个美妙的和声状态的过程。
举个例子:
假设一个需要优化的函数
一. 一般HS算法步骤
(1)定义问题和参数值
a. 假设一个最小化问题,即:
b. 确定参数值
- 和声记忆库的大小HMS:理解成和声种群的大小
- 和声记忆库取值概率HMCR:从现有种群(HM和声库)中拿出一个和声的概率
- 音调微调概率 PAR:对拿出的和声进行微调的概率
- 音调微调带宽 BW:微调的幅度
- 创作的次数 Tmax:调整(迭代)的次数
(2)初始化和声记忆库HMS
从
(3) 生成一个新的和声
在
- 若
r1<HMCR ,从和声记忆库中随机拿出一个和声变量 - 否则,从解空间随机生成一个和声变量
- 由上得到一个和声变量,若这个和声变量是从和声库中得到的,就需要对这个和声变量进行微调,在[0,1]之间产生一个随机数
r2 - 若
r2<PAR ,根据微调带宽BW 来对得到的和声变量进行调整,得到一个新的和声变量 - 否则,不做任何调整
最后得到新的和声
(4)更新和声记忆库
对
(5)检查算法是否终止
重复步骤 (3)和 (4),直到创作(迭代)次数达到 Tmax 为止。
HS流程图:
算法
第11行的
二. 改进的HS算法(The improved harmony search (IHS) algorithm)
令PAR和BW能随迭代次数的变化而变化
初始化时先确定
二. 全局最优HS算法(Global best harmony search (GHS) algorithm)
先直接看算法
相比一般的HS,算法只改了一行(图中红框)。
二. 自适应全局最优HS算法(The self-adaptive GHS (SGHS) algorithm)
变量生成规则修改:
相比GHS,SGHS的变量生成规则做了两处修改
第一处修改意在增加变异,避免掉入局部最优解;第二处修改即把GHS对应行的xB(k) 改成xB(j) ,从HM中拿出的最好和声与当前要生成的变量在和声中的位置是相同的。因为如果像GHS那样,位置的不同有很大概率使新生成的和声xnew 性能比xB 糟糕。参数自适应
在SGHS中,四个参数HMS, HMCR, PAR 和 BW,除了HMS是初始化后固定外,其他三个参数都是随迭代搜索而动态调整,其中HMCR和PAR为自适应调整。
HMCR是从HM中选择一个和声的概率。 大的HMCR值有利于局部搜索,从而增加算法的收敛速度,而小的HMCR值增加了和声库的多样性。 通过广泛的模拟,Omran和Mahdavi提出,通常使用较大的HMCR值(即> = 0.9)更好。 PAR是从xB 选择音调的调整率。 大的PAR值有利于将xB 的信息传递到下一代,从而增强了算法在xB 周围的局部开发能力,而小的PAR值使得新的和声向量能够通过扰乱和声库中相应维度的值, 从而扩大了搜索区域和增加和声库的多样性。 由于在搜索过程中局部利用和全局探索总是矛盾的,因此难以确定HMCR和PAR的值。
在SGHS论文中,HCMR和PAR通过进入HM生成和声的历史记录而动态地调整适当的范围。假设HMCR(PAR)值服从均值HMCRm(PARm)为[0.9,1.0]([0.0,1.0])、标准差为0.01(0.05)的正态分布。最初,HMCRm(PARm)设定为0.98(0.9)。然后SGHS根据正态分布生成的HMCR(PAR)开始搜索。在迭代过程中,记录下Xnew 成功替换HM中Xworst 时所对应的HMCR(PAR)的值。在经过指定迭代次数LP (论文设为100)之后,通过求在此期间记录的所有HMCR(PAR)值的均值来重新生成HMCRm(PARm)。随着新的均值和固定的标准差0.01(0.05),产生新的HMCR(PAR)并用于随后的迭代。重复上述步骤。因此,可以逐渐学习适当的HMCR(PAR),以适应特定问题和特定阶段的搜索。
BW的调整
SGHS算法:
博主之前做的是使用HS和SGHS优化FCMAC(模糊小脑神经网络),部分代码链接:
https://github.com/DajunZhou/SGHS-CMAC
参考文献
Pan Q K, Suganthan P N, Tasgetiren M F, et al. A self-adaptive global best harmony search algorithm for continuous optimization problems[J]. Applied Mathematics and Computation, 2010, 216(3): 830-848.
- 和声搜索算法——个人解读
- 和声搜索算法
- Alpha-Beta搜索 | 搜索算法 | 解读技术
- 疯狂的程序员——个人解读加经典语录
- 疯狂的程序员——个人解读加经典语录
- 搜索算法——深度搜索
- 算法——排序算法个人总结
- 搜索算法——总结
- 算法——二分搜索
- 算法——跳跃搜索
- 算法——跳跃搜索
- [搜索树算法]C4.5算法,个人笔记
- 个人总结——暴力去除搜索框的下划线
- 《算法导论》第12章 二叉搜索树 个人笔记
- 龟兔赛跑的现实版解读——个人与企业的战略规划
- 个人解读Activity之一
- 解读“个人财务报表”
- ACM:搜索算法专题(3)——启发式搜索
- request.getRequestURI()、getRequestURL()、getContextPath()、getServletPath()区别
- 动态生成EXCEL文档名
- DataGrip使用入门-安装及数据源管理(一)
- 条款 22
- 原生页面和H5页面
- 和声搜索算法——个人解读
- Android架构
- Visual Studio快捷配置OpenCV开发环境
- Struts2+Spring+hibernate整合实例
- 每秒处理10万高并发订单的乐视集团支付系统架构分享
- Hibernate 查询方式(HQL/QBC/QBE)汇总
- Android性能优化工具Hierarchy Viewer
- CSS Filter
- 11类和对象