退火和声搜索算法

退火和声搜索算法在保留和声搜索算法的启发搜索框架的前提下,就是不改变和声搜索算法的主要搜索机制,引入模拟退火的局部搜索方法。这样新的算法优化过程更具效率,预期可以更快更精地找到全局极值点。

首先随机产生一个[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]中取值)。



发表评论

You must be logged in to post a comment.