文档介绍:解决抽象化组合问题的模拟退火算法
设V = {V1, V2, …, Vp}为所有可能的组合状态的集合,试在其中找出对某一目标函数C,,具有最小代价的解,即找出,使得:。
设迭代次数(或称时间)t = 0,初始温度T(t) = T0,任选一初始状态作为当前解。
置温度T = T(t),状态
置取样次数k = 0
按某一规则由当前状态产生当前状态的下一次候选状态(为的近邻):
其中f1为某一随机函数。
计算目标代价变化:
若,则接受为下一当前状态,即,否则考虑当前温度下的状态活动概率:
若,则接受,否则不接受,置。这里λ为预先指定(或随机产生)的正数,0 <λ< 1。
置k = k + 1,按某种收敛标准判断取样过程是否应该结束。若不满足结束标准,则返回(2)。
置,且按某种策略对T更新(降温),即:
同时,置t = t + 1,其中f2为某种单调下降函数。
按某种标准检查退火过程是否应该结束。若不满足结束条件则转第2步。
输出状态V(t)作为问题的解。