退火和声搜索算法
退火和声搜索算法在保留和声搜索算法的启发搜索框架的前提下,就是不改变和声搜索算法的主要搜索机制,引入模拟退火的局部搜索方法。这样新的算法优化过程更具效率,预期可以更快更精地找到全局极值点。
首先随机产生一个[0,1]均匀分布数r。
若小于Hr,则新解在HM中搜索产生,需要注意的产生方法与和声搜索算法有些许不同,那就是原HS算法中是小于Hr从HM中产生,否则随机生成,而这里的新算法是所有nDim个变量都在HM中随机取值,接下来以Pr进行扰动。
若大于Hr,则对当前HM中最差组合执行一次Metropolis算法来产生新解,同时相应温度控制参数降低一次。
不管个体是以上面的哪种方式产生新个体之后得到的解若优于当前HM中的最差解,则替换更新。
退火和声搜索算法的步骤如下:
(1)随机初始化HM,计算M组每组评价值,初始化T0(初始温度)、L(SA内层循环数)、C(降温常数);
(2)比较得出各组解中最差组合;
(3)随机产生[0,1]随机数r,若r < Hr,执行第(4)步;若r > Hr,执行第(6)步;
(4)所有变量均相应在HM中随机搜索,得新解;
(5)以音调调节率Pr,对得到的新解进行局部扰动;转第(7)步;
(6)对当前HM 中最差解组合进行改进,即执行一次Metropolis算法,得新解,降低温度控制参数;
(7)计算新解的目标函数值,若小于当前最差解组合的目标函数值,则替换之;
(8)若不满足停止条件,重复(2)~(7),否则停止。
其中算法中的M为组合个数;Hr为记忆库取值概率HMCR(在[0,1]中取值);Pr为音调调节率PAR(在[0,1]中取值)。


