模拟退火算法第一节.ppt
模拟退火模拟退火(simulated annealing)算法算法是局部搜是局部搜索算法的扩展它源于对固体退火过程的模拟索算法的扩展它源于对固体退火过程的模拟;采用采用Metropolis接受准则接受准则;并用一组称为;并用一组称为冷却进冷却进度表度表的参数控制算法进程,使算法在多项式时的参数控制算法进程,使算法在多项式时间里给出一个间里给出一个近似最优解近似最优解模拟退火算法最早的思想由模拟退火算法最早的思想由Metropolis在在1953年提出,年提出,Kirkpatrick在在1983年成功地应用在组年成功地应用在组合最优化问题中合最优化问题中第第2章模拟退火算法章模拟退火算法一固体退火过程一固体退火过程退火是一种物理过程,固体退火是先将固体加退火是一种物理过程,固体退火是先将固体加热至熔化,再热至熔化,再徐徐徐徐冷却使之凝固成规整晶体的热冷却使之凝固成规整晶体的热力学过程力学过程退火过程中,系统在每一温度下达到平衡态,退火过程中,系统在每一温度下达到平衡态,系统状态的分布满足一定的概率分布,即在温度系统状态的分布满足一定的概率分布,即在温度 T,系统达到平衡态后,分子停留在状态,系统达到平衡态后,分子停留在状态 r 满足满足波兹曼波兹曼(Boltzmann)概率分布概率分布2.1模拟退火算法及模型模拟退火算法及模型其中,其中,E(r)为为状态状态 r 的能量的能量,kB 0为为波兹曼常数波兹曼常数,为分子能量的一个为分子能量的一个随机变量随机变量,称为称为波兹曼因子波兹曼因子Z(T)为概率分布的为概率分布的标准化因子标准化因子,先研究由先研究由(2.1)确定的函数随确定的函数随 T 变化的趋势变化的趋势选定两个能量选定两个能量 E1 E2,在同一个温度,在同一个温度 T,有,有D 为为状态空间状态空间在同一个温度,在同一个温度,(2.2)表示表示分子停留在能量小状分子停留在能量小状态的概率比停留在能量大状态的概率要大态的概率比停留在能量大状态的概率要大当温当温度相当高时,度相当高时,(2.1)的概率分布使得每个状态的概的概率分布使得每个状态的概率率基本相同,接近平均值基本相同,接近平均值1 D,D 为状态为状态空间空间 D中状态的个数此时,具有最低能量状态的波兹中状态的个数此时,具有最低能量状态的波兹曼概率曼概率接近并超出平均值接近并超出平均值1 D 当当 rmin 是是 D中具有最低能量的状态时,得中具有最低能量的状态时,得由由所以,所以,关于温度关于温度 T是单调下降的是单调下降的又有又有其中,其中,D0是具有最低能量的状态集合,是具有最低能量的状态集合,因此得到,当因此得到,当 T 趋向于趋向于 0 时,时,当温度趋向于当温度趋向于 0时,时,(2.1)决定的概率渐决定的概率渐近近由此可以得到,由此可以得到,在温度趋向于在温度趋向于 0时,分子停留在最时,分子停留在最低能量状态的概率趋向低能量状态的概率趋向1综合上面的讨论,分子综合上面的讨论,分子在最低能量状态的概率变化趋势由图在最低能量状态的概率变化趋势由图(a)表示表示对于非能量最小的状态,由对于非能量最小的状态,由(2.2)和分子在能量最小状和分子在能量最小状态的概率是单调减小的事实,在温度较高时,分子在态的概率是单调减小的事实,在温度较高时,分子在这些状态的概率在这些状态的概率在附近,依赖于状态的不同,附近,依赖于状态的不同,使使(2.1)决定的概率在决定的概率在(0,t)是单调升的;再由是单调升的;再由(2.4)可知,当温度趋于可知,当温度趋于 0时,时,(2.1)定义的概率趋于定义的概率趋于 0概率变化曲线见图概率变化曲线见图(b)可能超过可能超过由由(2.3)和和(2.4)可知存在一个温度可知存在一个温度t,从上面的讨论得到,从上面的讨论得到,在温度很低时,能量越低的在温度很低时,能量越低的状态的概率值越高,在极限状况,只有能量最低的状态的概率值越高,在极限状况,只有能量最低的点概率不为点概率不为即有即有1.系统在系统在 T 平衡时,系统状态的概率分布趋于平衡时,系统状态的概率分布趋于(2.1)式,式,0.0020.0160.1170.865t=0.50.1810.2210.2690.325t=50.2320.2430.2560.269t=20例例2.1简化概率分布简化概率分布(2.1)为为其中其中q(t)为标准化因子设共有四个能量点为标准化因子设共有四个能量点x=1,2,3,4,在此在此观察观察 t=20,5,0.5,三个温度点概三个温度点概率分布变化率分布变化二二 Metropolis准则准则固体在恒定温度下达到热平衡的过程可以进固体在恒定温度下达到热平衡的过程可以进行行模拟模拟1953年,年,Metropolis等提出重要性采样法他等提出重要性采样法他们用下述方法产生固体的状态序列:们用下述方法产生固体的状态序列:先给定以粒子相对位置表征的初始状态先给定以粒子相对位置表征的初始状态 i,作,作为固体的当前状态,该状态的能量是为固体的当前状态,该状态的能量是 Ei 然后用然后用摄动装置使随机选取的某个粒子的位移随机地产摄动装置使随机选取的某个粒子的位移随机地产生一微小变化,得到一个新状态生一微小变化,得到一个新状态 j,新状态的能,新状态的能量是量是Ej 如如Ej Ei,则考虑热运动的影响,该新状态是,则考虑热运动的影响,该新状态是否重要状态,要依据固体处于该状态的几率来否重要状态,要依据固体处于该状态的几率来判断由判断由(2.1)知,固体处于知,固体处于 i 和和 j 的概率的比值等的概率的比值等于相应于相应Boltzmann因子的比值,即因子的比值,即r是一个小于是一个小于1的数用随机数发生器产生一个的数用随机数发生器产生一个0,1)区间的随机数区间的随机数,若,若r ,则新状态,则新状态 j 作为重要作为重要状态,否则舍去若新状态状态,否则舍去若新状态 j是重要状态,就以是重要状态,就以 j 取取代代 i 成为当前状态,否则仍以成为当前状态,否则仍以 i 为当前状态,再重为当前状态,再重复以上新状态产生过程复以上新状态产生过程在大量固体状态的变换后,在大量固体状态的变换后,系统趋于能量较低的平衡状态,固体状态的概率分系统趋于能量较低的平衡状态,固体状态的概率分布趋于布趋于(2.1)式的式的Boltzmann概率分布概率分布由由()式可知,高温下可接受与当前状态能式可知,高温下可接受与当前状态能差较大的新状态为重要状态而在低温下只能差较大的新状态为重要状态而在低温下只能接受与当前状态能差较小的新状态为重要状态接受与当前状态能差较小的新状态为重要状态.这与不同温度下热运动的影响完全一致在温这与不同温度下热运动的影响完全一致在温度趋与零时,就不能接受任一度趋与零时,就不能接受任一 Ej Ei 的新状态的新状态 j了了上述接受新状态的准则称为上述接受新状态的准则称为Metropolis准则,准则,相应的算法称为相应的算法称为Metropolis算法这种算法的算法这种算法的计算量显著减少计算量显著减少三模拟退火算法三模拟退火算法对固体退火过程的研究给人们以新的启示对固体退火过程的研究给人们以新的启示1982年,年,Kirkpatrick等首先意识到固体退火等首先意识到固体退火过程与组合优化问题之间存在的类似性,过程与组合优化问题之间存在的类似性,Metropolis等对固体在恒定温度下达到热平衡等对固体在恒定温度下达到热平衡的模拟也给他们以启迪:应该把的模拟也给他们以启迪:应该把Metropolis准准则引入到过程中来最终他们得到一种对则引入到过程中来最终他们得到一种对Metropolis算法进行迭代的组合优化算法,这算法进行迭代的组合优化算法,这种算法种算法模拟固体退火过程,称之为模拟退火算模拟固体退火过程,称之为模拟退火算法法我们可以将我们可以将组合优化问题同金属物体退火组合优化问题同金属物体退火进行类比进行类比:组合优化问题组合优化问题金属物体金属物体假设算法用以解决如下组合优化问题:假设算法用以解决如下组合优化问题:解解费用费用(目标目标)函数函数最优解最优解状态状态能量能量能量最低的状态能量最低的状态模拟退火算法模拟退火算法Step1任选一个初始解任选一个初始解 x0;xi:=x0;k:=0;Step2若在该温度达到内循环条件,则到若在该温度达到内循环条件,则到step3;Step3 tk+1:=d(tk);k:=k+1;若满足停止条件,;若满足停止条件,终终t0:=tmax;(初始温度初始温度);否则,从邻域否则,从邻域 N(xi)中中随机随机选一选一xj,计算,计算fij=f(xj)f(xi);若;若fij 0,则,则 xi:=xj;否则若否则若exp(fij/tk)random(0,1)时,则时,则 xi:=xj;重复;重复step2;止计算;否则,回到止计算;否则,回到step2产生一个产生一个0与与1之间的一个之间的一个随机数随机数(1)随算法进程递减其值的随算法进程递减其值的控制参数控制参数 t 担当固体退担当固体退火过程中的温度火过程中的温度 T 的角色的角色(2)对对 t 的每一取值,算法持续进行的每一取值,算法持续进行“产生新解产生新解判断接受舍弃判断接受舍弃”的迭代过程就对应着固体在的迭代过程就对应着固体在某一恒定温度下某一恒定温度下趋于热平衡的过程趋于热平衡的过程也就是执行也就是执行了一次了一次Metropolis算法模拟退火算法从某个初始算法模拟退火算法从某个初始解出发,经过大量解的变换后,可以求得给定控解出发,经过大量解的变换后,可以求得给定控制参数值时组合优化问题的制参数值时组合优化问题的相对最优解相对最优解然后然后减减小小t 的值,的值,重复执行重复执行Metropolis算法,就可以算法,就可以在在 t 趋趋于零时,最终求得整体最优解于零时,最终求得整体最优解(3)由于退火必须由于退火必须“徐徐徐徐”降温,降温,t 也必须也必须缓慢衰减缓慢衰减,才能确保模拟退火算法最终趋于组合优化问题的整才能确保模拟退火算法最终趋于组合优化问题的整体最优解集体最优解集(4)模拟退火算法依据模拟退火算法依据Metropolis准则接受新解,准则接受新解,因此因此除接受优化解外,还在一个限定范围内接除接受优化解外,还在一个限定范围内接受恶化解受恶化解,这正是,这正是模拟退火算法与局部搜索算模拟退火算法与局部搜索算法的本质区别所在法的本质区别所在开始时开始时 t 值大,可能接受值大,可能接受较差的恶化解;随着较差的恶化解;随着 t 的减小,只能接受较好的减小,只能接受较好的恶化解;最后在的恶化解;最后在 t 值趋于零时,就不再接受值趋于零时,就不再接受任何恶化解了这就使算法任何恶化解了这就使算法既可以从局部最优既可以从局部最优的陷阱中跳出,更有可能求得组合优化问题的的陷阱中跳出,更有可能求得组合优化问题的整体最优解整体最优解;又不失简单性和通用性因此对;又不失简单性和通用性因此对大多数组合优化问题而言,模拟退火算法要大多数组合优化问题而言,模拟退火算法要优优于于局部搜索算法局部搜索算法模拟退火算法的数学模型可以描述为:模拟退火算法的数学模型可以描述为:在给定在给定邻域结构后,模拟退火过程是从一个状态到另一邻域结构后,模拟退火过程是从一个状态到另一个状态不断地随机游动个状态不断地随机游动我们可用我们可用马尔可夫链马尔可夫链描描述这一过程当温度述这一过程当温度 t 为一确定值时,两个状态为一确定值时,两个状态的的转移概率转移概率定义为:定义为:Gij(t)称为从称为从 i 到到 j 的的产生概率产生概率,Gij(t)表示在状表示在状态态i时,时,j 状态被选取的概率比较容易理解的是状态被选取的概率比较容易理解的是 j是是 i 的邻居,如果在邻域中等概率选取,则的邻居,如果在邻域中等概率选取,则 j 被被选中的概率为选中的概率为Aij(t)称为称为接受概率接受概率,Aij(t)表示在状态表示在状态 i 产生产生 j 后,接受后,接受 j 的概率,如在模拟退火算法中接受的的概率,如在模拟退火算法中接受的概率是概率是(2.5),(2.6),(2.7)为模拟退火算法的主要模型为模拟退火算法的主要模型模拟退火算法主要可以分为两类第一类为模拟退火算法主要可以分为两类第一类为齐齐次算法次算法,在,在(2.5)中对每一个固定的中对每一个固定的 t,计算对应,计算对应的马尔可夫链变化,直至达到一个稳定状态,然的马尔可夫链变化,直至达到一个稳定状态,然后再使温度下降第二类是后再使温度下降第二类是非齐次算法非齐次算法,由一个,由一个马尔可夫链组成,要求在两个相邻的转移中,温马尔可夫链组成,要求在两个相邻的转移中,温度度 t 是下降的是下降的描述模拟退火算法过程的马尔可夫链应满足下描述模拟退火算法过程的马尔可夫链应满足下列条件:列条件:(1)可达性可达性无论起点如何,任何一个状态都可无论起点如何,任何一个状态都可以到达以到达(2)渐进不依赖起点渐进不依赖起点(3)分布稳定性分布稳定性包含两个内容:一是当温度包含两个内容:一是当温度不变时,其马尔可夫链的极限分布存在;二是不变时,其马尔可夫链的极限分布存在;二是当温度渐近当温度渐近 0时,其马尔可夫链也有极限分布时,其马尔可夫链也有极限分布(4)收敛到最优解收敛到最优解当温度渐近当温度渐近 0时,最优状态时,最优状态的极限分布和为的极限分布和为1