模拟退火算法原理及改进
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
作者简介:李香平(1978 ̄),男,湖北监利人,中国地质大学计算机学院硕士研究生,研究方向为科学研究与可视化;张红阳(1982 ̄),男,湖北咸宁
人,中国地质大学计算机学院硕士研究生,研究方向为数据挖掘与数据仓库。
模拟退火算法原理及改进
李香平,张红阳
(中国地质大学计算机学院,湖北武汉430074)
摘
要:模拟退火算法是一种强大的随机搜索算法,能应用于许多前提信息很少的问题,能渐进地收敛于最优值。对
SA算法进行了介绍,论述了SA算法的原理并对算法进行了改进,展示了计算实验的结果。
关键词:模拟退火;全局优化中图分类号:TP312
文献标识码:A
文章编号:1672-7800(2008)04-0047-02
0引言
近年来,传统的单一算法越来越不适应大规模非线性规划
问题。它们要求目标函数是可微的和收敛的。SA能很好地弥补它们的缺陷。
从用于统计力学的MonteCarlo方法上受到启发,SA算法在
1983被Kirkpatrick提出来。对比传统局部搜索算法,SA在搜索
时会在搜索空间上下移动而不依赖初始条件,擅长解决多维问题。此外,它能处理任意程度的非线性、
不连续和随机的问题。能处理任意边界和约束的评估函数。因此,它能轻易处理有脊背和高地的函数。只要初温高、退火表适当,它就能得到全局最优。SA成功应用于组合优化、神经网络、图像处理和代码设计。
1模拟退火算法原理
组合优化问题是在给定的约束条件下,求目标函数的最值
的问题。设(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$%xexp-f$%
xf$%y
$
%
,
otherwis&e
f是系统能量,t是温度。SA的一般框架:
Generatedinitialstateatrandom;Generatedinitialtemperature;REPEATREPEAT
y=generate(,);
IFaccept(,y,)THEN=y
UNTIL'innerloopstopcriterion'satisfied
为了提高SA的性能,我们应该仔细处理控制参数的协调。(1)初始温度的选择。初始温度太高会花费高昂的计算时间,太低会拒绝劣解的接受,会丢失SA全局优化的优点。本文提出了一个初始温度的公式:
t0=’f+
lnx
-1
’f+
是函数增量的平均值,χ
是初始的接受概率。(2)温度降低策略。温度降低越快,陷入局部的概率就越大。然而,温度降低太慢会导致算法速度慢得不能接受。本文采用了一种快速的非线性降低法:
tk=
t0
1+k
k=1,2,3,……
(3)适当的邻域结构。在退火期间,步长太小导致算法在探索相位空间效率低,太大新解总被拒绝。在持续优化时,新的等价值均一地按间距分布在以xi的坐标为中心的邻域中,沿轴的间距的一半被看作步长向量ξ。当点落在f的定义域内时,就随机产生新解。
(4)终止标准。内循环是单一温度下在各种条件下Marcov链的一种渐进接近全局最优的模拟实现,即循环Marcov链长次数结束。外循环取某个温度t作为算法终止标准,或者是迭代若
软件导刊
SoftwareGuide
第7卷第4期
2008年4月Vol.7No.4Apr.2008
2008年
软件导刊ImprovementofSimulatedAnnealingAlgorithm
Abstract:simulatedannealingisapowerfulstochasticsearchalgorithmapplicabletoawiderangeofproblemsforwhichlittlepriorknowledgeisavailable,anditasymptoticallyprobabilisticallyconversetoaglobaloptimum.Inthepaper,itwillgiveabriefintroductiontosimulatedannealinganditsimprovement,reportedcomputationalexperience.Thisresultshowsthattheapplicationofsimulatedannealingtocomputationofoptimizationproblemsisencouraginganditdeservesfurtherresearch.KeyWords:SimulatedAnnealingAlgorithm;globaloptimum
干连续的Marcov链后解的变化小于某个小数值结束,本文取第2种作为算法终止标注。
2算法的改进及数值例子
在SA算法中,搜索机制是很重要的部分。尽管先前的方法
很容易实现,但它的效率较低。本文对此做出了一些改进,使用了一种更具有适应性的搜索方法:
!xk+1=
!k+1
"!xk
,
fxk+"#1<fx"$k
-!k+1
"!x
k
otherwise
%ξ
是均匀分布在[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算法对初值不敏感。
3结束语
SA是一种强大的随机搜索算法,具有对初始点的不依赖
性,可以任意选取初始解和随机序列,应用广泛。SA普及的最重要的原因是能在复杂的情况下产生更高质量的解,因此,它特别适用于非线性和复杂的系统。在多目标优化领域,SA还处于起步阶段,在种群选择以及如何与Pareto前沿结合等方面,还需要进一步地研究,SA具有广阔的发展前景。
参考文献:[1]
LIHUAWUandYUYUNWANG.AnIntroductiontoSimulatedAnnealingAlgorithmsfortheComputationofEconomicEquilibri-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:theoryandapplications,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・・