模拟退火算法及其应用研究.docx
- 文档编号:24997991
- 上传时间:2023-06-03
- 格式:DOCX
- 页数:33
- 大小:264.20KB
模拟退火算法及其应用研究.docx
《模拟退火算法及其应用研究.docx》由会员分享,可在线阅读,更多相关《模拟退火算法及其应用研究.docx(33页珍藏版)》请在冰豆网上搜索。
模拟退火算法及其应用研究
模拟退火算法及其应用研究
1前言
非数值算法是基础科学,工程技术和管理科学等领域中常用的一类计算方法,如许多解组合优化问题的算法就是典型的非数值算法,由于这些问题的尤其是其中的NP完全问题本身所固有的计算复杂性,求其精确解的计算量往往随问题规模呈指数型增长,以致使用任何高速计算都需要耗费大量的时间,甚至根本无法实现.因此,研究非数值计算的近似算法及其并行实现的途径具有十分重要的实际意义.
模拟退火算法是近几年提出的一种适合解大规模组合优化问题,特别是解NP完全问题的通用有效近似算法,它与以往的近似算法相比,具有描述简单,使用灵活,运用广泛,运行效率高和较少受初始条件限制等优点,而且特别适合并行计算.因此不仅具有很高的实用价值,而且对推动并行计算的研究也有着重要的理论意义.
组合优化问题的目标函数是从组合优化问题的可行解集中求出最优解.组合优化问题有三个基本要素:
变量,约束和目标函数,在求解过程中选定的基本参数称为变量,对变量取值的种种限制称为约束,表示可行方案衡量标准的函数称为目标函数.货郎担问题(TSP)是组合优化问题中最为著名的问题,它易于描述难于求解,自1932年K.Meber提出以来,已引起许多数学家的兴趣,但至今尚未找到有效的求解算法.
货郎担问题,是由爱尔兰数学家SirWilliamRowanHamilton和英国数学家ThomasPenyngtonKirkman在19世纪提出的数学问题,它是指给定n个城市并给出每两个城市之间的距离,旅行商必须以最短路径访问所有的城市一次且仅一次,并回到原出发地,现已证明它属于NP(Non-deterministicPolynomial---非确定多项式)难题[1].历史上的第一个正式用来解决TSP问题的算法诞生于1954年,它被用来计算49个城市的TSP问题.到现在为止,运用目前最先进的计算机技术可解决找出游历24978个城市的TSP问题.TSP的历史很久,最早的描述是1759年欧拉研究的骑士周游问题,即对于国际象棋棋盘中的64个方格,走访64个方格一次且仅一次,并且最终返回到起始点.旅行商问题(TSP)由美国RAND公司于1948年引入,该公司的声誉以及线性规划这一新方法的出现使得TSP成为一个知名且流行的问题[2]
旅行商问题是一个经典的图论问题:
设有n个城市,用
=1,2,…,n表示.城市
之间的距离为
,i,j=1,2,…,n,设所有城市间两两连通,旅行商需要跑遍n个城市去推销他的商品,而这些城市之间的距离都不一样,这推销员需要从其中一个城市出发,而他老板规定他必须把所有城市跑一遍,则TSP问题就是寻找让旅行商遍访每个城市一次且恰好一次的一条回路,且要求其路径总长度为最短.该问题也可以归结为:
有N个城市由公路相互连通,从任一城市到另外城市都要支付相应的费用,一个销售商从其中一城市出发,访问其他N-1个城市且仅一次,如何规划一条路径,使该旅行商的花费最少[3].当城市数量较小时,通过枚举法就可以找出最短的路径,然而随着问题规模的增加,很难找到一个多项式时间复杂度的算法来求解该问题.TSP是一个典型的组合优化问题,是诸多领域内出现的多种复杂问题的集中概括和简化形式,并且已成为各种启发式的搜索、优化算法的间接比较标准.因此,快速、有效地解决TSP有着重要的理论价值和极高的实际应用价值.旅行商问题代表的一类组合优化问题,在物流配送、计算机网络、电子地图、交通诱导、电气布线、VLSI单元布局等方面都有重要的工程和理论价值,引起了许多学者的关注.
TSP是典型的组合优化问题,并且是一个NP-hard问题.TSP描述起来很简单,早期的研究者使用精确算法求解该问题,TSP问题最简单的求解方法是枚举法.它的解是多维的、多局部极值的、趋于无穷大的复杂解的空间,搜索空间是n个点的所有排列的集合,大小为(n-1)!
.可以形象地把解空间看成是一个无穷大的丘陵地带,各山峰或山谷的高度即是问题的极值.求解TSP,则是在此不能穷尽的丘陵地带中攀登以达到山顶或谷底的过程
.常用的方法包括:
分枝定界法、线性规划法和动态规划法等,但可能的路径总数随城市数目n是成指数型增长的,所以当城市数目在100个以上一般很难精确的求出其全局最优解.随着人工智能的发展,出现了许多独立于问题的智能优化算法,如蚁群算法、遗传算法、模拟退火、禁忌搜索、神经网络、粒子群优化算法、免疫算法等,通过模拟或解释某些自然现象或过程而得以发展,为解决复杂组合优化问题提供了新的思路和方法
.模拟退火算法在迭代搜索过程以Boltzmann分布概率接受目标函数的“劣化解”,具有突出的具有脱离局域最优陷阱的能力,同时具有较强的局部搜索能力,从而可以获取目标函数的全局最优解.因为模拟退火算法具有高效、通用、灵活的优点,将模拟退火算法引入TSP求解,可以避免在求解过程中陷入TSP的局部最优解
.
本文首先介绍传统的TSP问题,先对其进行数学描述,又列举TSP问题的应用.之后介绍模拟退火算法,主要介绍其基本思想和关键技术,在此基础上将模拟退火的思想引入TSP的求解,设计出TSP的一种模拟退火算法并用MATABLE语言编程予以实现.
2选题背景
2.1题目类型及来源
题目类型:
研究论文
题目来源:
专题研究
2.2研究目的和意义
诸如分技定法或整数规划等严格的算法常常不可行.人们常采用的是启发式算法
.启发式算法“.分为两类:
一是从待解决问题的原始数据结构着手进竹构造性求解,另一类是迭代改进现有的解.构造性方法是根据待解决问题的特征来设计的,很难推广到不同应用领域:
迭代改进方法更为一般.这类算法的结构一般是这样的:
从一个初始解开始,产生一个解序列,直到获得满意解为止.新解的产生规则及终止迭代准则决定了一个具体算法.这类算法的不足之处是:
1)算法往往终止于局部最优解.
2)最终解取决于初始解的选择及产生新解的规则.许多启发式算法在做迭代改进时都选择最快的减少目标函数值的策略,也就是所谓的贪一b策略.这种“心”算法往往导致陷入局部最优解,而不是全局最优解
.
为了改善迭代型启发算法的行为,有时选择一批初始解,然后做相同的迭代以提高获得全局最优解的概率.也可借助于随机搜索的算法
,其特点是随机的产生下一新解.若新解比当前解的值更低,则将新解作为暂存解.如果最优解与总解的比例越高,找到最优解的概率也就越大.故当最优解的数目很大时,随机搜索算法的功能还是很好的.作为一种通用的随机搜索算法,模拟退火(SimulatedAnnealing,以下简称SA)算法有着更好的渐进行为.它是近年来提出的一种适合解大规模组合优化问题通用而
有效的近似算法.它与以往的近似算法相比,具有描述简单、使用灵活、运用广泛、运行效率高和较少受初始条件约束等优点,而且特别适合并行计算,因此具有很高的实用价值.随着计算机技术的发展和普及,最优化理论和方法在诸多领域都得到了迅速发展和推广.目前,它已成为现代科学技术中一个必不可少、重要的数学手段和方法,其应用和发展为诸多领域中非线性问题的解决,提供了孥实而有力的理论基础和有效的方法.本论文利用模拟退火算法的高效性和优越性,将其用在货郎担问题的求解中.
2.3国内外现状和发展趋势与研究的主攻方向
模拟退火算法(SA)在理论上已得到证明,它可以达到全局极小值,所以它备受专家与学者的青睐.目前,关于模拟退火算法的研究通常分为两类.笫一类是基于有限状态奇异马尔可夫链的有关理论
,给出模拟退火算法的某些关于理想收敛模型的充分条件或充要条件,这些条件在理论上证明了当退火三原则(初始温度足够高、降温速度足够慢、终止温度足够低)满足时
,模拟退火算法以概率l达到全局最优解;第二类是针对某些具体问题,给出了模拟退火算法的很多成功应用.事实上,正是由于专家和学者对该算法的钻研,才让该算法从经典的模拟退火算法走到了今天的多样型的模拟退火算法,比如快速模拟退火算法,使得该算法的速度和收敛性都得到较大提高,再比如适应性的模拟退火算法,使得该算法具有智能性;再比如现在有学者提到的遗传一模拟退火算法,就是将遗传算法和模拟退火算法二者的优越性结合起.不能忽略的是每种算法的提出都与其应用范围紧密结合
,这样才使得改进的算法在其应用领域具有较好的适用性.由于模拟退火算法(SA)从理论上可以达到全局极小值,所以对该算法的研究更有实际意义,众多学者正在努力钻研将其一般化,使其具有普遍适用性.
3模拟退火算法的一些知识
3.1模拟退火算法的描述
模拟退火算法(SimulatedAnnealing)最早见于IBM托马斯.J.沃森研究中心的S.Kirkpatrick等人的文章,他们在对组合优化进行研究后,根据迭代改进的思想提出了“模拟退火算法”,模拟退火算法具有很强的局部搜索能力.模拟退火算法来源于固体退火原理,将固体加温至充分高,再让其缓慢降温(即退火),使之达到能量
最低点.反之,如果急速降温(即淬火)则不能达到最低点.加温时,固体内部粒子随温升变为无序状,内能增大,而缓慢降温时粒子渐趋有序,在每个温度上都达到平衡态,最后在常温时达到基态,内能减为最小.根据Metropolis准则,粒子在温度T时趋于平衡的概率为exp(-E/(kT)),其中E为温度T时的内能,E为其改变量,k为Boltzman常数.用固体退火模拟组合优化问题,将内能E模拟为目标函数值f,温度T演化成控制参数t,即得到解组合优化问题的模拟退火算法:
由初始解i和控制参数初值t开始,对当前解重复产生“新解→计算目标函数差→接受或舍弃”的迭代,并逐步衰减t值,算法终止时的当前解即为所得近似最优解
这是基于蒙特卡罗迭代求解法的一种启发式随机搜索过程.退火过程由冷却进度表(CoolingSchedule)控制
包括控制参数的初值t及其衰减因子a、每个t值时的迭代次数L和停止条件c.所以我们可以通过上面的思想写出解决TSP问题的模拟退火算法.步骤如下:
(1)初始化:
初始温度T(充分大),初始解状态s(随机选取一条TSP路线,算出走完此路线的长度Cost(s)作为评价函数,这是算法迭代的起点),每个T值的迭代次数L;
(2)对k=1至k=L做第(3)至第6步;
(3)产生新解s′(一般利用2-opt算法来产生新的路径);
(4)计算增量Cost=Cost(s
)-Cost(s),其中Cost(s)为评价函数;
(5)若t
<0则接受s
作为新的当前解,否则以概率exp(-t
T)接受s
作为新当前解;
(6)如果满足终止条件则输出当前解作为最优解,结束程序.终止条件通常取为连续若干个新解都没有被接受时终止算法;
(7)T逐渐减少,且T趋于0,然后转第2步运算.
模拟退火算法来源于固体退火原理,将固体加温至充分高,再让其缓慢降温(即退火),使之达到能量最低点.反之,如果急速降温(即淬火)则不能达到最低点.加温时,固体内部粒子随温升变为无序状,内能增大,而缓慢降温时粒子渐趋有序,在
每个温度上都达到平衡态,最后在常温时达到基态,内能减为最小.根据Metropolis准则,粒子在温度T时趋于平衡的概率为exp(-E/(kT)),其中E为温度T时的内能,
E为其改变量,k为Boltzmann常数.用固体退火模拟组合优化问题,将内能E模拟为目标函数值f,温度T演化成控制参数t,即得到解组合优化问题的模拟退火算法:
由初始解i和控制参数初值t开始,对当前解重复产生“新解→计算目标函数差→接受或舍弃”的迭代,并逐步衰减t值,算法终止时的当前解即为所得近似最优解,这是基于蒙特卡罗迭代求解法的一种启发式随机搜索过程.退火过程由冷却进度表(CoolingSchedule)控制,包括控制参数的初值t及其衰减因子a、每个t值时的迭代次数L和停止条件C.
3.2模拟退火算法的基本思想
模拟退火算法可以分解为解空间、目标函数和初始解3部分.其基本思想是:
(1)初始化:
初始温度T(充分大),初始解状态s(是算法迭代的起点),每个T值的迭代次数L;
(2)对k=1,……,L做第(3)至第6步;
(3)产生新解
;
(4)计算增量cost=cost(
)-cost(s),其中cost(s)为评价函数;
(5)若t
0则接受
作为新的当前解,否则以概率exp(-t
/T)接受
作为新的当前解;
(6)如果满足终止条件则输出当前解作为最优解,结束程序.终止条件通常取为连续若干个新解都没有被接受时终止算法;
(7)T逐渐减少,且T趋于0,然后转第2步运算.
3.3模拟退火算法的关键技术
(1)新解的产生和接受
模拟退火算法新解的产生和接受可分为如下4个步骤:
①由一个函数从当前解产生一个位于解空间的新解.为便于后续的计算和接受,减少算法耗时,常选择由当前新解经过简单地变换即可产生新解的方法,如对构成新解的全部或部分元素进行置换、互换等.产生新解的变换方法决定了当前新解的邻域结构,因而对冷却进度表的
选取有一定的影响.②计算与新解所对应的目标函数差.因为目标函数差仅由变换部分产生,所以目标函数差的计算最好按增量计算.事实表明,对大多数应用而言,这是计算目标函数差的最快方法.③判断新解是否被接受.判断的依据是一个接受准则,最常用的接受准则是Metropo1is准则:
若
0则接受
作为新的当前解S,否则以概率exp(-
/T)接受
作为新的当前解S.④当新解被确定接受时,用新解代替当前解.这只需将当前解中对应于产生新解时的变换部分予以实现,同时修正目标函数值即可.
模拟退火算法与初始值无关,算法求得的解与初始解状态S(是算法迭代的起点)无关;模拟退火算法具有渐近收敛性,已在理论上被证明是一种以概率收敛于全局最优解的全局优化算法;模拟退火算法具有并行性.
(2)参数控制问题
模拟退火算法的应用很广泛,可以求解NP完全问题,但其参数难以控制,其主要问题有以下3点:
①温度T的初始值设置.温度T的初始值设置是影响模拟退火算法全局搜索性能的重要因素之一.初始温度高,则搜索到全局最优解的可能性大,但因此要花费大量的计算时间;反之,则可节约计算时间,但全局搜索性能可能受到影响.实际应用过程中,初始温度一般需要依据实验结果进行若干次调整.②温度衰减函数的选取.衰减函数用于控制温度的退火速度,一个常用的函数为:
(1)
式中是一个非常接近于1的常数,t为降温的次数.③马尔可夫链长度L的选取.通常的原则是:
在衰减参数T的衰减函数已选定的前提下,L的选取应遵循在控制参数的每一取值上都能恢复准平衡的原则.
3.4Metropolis准则
固体在恒定温度下达到热平衡的过程可以用MorteCarlo算法方法加以模拟,虽然该方法简单但必须大量采样得到比较精确的结果,因而计算量很大.鉴于物理系统倾向于能量较低的状态,而热运动又防碍它准确落到最低态.采样时着重选取那些有重要贡献的状态则可较快达到较好的结果.因此,MetropoliS等在1953年提出了重要的采样法,即以概率接受新状念.其具体描述先给定以粒子相对位置表征的初始状态
作为固体的当前状态,该状态的能量为E
,然后用摄动装置使随机选取的某个粒子的位移随机地产生一微小变化,得到一个新的状态J,新状态的能量是E
,如果E
则接受新状态j为当前状态:
否则,考虑到热运动的影响,该新状态是否“接受”要依据粒子处于该状态的几率来判断.由统计力学知道,物体退火过程的统计性质服从下式所示的正则分布:
P{E=E
}=
(2)
式中,exp(
)称为Boltzmann因子,T是绝对温度,k是Boltamann常熟,Z(T)为概率分布的标准因子
Z(T)=
(3)
由式(2.2)可知,物体处于状态i和状态j的几率的比值等于相应的Boltzmann因子的比值,即
r=exp(
)(4)
r是一个小于1的数.用随机数发生器产生一个在[0,1]区间均匀分布的随机数
,若r>
,则接受新状态J,反之,则舍弃.
如果新状态j可以接受,那么就以j.取代i成为当前状态,重复以上新状态的产生过程.在大量迁移(固体状态的变换称为迁移)后,系统趋于能量较低的平衡状态.
通过对上述物理现象的模拟,假定L(S,f)存在邻域以及相应解的产生机制,
、
分别为对应于解i,j的目标函数值.由解i过渡到解j的接受概率用以下的MetropoliS准则确定:
P(t
)=P(i
)=
(5)
合理的停止准则既要确保算法收敛于某一近似解,又要使最终解具有一定量.从有限
的CPU时间考虑,Nahar等人提出用事先确定好的控制参数的个数,亦即Markov链的个数或迭代次数k作为停止准则.他们选取的迭代次数是6~50次.此类用迭代次数构造的停止准则虽能在等参数的协同下,直接控制算法进程的CPU时间.但对最终解质量的控制很弱,也缺乏灵活性.
控制模拟退火的渐进收敛特性给人们以新的启示:
算法收敛于最优解集是随控制参数t值的缓慢减小而渐进进行.只有在t“充分小”时,才有可能得出高质的最优解.因此,t“充分小”在某种程度上可以替代“最终解质量”的判据,为停止准则所用.一是让控制参数t值小于某个充分小正数e,直接构成停止准则的判断式t 二是由算法进程的接受概率随控制参数值递减的性态,确定一个终止参数,若算法进程的当前接受率,就终止算法.Johnson等采用的就是这种停止准则,这种方法兼顾了最终解质量和CPU时间两个方面对停止准则的要求,只要值选取恰当,CPU时间可望缩减而最终解的质量仍有保证. 常用的选取停止准则的另一个途径是不改进规则控制法,以算法进程所得到的某些近似解为衡量标准,判断算法当前解的质量是否持续得到明显提高,从而确定是否终止算法,如在若干个相继的Markov链中解无任何变化就可以终止算法.这类方法同样兼顾最终解质量和CPU时间,在^和等参数的配合下,不仅可望得到高质量的最终解,而且对于CPU时间有相对控制作用(即CPU时间随问题规模的增大而增大),解质相对稳定. 3.5组合优化与物理退火的相似性 引进模拟退火算法(SA)的原动力是基于这样的模拟: 具有大规模解空叫的组合优化问题和带有多自由度的物理系统显示出类似的性质.该算法用于解决组合优化问题的出发点是鉴于物理中晶体物质的退火过程与一般组合优化问题的相似性. 在对固体物质进行退火处理时,通常是先对它加温,使其熔化,让其中的粒子可以自由运动,然后随着温度缓慢下降,粒子逐渐形成低能态的晶格.若在凝结点附近的温度下降速率过快,则不能达这个能量最低态,而是以一种耋强的或者以一种非晶的具有高能量的亚稳态结束.因此,这个过程的本质是慢速冷却,让粒子有充分 的时间失去可动性,进行重新分布,这是退火的技术定义,立能确保粒子达到低能态势.对于组合优化问题来说,也有类似的过程,组合优化问题解空间的每一点都代表一个具有不同目标函数的解.所谓优化,就是在解空间寻找函数最小解的过程.若把函数看成能量函数,把控制参数视为温度,解空间作为状态空间,那么模拟退火算法(SA)寻找基态的过程就是求目标函数极小值的优化过程,因此,基于MetropoliS接受准则的最优化过程与物理退火过程存在一定的相似性.将这种相似性归纳在下表2.1中. 表1组合优化与物理退火的相似性 组合优化 物理退火 组合优化 物理退火 解 粒子状态 Metropolis抽样过程 等温过程 最优解 能量最低态 控制参数的下降 冷却 设定初始温度 熔解过程 目标函数 能量 众所周知,处于热平衡的物理系统的各种可能状态服从波兹曼(80ltzmann)概率分布,即如式 (2)所示. 这里先研究由式 (2)所确定的函数随T的变化趋势,选定两个能量E ,,在同一温度T下,有: P( )-P( ) = (6) 式(6)中恒存在exp(- 因此式(6)大于零总成立. 在同一温度下,(6)式表示分子停留在能量小的状态的概率比停留在能量大的状态的概率大.当温度相当高时, (2)式的概率分布使得每个状态的概率基本相同, = (7) 当r为状态D中能量最低的状态时,有: 所以,P{ }关于温度T是单调下降的.又有: 其中,D 是具有最低能量的状态集合.令T 0时,有 R= (8) 亦有P{ } . 可见,当温度趋于0时,式 (2)决定的概率渐进1/|D |.据此可以得到,在此温度趋于0时,分予停留在最低能量状态的概率接近于1.综合上面的讨论,分子在能量最低的状态的概率变化可以由图1(a)所示.对于能量最小的状态,由式(3)和分子在能量最小状态的概率是单调减小可知,在温度较高时,分子处于这些状态的概率在l/|D|: 附近,依赖于状念的不同,可能超过1/|D|.由式(7)和(8)可知存在一个温度t,使式(7)决定的概率在(0,1)使单调升的: 再出式(7)可知,当温度趋于O时式 (2)定义的概率趋进于0. 概率变化曲线图见图1(b).由上面的讨论可知,在温度很低时{T O},能量越低的状态的概率值越高.在极限状况,只有能量最低的点概率不为零. (a)能量在最低状态(b)在非能量最低状态 图1波兹曼函数曲线 3.6整体最优解,邻域结构与局部最优解 定义2.1: 设(S,f)是组合优化问题的一个实例,i S,若 (i )≤ ,对所有i∈S成立,称i 为最小化问题min ,i∈S的整体最优解. 定义2.2: 设(s,f)是组合优化问题的一个实例,则一个领域结构是一个映射N: S 2 ,其中2 表示S的所有子集组成的集合,其涵义是,对每一个解i∈S,有一个解的集合S S,这些解在种意义上是“邻近”i的,集合S.称为i的邻域,每个J∈S,称为i的一个邻近解. 定义2.3: 设(S,f)是组合优化问题的一个实例,而N是一个邻域结构,i∈ ,称i为最小化问题min ,i∈S,的局部最优解.即 对所有j∈S,成立 4局部搜索算法 局部搜索算法是一种通用的近似算法,其基本法则是在邻近解中迭代,使目标函数逐步优化,直至不能再优为止.局部搜索法灵活、简便,能求解多种组台优化问题,并能给出较好的近似解. 4.1局部搜索算法的算法描述 局部搜索算法从一个初始解 ∈S开始,然后运用一个产生器,持续的在解i(称为当前解)的邻域S中搜索比i更优的解,若找到比i更优的解,就用这个解取代i成为当前解,再对当前解的领域继续搜索: 直至满足算法终止条件,当前解就是算法的最终解.下面给出伪C语言描述的求解最小化问题的局部搜索算法. 算法2.1最小化问题的局部搜索算法 LOCAL—SEARCH() { INITALIZE(i.,): i=i.: do { for(i=j)j∈S if(f(J) } while(S内还有解未被搜索到): } 4.2局部搜索算法的算法的特点 由算法描述可知,局部算法具有以下特点: (1)通用性: 只要给定组合优化问题的实例(s,f),产生器和邻域结构,就能实现算法; (2)灵活性: 可以选用不同机制的产生器,设定不同复杂程度的邻域结构: (3)最终解可能是某个局部最优解: 在大多数情况下,无法设定恰当的邻域结构,所以不能保证最终解的质量; (4)最终解的质量依赖初始解的选择: 对大多数组合优化问题来说,不存在选择初始 解的准则,算法执行时的初始解常常是随机选取,这可能导致较差的最终解. 4.3改善局部搜索算法性能的途径 在保持局部搜索算法通用性和灵活性的前提百,以下方案有利于提
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 模拟 退火 算法 及其 应用 研究
![提示](https://static.bdocx.com/images/bang_tan.gif)