当前位置:文档之家› 模拟退火算法原理及改进

模拟退火算法原理及改进

作者简介:李香平(1978 ̄),男,湖北监利人,中国地质大学计算机学院硕士研究生,研究方向为科学研究与可视化;张红阳(1982 ̄),男,湖北咸宁

,中国地质大学计算机学院硕士研究生,研究方向为数据挖掘与数据仓库。

模拟退火算法原理及改进
李香平,张红阳
(中国地质大学计算机学院,湖北武汉430074)
摘要:模拟退火算法是一种强大的随机搜索算法,能应用于许多前提信息很少的问题,能渐进地收敛于最优值。对
SA算法进行了介绍,论述了SA
算法的原理并对算法进行了改进,展示了计算实验的结果。

关键词
:模拟退火;全局优化

中图分类号:TP312文献标识码:A文章编号:1672-7800(2008)
04-0047-02


引言

近年来,传统的单一算法越来越不适应大规模非线性规划
问题。它们要求目标函数是可微的和收敛的。SA能很好地弥补
它们的缺陷。
从用于统计力学的
MonteCarlo方法上受到启发,SA
算法在

1983被Kirkpatrick提出来。对比传统局部搜索算法,SA
在搜索

时会在搜索空间上下移动而不依赖初始条件
,擅长解决多维问

题。此外,它能处理任意程度的非线性、不连续和随机的问题。
能处理任意边界和约束的评估函数。因此,它能轻易处理有脊
背和高地的函数。只要初温高、退火表适当
,它就能得到全局最

优。SA成功应用于组合优化、神经网络、图像处理和代码设计。


模拟退火算法原理

组合优化问题是在给定的约束条件下,求目标函数的最值
的问题。设
(S,f)是组合优化问题的一个实例,iopt∈S若对所有

i∈S,都有f(iopt)≥f(i),则称f(iopt)≤f(i)为minf(i
)的最优解。

SA
来源于物理热力学原理,综合了固体退火与组合优化

之间的类似性。类似固体的复杂系统
,先被加热到一个物质粒

子能自由移动的很高的温度,当它慢慢冷却时,它的能量减少。
如果“冷却”过程足够慢,系统将忽略局部稳定构造,到达能量
最低状态
,即基态。

在模拟的每一步中,新解的产生按照
Metropolistransition
法则,一个新的状态从现有的状态中产生,这个法则能以一定
的概率接受能量上升
(即产生劣解)的新状态,而能量下降是优

化的总目的。法则如下所示:

p(x=>y)=
1,f$%y≤f
$%

exp-f$%xf$%y$%,otherwis&e


是系统能量,t是温度。

SA
的一般框架:

Generatedinitialstateatrandom;
Generatedinitialtemperature;
REPEAT
REPEAT
y=generate(,);
IFaccept(,y,)THEN=y
UNTIL'innerloopstopcriterion'satisfied
为了提高SA的性能,我们应该仔细处理控制参数的协调。
(1)初始温度的选择。初始温度太高会花费高昂的计算时
间,太低会拒绝劣解的接受,会丢失SA全局优化的优点。本文
提出了一个初始温度的公式:

t0=



lnx
-1




是函数增量的平均值,χ是初始的接受概率。

(2)温度降低策略。温度降低越快,陷入局部的概率就越
大。然而
,温度降低太慢会导致算法速度慢得不能接受。本文采

用了一种快速的非线性降低法:

tk=t01+kk=1,2,3
,……

(3)适当的邻域结构。在退火期间,步长太小导致算法在探
索相位空间效率低
,太大新解总被拒绝。在持续优化时,新的等

价值均一地按间距分布在以xi的坐标为中心的邻域中,沿轴的
间距的一半被看作步长向量ξ。当点落在f的定义域内时,就随
机产生新解。
(4)终止标准。内循环是单一温度下在各种条件下
Marcov
链的一种渐进接近全局最优的模拟实现,即循环Marcov链长次
数结束。外循环取某个温度

作为算法终止标准,或者是迭代若

软件导刊
SoftwareGuide第7卷第4期2008年4月Vol.7No.4Apr.2008
2008

软件导刊

ImprovementofSimulatedAnnealingAlgorithm
Abstract:simulatedannealingisapowerfulstochasticsearchalgorithmapplicabletoawiderangeofproblemsforwhichlittleprior
knowledgeisavailable,anditasymptoticallyprobabilisticallyconversetoaglobaloptimum.Inthepaper,itwillgiveabriefintroductionto
simulatedannealinganditsimprovement,reportedcomputationalexperience.Thisresultshowsthattheapplicationofsimulatedannealing
tocomputationofoptimizationproblemsisencouraginganditdeservesfurtherresearch.
KeyWords:SimulatedAnnealingAlgorithm;globaloptimum

干连续的Marcov链后解的变化小于某个小数值结束,本文取第2种作为算法终止标注。2算法的改进及数值例子在SA算法中,搜索机制是很重要的部分。尽管先前的方法很容易实现,但它的效率较低。本文对此做出了一些改进,使用了一种更具有适应性的搜索方法:!xk+1=!k+1"!xk,fxk+"#1<fx"$k-!k+1"!xkotherwise%ξ是均匀分布在[0,1]区间的任意变量,!k+1是第k+1次循环的步长参数。!xk是第k次循环时的增量。本文以如下优化为例测试改进后的SA算法的性能:minf(x)=sinxy+x2+y2,-100≤x,y≤100(全局最优点是(0,0))冷却进度表取为:t0=50,Lk=500,tp=0.000005,α=0.95。初始解取(100,100),(20,-20),(0.5,-0.5),迭代结果如表1所示。由表1可知,在任意的初值下,经过一定次数的迭代后,结果非常接近,都能找到最优解,最初解与结果关系不大,好的初
值并非肯定有好的结果,充分表明SA算法对初值不敏感。


结束语

SA
是一种强大的随机搜索算法,具有对初始点的不依赖


,可以任意选取初始解和随机序列,应用广泛。SA普及的最

重要的原因是能在复杂的情况下产生更高质量的解,因此,它
特别适用于非线性和复杂的系统。在多目标优化领域,SA还处
于起步阶段
,在种群选择以及如何与Pareto前沿结合等方面,还

需要进一步地研究,SA具有广阔的发展前景。

参考文献:
[1]
LIHUAWUandYUYUNWANG.AnIntroductiontoSimulated
AnnealingAlgorithmsfortheComputationofEconomicEquilibri-
um.InstituteofSysyemScience,AcademiaSinica,Beijing100080

P.Rchina,1997
[2]DSJohnson,CRAragon,
LAMcGeoch.CSchevon.Optimiza-
tionbysimulatedannealing:anexperimentalevaluation,Part1

AT&TbellLaboratories,MurrayHill(NJ),1999.
[3]PJMVanlaarhoven,
EHLAarts.simulatedannenling:theory
andapplications
,DReidel,
1987.

(责任编辑:杜能钢)

初值(x0,y0)(100.0,100.0)(20.0,-20.0)(0.5,-0.5)
求解结果(x,y)
函数值f(x,y)
(0.000011,0.000014)0.0000000002(0.000004,0.000012)0.00000000013(0.000008,0.000015)

0.00000000015

表1不同初值下的模拟退火算法求解的结果

48
・・

相关主题