模拟退火算法综述卜文浩(2160220063)
模拟退火算法及其应用研究
前言模拟退火算法及其应用研究1 前言非数值算法是基础科学,工程技术和管理科学等领域中常用的一类计算方法,如许多解组合优化问题的算法就是典型的非数值算法,由于这些问题的尤其是其中的NP完全问题本身所固有的计算复杂性,求其精确解的计算量往往随问题规模呈指数型增长,以致使用任何高速计算都需要耗费大量的时间,甚至根本无法实现.因此,研究非数值计算的近似算法及其并行实现的途径具有十分重要的实际意义.模拟退火算法是近几年提出的一种适合解大规模组合优化问题,特别是解NP完全问题的通用有效近似算法,它与以往的近似算法相比,具有描述简单,使用灵活,运用广泛,运行效率高和较少受初始条件限制等优点,而且特别适合并行计算.因此不仅具有很高的实用价值,而且对推动并行计算的研究也有着重要的理论意义.组合优化问题的目标函数是从组合优化问题的可行解集中求出最优解.组合优化问题有三个基本要素:变量,约束和目标函数,在求解过程中选定的基本参数称为变量,对变量取值的种种限制称为约束,表示可行方案衡量标准的函数称为目标函数.货郎担问题(TSP)是组合优化问题中最为著名的问题,它易于描述难于求解,自1932年K.Meber提出以来,已引起许多数学家的兴趣,但至今尚未找到有效的求解算法.货郎担问题,是由爱尔兰数学家Sir William Rowan Hamilton和英国数学家Thomas Penyngton Kirkman在19世纪提出的数学问题,它是指给定n个城市并给出每两个城市之间的距离,旅行商必须以最短路径访问所有的城市一次且仅一次,并回到原出发地,现已证明它属于NP(Non-deterministic Polynomial---非确定多项式)难题[1].历史上的第一个正式用来解决TSP问题的算法诞生于1954年,它被用来计算49个城市的TSP问题.到现在为止,运用目前最先进的计算机技术可解决找出游历24978个城市的TSP问题.TSP的历史很久,最早的描述是1759年欧拉研究的骑士周游问题,即对于国际象棋棋盘中的64个方格,走访64个方格一次且仅一次,并且最终返回到起始点.旅行商问题(TSP)由美国RAND公司于1948年引入,该公司的声誉以及线性规划这一新方法的出现使得TSP成为一个知名且流行的问题[2]模拟退火算法及其应用研究旅行商问题是一个经典的图论问题:设有n 个城市,用ij c =1,2,…,n 表示.城市ij c 之间的距离为ij d ,i ,j=1,2,…,n ,设所有城市间两两连通,旅行商需要跑遍n 个城市去推销他的商品,而这些城市之间的距离都不一样,这推销员需要从其中一个城市出发,而他老板规定他必须把所有城市跑一遍,则TSP 问题就是寻找让旅行商遍访每个城市一次且恰好一次的一条回路,且要求其路径总长度为最短.该问题也可以归结为:有N 个城市由公路相互连通,从任一城市到另外城市都要支付相应的费用,一个销售商从其中一城市出发,访问其他N -1个城市且仅一次,如何规划一条路径,使该旅行商的花费最少[3].当城市数量较小时,通过枚举法就可以找出最短的路径,然而随着问题规模的增加,很难找到一个多项式时间复杂度的算法来求解该问题.TSP 是一个典型的组合优化问题,是诸多领域内出现的多种复杂问题的集中概括和简化形式,并且已成为各种启发式的搜索、优化算法的间接比较标准.因此,快速、有效地解决TSP 有着重要的理论价值和极高的实际应用价值.旅行商问题代表的一类组合优化问题,在物流配送、计算机网络、电子地图、交通诱导、电气布线、VLSI 单元布局等方面都有重要的工程和理论价值,引起了许多学者的关注.TSP 是典型的组合优化问题,并且是一个NP-hard 问题.TSP 描述起来很简单,早期的研究者使用精确算法求解该问题,TSP 问题最简单的求解方法是枚举法.它的解是多维的、多局部极值的、趋于无穷大的复杂解的空间,搜索空间是n 个点的所有排列的集合,大小为(n-1)!.可以形象地把解空间看成是一个无穷大的丘陵地带,各山峰或山谷的高度即是问题的极值.求解TSP ,则是在此不能穷尽的丘陵地带中攀登以达到山顶或谷底的过程[4].常用的方法包括:分枝定界法、线性规划法和动态规划法等,但可能的路径总数随城市数目n 是成指数型增长的,所以当城市数目在100个以上一般很难精确的求出其全局最优解.随着人工智能的发展,出现了许多独立于问题的智能优化算法,如蚁群算法、遗传算法、模拟退火、禁忌搜索、神经网络、粒子群优化算法、免疫算法等,通过模拟或解释某些自然现象或过程而得以发展,为解决复杂组合优化问题提供了新的思路和方法[5].模拟退火算法在迭代搜索过程以Boltzmann 分布概率接受目标函数的“劣化解”,具有突出的具有脱离局域最优陷阱的能力,同时具有较强的局部搜索能力,从而可以获取目标函数的全局最优解.因为模拟退火算法具有高效、通用、灵活的优点,将模拟退火算法引入TSP 求解,可以避免在求解过程中陷入TSP 的局部最优解[6].研究目的和意义本文首先介绍传统的TSP问题,先对其进行数学描述,又列举TSP问题的应用.之后介绍模拟退火算法,主要介绍其基本思想和关键技术,在此基础上将模拟退火的思想引入TSP的求解,设计出TSP的一种模拟退火算法并用MATABLE语言编程予以实现.2 选题背景2.1 题目类型及来源题目类型:研究论文题目来源:专题研究2.2研究目的和意义诸如分技定法或整数规划等严格的算法常常不可行.人们常采用的是启发式算法[7].启发式算法“.分为两类:一是从待解决问题的原始数据结构着手进竹构造性求解,另一类是迭代改进现有的解.构造性方法是根据待解决问题的特征来设计的,很难推广到不同应用领域:迭代改进方法更为一般.这类算法的结构一般是这样的:从一个初始解开始,产生一个解序列,直到获得满意解为止.新解的产生规则及终止迭代准则决定了一个具体算法.这类算法的不足之处是:1)算法往往终止于局部最优解.2)最终解取决于初始解的选择及产生新解的规则.许多启发式算法在做迭代改进时都选择最快的减少目标函数值的策略,也就是所谓的贪一b策略.这种“心”算法往往导致陷入局部最优解,而不是全局最优解[8].为了改善迭代型启发算法的行为,有时选择一批初始解,然后做相同的迭代以提高获得全局最优解的概率.也可借助于随机搜索的算法[9],其特点是随机的产生下一新解.若新解比当前解的值更低,则将新解作为暂存解.如果最优解与总解的比例越高,找到最优解的概率也就越大.故当最优解的数目很大时,随机搜索算法的功能还是很好的.作为一种通用的随机搜索算法,模拟退火(Simulated Annealing,以下简称SA)算法有着更好的渐进行为.它是近年来提出的一种适合解大规模组合优化问题通用而模拟退火算法及其应用研究有效的近似算法.它与以往的近似算法相比,具有描述简单、使用灵活、运用广泛、运行效率高和较少受初始条件约束等优点,而且特别适合并行计算,因此具有很高的实用价值.随着计算机技术的发展和普及,最优化理论和方法在诸多领域都得到了迅速发展和推广.目前,它已成为现代科学技术中一个必不可少、重要的数学手段和方法,其应用和发展为诸多领域中非线性问题的解决,提供了孥实而有力的理论基础和有效的方法.本论文利用模拟退火算法的高效性和优越性,将其用在货郎担问题的求解中.2.3 国内外现状和发展趋势与研究的主攻方向模拟退火算法(SA)在理论上已得到证明,它可以达到全局极小值,所以它备受专家与学者的青睐.目前,关于模拟退火算法的研究通常分为两类.笫一类是基于有限状态奇异马尔可夫链的有关理论[11],给出模拟退火算法的某些关于理想收敛模型的充分条件或充要条件,这些条件在理论上证明了当退火三原则(初始温度足够高、降温速度足够慢、终止温度足够低)满足时[12],模拟退火算法以概率l达到全局最优解;第二类是针对某些具体问题,给出了模拟退火算法的很多成功应用.事实上,正是由于专家和学者对该算法的钻研,才让该算法从经典的模拟退火算法走到了今天的多样型的模拟退火算法,比如快速模拟退火算法,使得该算法的速度和收敛性都得到较大提高,再比如适应性的模拟退火算法,使得该算法具有智能性;再比如现在有学者提到的遗传一模拟退火算法,就是将遗传算法和模拟退火算法二者的优越性结合起.不能忽略的是每种算法的提出都与其应用范围紧密结合[13],这样才使得改进的算法在其应用领域具有较好的适用性.由于模拟退火算法(SA)从理论上可以达到全局极小值,所以对该算法的研究更有实际意义,众多学者正在努力钻研将其一般化,使其具有普遍适用性.3 模拟退火算法的一些知识3.1 模拟退火算法的描述模拟退火算法(Simulated Annealing)最早见于IBM托马斯.J.沃森研究中心的S.Kirkpatrick 等人的文章, 他们在对组合优化进行研究后, 根据迭代改进的思想提出了“模拟退火算法”,模拟退火算法具有很强的局部搜索能力.模拟退火算法来源于固体退火原理, 将固体加温至充分高, 再让其缓慢降温(即退火), 使之达到能量模拟退火算法的描述最低点.反之, 如果急速降温(即淬火)则不能达到最低点.加温时, 固体内部粒子随温升变为无序状, 内能增大, 而缓慢降温时粒子渐趋有序, 在每个温度上都达到平衡态,最后在常温时达到基态, 内能减为最小.根据Metropolis 准则,粒子在温度T 时趋于平衡的概率为exp(- E/(kT)), 其中E 为温度T 时的内能, E 为其改变量, k 为Boltzman 常数.用固体退火模拟组合优化问题, 将内能E 模拟为目标函数值f, 温度T 演化成控制参数t, 即得到解组合优化问题的模拟退火算法:由初始解i 和控制参数初值t 开始, 对当前解重复产生“新解→计算目标函数差→接受或舍弃”的迭代, 并逐步衰减t 值, 算法终止时的当前解即为所得近似最优解[14], 这是基于蒙特卡罗迭代求解法的一种启发式随机搜索过程.退火过程由冷却进度表(Cooling Schedule)控制[15], 包括控制参数的初值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值,算法终止时的当前解即为所得近似最优解,这是基于蒙特卡罗迭代求解法的一种启发式随机搜索过程.退火过程由冷却进度表(Cooling Schedule)控制,包括控制参数的初值t及其衰减因子a、每个t值时的迭代次数L和停止条件C.3.2 模拟退火算法的基本思想模拟退火算法可以分解为解空间、目标函数和初始解3部分.其基本思想是:(1)初始化:初始温度T(充分大),初始解状态s(是算法迭代的起点),每个T 值的迭代次数L;(2)对k=1,……,L做第(3)至第6步;(3)产生新解's;(4)计算增量cost=cost('s)-cost(s),其中cost(s)为评价函数;(5)若t'<0则接受's作为新的当前解,否则以概率exp(-t'/T)接受's作为新的当前解;(6)如果满足终止条件则输出当前解作为最优解,结束程序.终止条件通常取为连续若干个新解都没有被接受时终止算法;(7)T逐渐减少,且T趋于0,然后转第2步运算.3.3 模拟退火算法的关键技术(1)新解的产生和接受模拟退火算法新解的产生和接受可分为如下4个步骤:①由一个函数从当前解产生一个位于解空间的新解.为便于后续的计算和接受,减少算法耗时,常选择由当前新解经过简单地变换即可产生新解的方法,如对构成新解的全部或部分元素进行置换、互换等.产生新解的变换方法决定了当前新解的邻域结构,因而对冷却进度表的模拟退火算法的基本思想选取有一定的影响.②计算与新解所对应的目标函数差.因为目标函数差仅由变换部分产生,所以目标函数差的计算最好按增量计算.事实表明,对大多数应用而言,这是计算目标函数差的最快方法.③判断新解是否被接受.判断的依据是一个接受准则,最常用的接受准则是Metropo1is 准则:若't <0则接受'S 作为新的当前解S ,否则以概率exp(-'t /T)接受'S 作为新的当前解S.④当新解被确定接受时,用新解代替当前解.这只需将当前解中对应于产生新解时的变换部分予以实现,同时修正目标函数值即可.模拟退火算法与初始值无关,算法求得的解与初始解状态S(是算法迭代的起点)无关;模拟退火算法具有渐近收敛性,已在理论上被证明是一种以概率收敛于全局最优解的全局优化算法;模拟退火算法具有并行性.(2)参数控制问题模拟退火算法的应用很广泛,可以求解NP 完全问题,但其参数难以控制,其主要问题有以下3点:①温度T 的初始值设置.温度T 的初始值设置是影响模拟退火算法全局搜索性能的重要因素之一.初始温度高,则搜索到全局最优解的可能性大,但因此要花费大量的计算时间;反之,则可节约计算时间,但全局搜索性能可能受到影响.实际应用过程中,初始温度一般需要依据实验结果进行若干次调整.②温度衰减函数的选取.衰减函数用于控制温度的退火速度,一个常用的函数为:(1)()T t T t α+= (1)式中是一个非常接近于1的常数,t 为降温的次数.③马尔可夫链长度L 的选取.通常的原则是:在衰减参数T 的衰减函数已选定的前提下,L 的选取应遵循在控制参数的每一取值上都能恢复准平衡的原则.3.4 Metropolis 准则固体在恒定温度下达到热平衡的过程可以用Morte Carlo 算法方法加以模拟,虽然该方法简单但必须大量采样得到比较精确的结果,因而计算量很大.鉴于物理系统倾向于能量较低的状态,而热运动又防碍它准确落到最低态.采样时着重选取那些有重要贡献的状态则可较快达到较好的结果.因此,MetropoliS 等在1953年提出了重要的采样法,即以概率接受新状念.其具体描述先给定以粒子相对位置表征的初始状态0i 作为固体的当前状态,该状态的能量为E 0i ,然后用摄动装置使随机选取的某个粒子的位移随机地产生一微小变化,得到一个新的状态J ,新状态的能量是E j ,如果E 0i j E <则接受新状态j 为当前状态:否则,考虑到热运动的影响,该新状态是否“接受”要依据粒子处于该状态的几率来判断.由统计力学知道,物体退火过程的统计性质服从下式所示的正则分布:P{E=E j }=)ex p()(1kTE T Z i - (2) 式中,exp (kTE i -)称为Boltzmann 因子,T 是绝对温度,k 是Boltamann 常熟,Z(T)为概率分布的标准因子 Z(T)=∑-)(exp kTE i (3) 由式(2.2)可知,物体处于状态i 和状态j 的几率的比值等于相应的Boltzmann 因子的比值,即 r=exp(kT E E ji -) (4)r 是一个小于1的数.用随机数发生器产生一个在[0,1]区间均匀分布的随机数δ,若r>δ,则接受新状态J ,反之,则舍弃.如果新状态j 可以接受,那么就以j.取代i 成为当前状态,重复以上新状态的产生过程.在大量迁移(固体状态的变换称为迁移)后,系统趋于能量较低的平衡状态.通过对上述物理现象的模拟,假定L(S ,f)存在邻域以及相应解的产生机制,)(x f 、)(y f 分别为对应于解i ,j 的目标函数值.由解i 过渡到解j 的接受概率用以下的MetropoliS 准则确定:P(t k )=P(i j →)=⎪⎩⎪⎨⎧>-≤)()(),)()(exp()()(,1j f i f t j f i f j f i f k (5) 合理的停止准则既要确保算法收敛于某一近似解,又要使最终解具有一定量.从有限的CPU时间考虑,Nahar等人提出用事先确定好的控制参数的个数,亦即Markov链的个数或迭代次数k作为停止准则.他们选取的迭代次数是6~50次.此类用迭代次数构造的停止准则虽能在等参数的协同下,直接控制算法进程的CPU时间.但对最终解质量的控制很弱,也缺乏灵活性.控制模拟退火的渐进收敛特性给人们以新的启示:算法收敛于最优解集是随控制参数t值的缓慢减小而渐进进行.只有在t“充分小”时,才有可能得出高质的最优解.因此,t“充分小”在某种程度上可以替代“最终解质量”的判据,为停止准则所用.一是让控制参数t值小于某个充分小正数e,直接构成停止准则的判断式t<e:二是由算法进程的接受概率随控制参数值递减的性态,确定一个终止参数,若算法进程的当前接受率,就终止算法.Johnson等采用的就是这种停止准则,这种方法兼顾了最终解质量和CPU时间两个方面对停止准则的要求,只要值选取恰当,CPU时间可望缩减而最终解的质量仍有保证.常用的选取停止准则的另一个途径是不改进规则控制法,以算法进程所得到的某些近似解为衡量标准,判断算法当前解的质量是否持续得到明显提高,从而确定是否终止算法,如在若干个相继的Markov链中解无任何变化就可以终止算法.这类方法同样兼顾最终解质量和CPU时间,在^和等参数的配合下,不仅可望得到高质量的最终解,而且对于CPU时间有相对控制作用(即CPU时间随问题规模的增大而增大),解质相对稳定.3.5 组合优化与物理退火的相似性引进模拟退火算法(SA)的原动力是基于这样的模拟:具有大规模解空叫的组合优化问题和带有多自由度的物理系统显示出类似的性质.该算法用于解决组合优化问题的出发点是鉴于物理中晶体物质的退火过程与一般组合优化问题的相似性.在对固体物质进行退火处理时,通常是先对它加温,使其熔化,让其中的粒子可以自由运动,然后随着温度缓慢下降,粒子逐渐形成低能态的晶格.若在凝结点附近的温度下降速率过快,则不能达这个能量最低态,而是以一种耋强的或者以一种非晶的具有高能量的亚稳态结束.因此,这个过程的本质是慢速冷却,让粒子有充分模拟退火算法及其应用研究的时间失去可动性,进行重新分布,这是退火的技术定义,立能确保粒子达到低能态势.对于组合优化问题来说,也有类似的过程,组合优化问题解空间的每一点都代表一个具有不同目标函数的解.所谓优化,就是在解空间寻找函数最小解的过程.若把函数看成能量函数,把控制参数视为温度,解空间作为状态空间,那么模拟退火算法(SA)寻找基态的过程就是求目标函数极小值的优化过程,因此,基于MetropoliS 接受准则的最优化过程与物理退火过程存在一定的相似性.将这种相似性归纳在下表2.1中.表1 组合优化与物理退火的相似性众所周知,处于热平衡的物理系统的各种可能状态服从波兹曼(80ltzmann)概率分布,即如式(2)所示.这里先研究由式(2)所确定的函数随T 的变化趋势,选定两个能量E 1<E 2,,在同一温度T 下,有:P(1E =E )-P(2E =E )=)]ex p(1)[ex p()(1121kT E E kT E T Z ---- (6) 式(6)中恒存在exp(-,0,1)12>∀<-T kTE E 因此式(6)大于零总成立.组合优化和物理退火的相似性在同一温度下,(6)式表示分子停留在能量小的状态的概率比停留在能量大的状态的概率大.当温度相当高时,(2)式的概率分布使得每个状态的概率基本相同,Tr E E P ∂=∂)}({=])(})(exp{)()([)(})({exp 2T Z kT s E s E i E kTT Z kT r E Ds ∑∈--- (7) 当r 为状态D 中能量最低的状态时,有:0T)}r ({<∂=∂E E P所以,P{)(r E E =}关于温度T 是单调下降的.又有: ||1))(ex p()(1)}({0R D kT r E T Z r E E P +=-== 其中,D 0是具有最低能量的状态集合.令T →0时,有R=∑<∈→--)()(,0))()(ex p(r E N E D N kTr E s E (8) 亦有P{)(r E E =}||10D →. 可见,当温度趋于0时,式(2)决定的概率渐进1/|D 0|.据此可以得到,在此温度趋于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)是组合优化问题的一个实例,iopt ∈S,若f(iopt)≤)(if,对所有i∈S成立,称iopt 为最小化问题min)(if,i∈S的整体最优解.定义2.2:设(s,f)是组合优化问题的一个实例,则一个领域结构是一个映射N:S→2n,其中2n表示S的所有子集组成的集合,其涵义是,对每一个解i∈S,有一个解的集合S⊂iS,这些解在种意义上是“邻近”i的,集合S.称为i的邻域,每个J∈S,称为i的一个邻近解.定义2.3:设(S,f)是组合优化问题的一个实例,而N是一个邻域结构,i∈js,称i为最小化问题min()f x,i∈S,的局部最优解.即)(^ if≤)(jf,对所有j∈S,成立。
《模拟退火算法》PPT课件
2、SA算法的起源
SA算法起源于对固体退火过程的模拟。简单而言,在固体退火 时,先将固体加热使其温度充分高,再让其徐徐冷却,其物理退火过 程由以下三部分组成:加温过程、等温过程、冷却过程。
SA算法就是模仿上述物理系统徐徐退火过程的一种通用随机搜索技
术。
模拟退火算法与物理退火过程的相似关系
3、SA算法的基本思想
在搜索最优解的过程中,SA算法除了可以接受优化解外,还 基于随机接受准则(Metropolis准则)有限度地接受恶化解,并且 接受恶化解的概率慢慢趋向于0。(这使得算法有可能从局部最优 中跳出,尽可能找到全局最优解,并保证了算法的收敛)
SA的思想最早是由Metropolis等在1953年提出的, Metropolis 等提出了重要性采样法,即以概率接受新状态。
5、SA算法应用范围与一般要求
冷却进度表是指从某一高温状态T0向低温状态冷却时的降温管理表 。
假设时刻t的温度用T(tT)来(t)表示,T则0 经典模拟退火算法的降温方式为
:
lg(1t)
T (t) T0 而快速模拟退火算法的降温方1式为t :
这两种方式都能够使得模拟退火算法收敛于全局最小点。
5、SA算法应用范围与一般要求
4、SA算法的基本步骤
1) 随机产生一个初始解x0,令xbest= x0并计算目标函数值E(x0); 2) 设置初始温度T(0)=To,迭代次数i = 1; 3) Do while T(i) > Tmin
1) for j = 1~k 2) 对当前最优解xbest按照某一邻域函数,产生一新的解xnew。计算
谢谢 本课件仅供大家学习学习
学习完毕请自觉删除 谢谢
1、引子 2、SA算法的起源 3、SA算法的基本思想 4、SA算法的步骤 5、SA算法应用范围与一般要求 6、SA算法的优缺点
模拟退火算法
第十章模拟退火算法在管理科学、计算机科学、分子物理学、生物学、超大规模集成电路设计、代码设计、图像处理和电子工程等领域中,存在着大量的组合优化问题。
例如,货郎担问题、最大截问题、0—1背包问题、图着色问题、设备布局问题以及布线问题等,这些问题至今仍未找到多项式时间算法。
这些问题已被证明是NP完全问题。
根据NP完全性理论,除非P=NP,否则所有的NP难问题都不存在多项式时间算法。
但是,这并不意味着问题的终结。
相反,由于这类问题广泛应用性,反而刺激人们以更大的热情对NP完全问题进行研究。
为解决这类问题,人们提出了许多近似算法,但这些算法或过于注意个别问题的特征而缺乏通用性,或因所得解强烈地依赖初始解的选择而缺乏实用性。
模拟退火算法是近年提出的一种适合解大规模组合优化问题,特别是解NP完全问题的通用有效的近似算法,它与以往的近似算法相比,具有描述简单、使用灵活、运用广泛、运行效率高和较少受初始条件限制的优点,而且特别适合并行计算,因此具有很大的使用价值。
同时由于其讨论涉及随机分析、马尔可夫链理论、渐进收敛性等学科,所以其研究还具有重要的理论意义。
10.1模拟退火算法的基本思想10.1.1 模拟退火算法的物理背景固体退火过程的物理图像和统计性质是模拟退火算法的物理背景。
在热力学与统计物理学的研究领域中,固体退火是其重要的研究对象。
固体退火是指先将固体加热至熔化,再徐徐冷却使之凝固成规整晶体的热力学过程。
在高温状态下,液体的分子彼此之间可以自由的移动。
如果液体徐徐冷却,它的分子就会丧失由于温度而引起的流动性。
这时原子就会自己排列起来而形成一种纯晶体,它们依次地朝各个方向几十亿倍于单个原子大小的距离,这个纯晶体状态就是该系统的最小能量状态。
有趣的是,对于一个徐徐冷却的系统,当这些原子在逐渐失去活力的同时,它们自己就同时地排列而形成一个纯晶体,使这个系统的能量达到其最小值。
这里我们特别强调在这个物理系统的冷却过程中,这些原子就“同时的”把它们自己排列成一个纯晶体的。
模拟退火算法算法
Metropolis准则(1953)——以概率接受新状态 若在温度T,当前状态i → 新状态j 若Ej<Ei,则接受 j 为当前状态;
否则,若概率 p=exp[-(Ej-Ei)/kBT] 大于[0,1)区间 的随机数,则仍接受状态 j 为当前状态;若不成 立则保留状态 i 为当前状态。
Monte Carlo方法
Monte Carlo 方法的基本思想很早以前就被人 们所发现和利用。 早在17世纪,人们就知道用事件发生的“频率” 来决定事件的“概率”。 Buffon试验:19世纪人们用投针试验的方法来 求解圆周率π。 本世纪40年代电子计算机的出现,特别是近年 来高速电子计算机的出现,使得用数学方法在 计算机上大量、快速地模拟这样的试验成为可 能。
最优解
设定初温 Metropolis抽样过程 控制参数的下降
能量最低的状态
熔解过程 等温过程 冷却
目标函数
能量
物理退火过程
物理退火过程
• • • • • • •
模拟退火算法
•
• •
物体内部的状态 状态的能量 温度 熔解过程 退火冷却过程 状态的转移 能量最低状态
问题的解空间
解的质量 控制参数
类比关系
E ( s) Z (T ) exp k T sD B 温度低时能量低的微观状态概率大,温度趋于零时, 固体几乎处于概率最大能量最小的基态。
1 模拟退火算法概述
1.1 固体退火过程
数学表述
在同一个温度T,选定两个能量E1<E2,有
E1 E2 E1 1 P{E E1} P{E E2 } exp 1 exp Z (T ) k T k T B B
模拟退火算法详解
车间调度问题求解
总结词
模拟退火算法在车间调度问题求解中具有较好的应用 效果,能够提高生产效率。
详细描述
车间调度问题是一个复杂的优化问题,旨在合理安排生 产任务和资源分配,以提高生产效率。模拟退火算法通 过随机搜索和接受不良解的概率,能够找到较为满意的 调度方案。在车间调度问题中,模拟退火算法可以与其 他启发式方法结合使用,以获得更好的性能。此外,模 拟退火算法还可以应用于其他生产调度问题,如作业车 间调度、装配线平衡等。
旅行商问题求解
总结词
模拟退火算法在旅行商问题求解中具有较好的性能, 能够找到高质量的解。
详细描述
旅行商问题是一个NP难问题,旨在寻找一条旅行路线 ,使得一个旅行商能够访问一系列城市并返回到起始 城市,且总旅行距离最短,同时满足每个城市恰好经 过一次。模拟退火算法通过随机搜索和接受不良解的 概率,能够探索更广阔的解空间,从而找到高质量的 解。在旅行商问题中,模拟退火算法可以与其他启发 式方法结合使用,以获得更好的性能。
迭代更新
重复产生新解、计算能量差和降低温度的 过程,直到满足终止条件。
终止条件
达到最大迭代次数
当达到预设的最大迭代次数时,算法终止。
温度低于阈值
当温度低于一个预设的阈值时,算法终止。
解的质量满足要求
当当前解的质量满足预设的要求或与最优解 的差距在可接受范围内时,算法终止。
03
模拟退火算法参数设置
温度衰减率
总结词
温度衰减率是模拟退火算法中温度变化的速率,它决定了算法的收敛速度和全局搜索能 力。
详细描述
温度衰减率决定了算法在迭代过程中温度下降的速度。较小的衰减率可以使算法在迭代 过程中有更多的时间来探索解空间,但可能会导致算法收敛速度较慢;而较大的衰减率 则可以使算法更快地收敛到最优解,但可能会牺牲一些全局搜索能力。因此,选择合适
模拟退火算法
LOREM IPSUM DOLOR
导论
• 模拟退火算法(Simulated Annealing,SA)是一种通用的优化算法。 目前,已在:生产调度、控制工程、计算机视觉、神经网络、图像 处理等工程领域中得到了广泛应用。
• 最早的思想是由N.Metropolis等人于1953年提出。1983年,S. Kirkpatrick等成功地将退火思想引入到组合优化领域。它是基于 Monte-Carlo迭代求解策略的一种随机寻优算法,其出发点是基于物 理中固体物质的退火过程与一般组合优化问题之间的相似性。模拟 退火算法从某一较高初温出发,伴随温度参数的不断下降,结合概率 突跳特性在解空间中随机寻找目标函数的全局最优解,即在局部最 优解能概率性地跳出并最终趋于全局最优。
模拟退火算法的流程图
初使化设定
随机产生一个初始解
扰动产生一个新解 No
是否接受? Yes
修改目前解 Yes
降温
缩减温度
No
No 是否达到中止条件?
Yes 最佳解
算法的关键参数和操作的设定
➢状态产生函数: ➢原则:设计状态产生函数(邻域函数)的出发点应该是 尽可能保证产生的候选解遍布全部的解空间。通常,状 态产生函数由两部分组成,即产生候选解的方式和候选 解产生的概率分布 ➢方法:在当前状态的邻域结构内以一定概率方式(均匀 分布、正态分布、指数分布等)产生
高温
缓慢下降
高能状态
低温
低能状态
模拟退火算法的思想
物理退火过程
➢加温过程——增强粒子的热运动,消除系统原先可能存在的非均匀态; ➢等温过程——对于与环境换热而温度不变的封闭系统,系统状态的自发变化 总是朝自由能减少的方向进行,当自由能达到最小时,系统达到平衡态; ➢冷却过程——使粒子热运动减弱并渐趋有序,系统能量逐渐下降,从而得到 低能的晶体结构。
模拟退火算法介绍资料
模拟退火算法介绍解析模拟退火算法一.爬山算法(Hill Climbing)介绍模拟退火前,先介绍爬山算法。
爬山算法是一种简单的贪心搜索算法,该算法每次从当前解的临近解空间中选择一个最优解作为当前解,直到达到一个局部最优解。
爬山算法实现很简单,其主要缺点是会陷入局部最优解,而不一定能搜索到全局最优解。
如图1所示:假设C点为当前解,爬山算法搜索到A点这个局部最优解就会停止搜索,因为在A点无论向那个方向小幅度移动都不能得到更优的解。
二.模拟退火(SA,Simulated Annealing)思想爬山法是完完全全的贪心法,每次都鼠目寸光的选择一个当前最优解,因此只能搜索到局部的最优值。
模拟退火其实也是一种贪心算法,但是它的搜索过程引入了随机因素。
模拟退火算法以一定的概率来接受一个比当前解要差的解,因此有可能会跳出这个局部的最优解,达到全局的最优解。
以图1为例,模拟退火算法在搜索到局部最优解A后,会以一定的概率接受到E的移动。
也许经过几次这样的不是局部最优的移动后会到达D点,于是就跳出了局部最大值A。
模拟退火算法描述:若J(Y(i+1))>=J(Y(i))(即移动后得到更优解),则总是接受该移动若J(Y(i+1))<J(Y(i))(即移动后的解比当前解要差),则以一定的概率接受移动,而且这个概率随着时间推移逐渐降低(逐渐降低才能趋向稳定)这里的“一定的概率”的计算参考了金属冶炼的退火过程,这也是模拟退火算法名称的由来。
根据热力学的原理,在温度为T时,出现能量差为dE的降温的概率为P(dE),表示为:P(dE)=exp(dE/(kT))其中k是一个常数,exp表示自然指数,且dE<0。
这条公式说白了就是:温度越高,出现一次能量差为dE的降温的概率就越大;温度越低,则出现降温的概率就越小。
又由于dE总是小于0(否则就不叫退火了),因此dE/kT < 0 ,所以P(dE)的函数取值范围是(0,1) 。
模拟退火算法
模拟退火算法模拟退火算法来源于固体退火原理,先将固体加温至充分高,再让其徐徐冷却,在加温的时候,固体内部粒子随温度的升高而变为无序状,内能增大,当渐渐冷却时粒子渐趋于有序,在每个温度都达到平衡态,最后在常温时达到基态,内能减为最小。
根据Metropolis准则,粒子在温度T时趋于平衡的概率为e-ΔE/(kT),其中呢,E为温度T 时的内能,ΔE为其改变量,k为Boltzmann常数。
用固体退火模拟组合优化问题,将内能E模拟为目标函数值f,温度T演化成控制参数t,即得到解组合优化问题的模拟退火算法:由初始解i和控制参数初值t开始,对当前解重复“产生新解→计算目标函数差→接受或舍弃”的迭代,并逐步衰减t值,算法终止时的当前解即为所得近似最优解,这是基于蒙特卡罗迭代求解法的一种启发式随机搜索过程。
退火过程由冷却进度表(Cooling Schedule)控制,包括控制参数的初值t及其衰减因子Δt、每个t值时的迭代次数L和停止条件S。
模型在比赛中算是一个让人头疼的部分吧,下面说说模拟退火的模型模拟退火算法可以分为三部分一、解空间二、目标函数三、初始解模型的基本思想如下:(1) 首先是初始化:初始温度T(充分大),初始解状态S(这是算法迭代的起点),每个T值的迭代次数为L(2) 对k=1,……,L做第(3)至第6步:(3) 产生新解S′(4) 计算增量Δt′=C(S′)-C(S),其中C(S)为评价函数(5) 若Δt′<0则接受S′作为新的当前解,否则以概率exp(-Δt′/T)接受S′作为新的当前解.(6) 如果满足终止条件则输出当前解作为最优解,结束程序。
终止条件通常取为连续若干个新解都没有被接受时终止算法。
(7) 如果T逐渐减少,且T->0,那就转第2步。
总结以下上楼,对于新解的产生和接受可分为以下四个步骤第一步是由一个产生函数从当前解产生一个位于解空间的新解,这应该不难理解吧,都是学高数的孩纸,为便于后续的计算和接受,减少算法耗时,通常选择由当前新解经过简单地变换即可产生新解的方法,如对构成新解的全部或部分元素进行置换、互换等,注意到产生新解的变换方法决定了当前新解的邻域结构,因而对冷却进度表的选取有一定的影响第二步是计算与新解所对应的目标函数差。
模拟退火算法的研究及其应用
模拟退火算法的研究及其应用一、本文概述本文旨在深入研究和探讨模拟退火算法的理论基础、实现方法以及其在各个领域的实际应用。
模拟退火算法是一种基于概率的随机优化搜索技术,其灵感来源于物理学的退火过程。
通过模拟固体物质在加热和冷却过程中的热力学行为,该算法能够在求解复杂优化问题时有效避免陷入局部最优解,从而提高全局搜索能力。
本文将首先介绍模拟退火算法的基本原理和发展历程,随后详细阐述其实现步骤和关键参数设置。
在此基础上,文章将重点分析模拟退火算法在组合优化、机器学习、神经网络训练、图像处理、生产计划调度等多个领域的应用案例,探讨其在实际问题中的有效性和优越性。
本文还将对模拟退火算法的未来研究方向和应用前景进行展望,以期为相关领域的研究者提供有益的参考和启示。
二、模拟退火算法原理模拟退火算法(Simulated Annealing,SA)是一种基于概率的搜索算法,它源于固体退火过程与组合优化问题的相似性。
在物理学中,固体物质的退火过程是指将物质加热至足够高的温度,使其内部粒子可以自由移动,然后缓慢冷却,以达到低能稳定状态。
模拟退火算法借鉴了这一过程,通过模拟这个过程来寻找大规模组合优化问题的全局最优解。
模拟退火算法的基本原理包括三个关键步骤:初始化、状态转移和接受准则。
算法从一个初始解开始,这个初始解可以是随机产生的,也可以是问题的一个启发式解。
然后,算法通过不断生成新的解来搜索解空间。
新解的生成是通过在当前解的基础上做随机扰动实现的,这种扰动可以是简单的位翻转,也可以是复杂的局部搜索。
在生成新解之后,算法需要决定是否接受这个新解。
这一步是通过一个接受准则来实现的,这个准则通常是一个概率函数,它决定了算法在当前温度下接受新解的可能性。
如果新解的目标函数值比当前解更优,那么新解总是被接受;如果新解的目标函数值比当前解更差,那么新解被接受的概率会随着两者差值的增大而减小,这个概率与当前温度成正比。
随着算法的进行,温度会逐渐降低,这样新解被接受的可能性就会逐渐减小,算法会逐渐趋向于寻找更好的解。
计算智能-模拟退火算法
4.2 模拟退火算法流程
成本函数(Cost Function):用来衡量 某一系统状态下之能量函数 退火程序(Annealing Process):退火 程序中包含的参数有初始温度、降温机制、 冷却率和终止温度。在退火的过程中,在温 度高的时候,虽然是较差的目标值,但有可 能被接受当成目前的目标值,但随着温度慢 慢的降低,接受较差目标值的概率逐渐降低。
4.1 模拟退火算法概述
接受法则(Accepting Rule) 并用退火程序(Annealing Schedule)的参数演算法的进行 而Metroplis 接受法则的概念则在于能 使求解时跳脱陷入区域最佳解 而模拟退火法能否成功应用在于退火程 序的合理选择
4.1 模拟退火算法概述
4.模拟退火算法
4.1 模拟退火算法概述
python 模拟退火算法
python 模拟退火算法模拟退火算法是一种随机优化算法,其主要思想是通过控制温度使系统从一个高能态逐渐趋向低能态,以得到最优解。
下面是一个简单的Python 实现:pythonimport mathimport randomdef acceptance_probability(old_cost, new_cost, temperature): if new_cost < old_cost:return 1.0else:return math.exp((old_cost - new_cost) / temperature)def simulated_annealing(cost_function, initial_solution,temperature=100.0, cooling_rate=0.03):current_solution = initial_solutionbest_solution = initial_solutioncurrent_cost = cost_function(current_solution)best_cost = current_costwhile temperature > 1:next_solution = current_solution[:]index = random.randint(0, len(current_solution) - 1)next_solution[index] += random.uniform(-1, 1)new_cost = cost_function(next_solution)ap = acceptance_probability(current_cost, new_cost, temperature)if ap > random.random():current_solution = next_solutioncurrent_cost = new_costif current_cost < best_cost:best_solution = current_solutionbest_cost = current_costtemperature *= 1 - cooling_ratereturn best_solution, best_cost这个函数接收一个代价函数和初始解作为输入,并输出最优解及其对应的代价。
模拟退火算法及其改进算法
2.模拟退火算法
2.1 模拟退火算法的原理 模拟退火算法来源于固体退火原理,将固 体加温至充分高,再让其徐徐冷却,加温 时,固体内部粒子随温升变为无序状,内 能增大,而徐徐冷却时粒子渐趋有序,在 每个温度都达到平衡态,最后在常温时达 到基态,内能减为最小。根据Metropolis准 则,粒子在温度T时趋于平衡的概率为 P=e-∆E/(kT) 其中: E为温度T时的内能 ∆E为能量的改变量 k为Boltzmann常数
X 0 = (0, 0, 0, 0, 0, 0, 0, 0, 0, 0), t0 = 1, N = 5, ε = 0.02.
在计算机上运行后得到最优解 X * = (1,1, 0,1,1, 0,1,1,1,1)
1.2 随机神经网络 BP神经网络和反馈神经网络都是使能量 函数按梯度单调下降,如图 常常导致网络 落入局部最小点而达不到全局最小点,这 就意味着训练不收敛。
而随机网络即能赋予网络下山的能力,也 能赋予网络上山的能力,特点如下: (1)在学习阶段,随机网络不像其它网络那 样基于某种确定性算法(2)在运行阶段, 随机网络不是按某种确定性的网络方程进 行状态演变,神经元的净输入不能决定其 状态是1还是0.
t = 0.9t , n = 0, 转步骤3,否则停止算法输出当
3.1.4实例分析
L 某型导弹改进项目的投资 La 为300万元, b 为270万元。 现有10个研制单位申请投资,有关信息如表1表2所示。 现在要求确定军方的投资组合决策,以决定对哪些单 位投资。
运用Matlab软件,可以根据上述算法编制相应程对 该问题进行求解,其中相关参数的设置为
[ ∑ ∑ X i X j i cov(TNPVi , TNPV j )]1/ 2
i =1 j =1
模拟退火算法简介:原理+实例
模拟退火算法(Simulated Annealing)主要内容◆算法原理◆算法应用◆作业现代智能优化算法,主要用于求解较为复杂的优化问题。
与确定性算法相比,其特点如下:第一,目标函数与约束函数不需要连续、可微,只需提供计算点处的函数值即可;第二,约束变量可取离散值;第三,通常情况下,这些算法能求得全局最优解。
现代智能优化算法,包括禁忌搜索,模拟退火、遗传算法等,这些算法涉及生物进化、人工智能、数学和物理学、神经系统和统计力学等概念,都是以一定的直观基础构造的算法,统称为启发式算法。
启发式算法的兴起,与计算复杂性理论的形成有密切的联系,当人们不满足常规算法求解复杂问题时,现代智能优化算法开始起作用。
现代智能优化算法,自20世纪80年代初兴起,至今发展迅速,其与人工智能、计算机科学和运筹学融合,促进了复杂优化问题的分析和解决。
模拟退火算法(Simulated Annealing, SA)是一种通用的随机搜索算法,是局部搜索算法的扩展。
最早于1953年由Metropolis提出,K irkpatric等在1983年将其成功用于组合优化问题的求解。
算法的目的:解决NP复杂性问题;克服优化过程陷入局部极小;克服初值依赖性。
一、算法原理启发:物质总是趋于最低的能态。
如:水往低处流;电子向最低能级的轨道排布。
结论:最低能态是最稳定的状态。
物质会“自动”地趋于最低能态。
猜想:物质趋于最低能态与优化问题求最小值之间有相似性,能否设计一种用于求函数最小值的算法,就像物质“自动”地趋于最低能态?退火,俗称固体降温。
先把固体加热至足够高的温度,使固体中所有的粒子处于无序的状态(随机排列,此时具有最高的熵值);然后将温度缓缓降低,固体冷却,粒子渐渐有序(熵值下降,以低能状态排列)。
原则上,只要温度上升得足够高,冷却过程足够慢,则所有粒子最终会处于最低能态(此时具有最低的熵值)。
模拟退火算法就是将退火过程中系统熵值类比为优化问题的目标函数值来达到优化问题寻优的一种算法。
模拟退火算法
➢尽可能保证产生的候选解遍布整个解空间.
➢应能使解空间中的任何两个状态可达.
2.解接受函数
➢判断新解是否被接受的依据是Metropolis准则:
1,
f 0
P expf/t, f 0 On the evening of July 24, 2021
3.初始温度
Courseware template
➢从理论上说,初始温度t0应使平稳分布中每一状态
➢与局部搜索算法相比,SA的性能可概括为高效、 健壮、通用和灵活. (1)高效性.SA可在较短时间里求得更好的最终 解.
(2)健壮性(鲁棒性,robust).即算法的最终解并 不十分依赖初始解的选取.
(3)通用性和灵活性.SA能应用于求解多种组合优 化问题,为一个问题编制的程序可以有效地用于其 它问题.
➢SA具有如下特点:
(1)优于局部搜索算法.
(2) 若在每个t值都达到平衡分布,且所构造的邻域 结构能使解空间中的任何两个状态可达,则SA渐 近收敛于全局最优解.
(3)随着控制参数t值的减小,算法返回某个全局最 优解的概率单调增大.
On the evening of July 24, 2021
Courseware template
模拟退火算法
It is applicable to work report, lecture and teaching
第5章 模拟退火算法
Courseware template
➢模拟退火算法(Simulated Annealing, SA)是 Kirkpatrick等人于1982年提出的一种适合求解大规 模组合优化问题,特别是NP-难问题的通用启发式 算法.
Courseware template
模拟退火算法综述
模拟退火算法综述 AS umm a ry O n The S i m u la te d A n n e a lin g A lgo rithm(434104 湖北荆州师范高等专科学校计算机系) 谢云【摘要】本文综合介绍模拟退火算法的原理、实现形式、渐近收敛性、应用及其并行策略,对模拟退火算法给出一个简明、全面、客观的综合评价。
关键词:模拟退火算法,组合优化问题,N P 完全问题,并行算法Abstract :In th is paper ,a summ ary on p rinci p le ,real 2izable fo r m ,asymp to tic convergence ,app licati ons ,and parallel tactics of the si m ulated annealing algo rithm is given .A concise ,overall ,objective ,summ arily ap 2p raisal on the si m ulated annealing algo rithm is given .Keywords :Si m ulated Anneali ng A lgor ith m ,Co m bi nator i al Opti m ization Proble m ,Nondeter m i n istic Polyno m i al Co m pleteProble m ,Parallel A lgor ith m一问题的由来在自然科学、管理科学和工程技术等科技领域,存在着大量的组合优化问题(Com binato rial Op ti m iza 2ti on P roblem ),其中的N P 完全问题(N ondeter m inistic Po lynom ial Comp lete P roblem ),其求解时间随问题规模呈指数级增长,当规模稍大时就会因时间限制而失去可行性(Feasibility )。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
西安理工大学研究生课程论文/研究报告课程名称:现代优化计算法任课教师:张广鹏论文/研究报告题目:模拟退火算法综述完成日期:2017 年8 月30 日学号:2160220063姓名:卜文浩成绩:本文介绍了模拟退火算法的基本原理,发展现状及分析,能够解决的几类典型问题,以及改进模拟退火的基本形式,分析了模拟退火的优点及存在的问题提出了主要的解决方法,对模拟退火算法给出一个简明、全面、客观的综合评价。
关键字:模拟退火算法;组合优化问题; MOSA;全局最优;TSPThe basic principle of simulated annealing algorithm has been introduced in this paper, the development situation and analysis of a few kinds of typical problems to solve, and improve the basic form of simulated annealing, analyzes the advantages of simulated annealing and existing problems of the main methods to solve, the simulated annealing algorithm gives a concise and comprehensive, objective comprehensive evaluation.Keywords:Simulated annealing algorithm; Combinatorial optimization problem; MOSA; Global optimal; TSP目录1.引言 (1)2. 模拟退火的发展现状及分析 (1)3.改进模拟退火算法 (2)3.1多目标模拟退火算法 (2)3.1.1 rMOSA算法 (3)3.1.2MOSA算法应用领域 (3)3.2单调升温的模拟退火算法 (4)3.3并行模拟退火算法 (4)4. 模拟退火解决的几类典型问题 (5)4.1模拟退火算法求解非线性方程组 (5)4.1.1基于模拟退火算法的进化策略求解非线性方程组的算法流程 (5)4.1.2数值实验 (5)4.2模拟退火解决旅行商问题 (7)4.2.1问题阐述 (7)4.2.1解决方法 (7)4.3模拟退火算法在搜索引擎中的应用 (8)5. 模拟退火存在的问题 (10)5.1模拟退火算法存在的问题: (10)5.2有待于解决的问题 (10)5.3主要解决方法 (10)6、总结 (11)参考文献 (12)1.引言模拟退火算法(Simulated Annealing Algotithm,SAA)是一种应用广泛的随机智能优化算法,最早的思想是由Metropolis等人于1953年提出[1]。
1983年,Kirkpatrick等成功地将退火思想引入到组合优化领域.在求解组合优化问题时,模拟退火算法能概率性地跳出局部最优解并最终趋于全局最优。
该算法是基于Monte Carlo迭代求解策略的随机寻优算法,源于热力学中固体物质的退火过程与一般组合优化问题之间的相似性,在一给定初温下,伴随温度参数的不断下降,结合概率突跳特性在解空间中随机寻找目标函数的全局最优解。
因SA独特的优化机制及其对问题信息依赖较少,通用性、灵活性较强[2]。
模拟退火算法发展至今,已广泛应用于各个领域求解组合优化问题.当下这个时代是大数据的时代,面对海量的数据,如何处理数据、提取信息,是一个重要的问题,这也对优化算法有着越来越高的要求,不断有国内外学者对模拟退火算法进行研究改进,以提高传统模拟退火算法的性能。
2. 模拟退火的发展现状及分析模拟退火算法是一种通用的随机搜索算法,是局部搜索算法的扩展。
它的思想是再1953年由metropolis提出来的,到1983年由kirkpatrick等人成功地应用在组合优化问题中[2]。
模拟退火算法来源于固体退火原理,将固体加温至充分高,再让其徐徐冷却,加温时,固体内部粒子随温升变为无序状,内能增大,而徐徐冷却时粒子渐趋有序,在每个温度都达到平衡态,最后在常温时达到基态,内能减为最小。
根据Metropolis准则,粒子在温度T时趋于平衡的概率为e-∆E/(kT),其中E为温度T 时的内能,∆E为其改变量,k为Boltzmann常数。
用固体退火模拟组合优化问题,将内能E模拟为目标函数值f,温度T演化成控制参数t,即得到解组合优化问题的模拟退火算法:由初始解i和控制参数初值t开始,对当前解重复“产生新解→计算目标函数差→接受或舍弃”的迭代,并逐步衰减t值,算法终止时的当前解即为所得近似最优解,这是基于蒙特卡罗迭代求解法的一种启发式随机搜索过程。
退火过程由冷却进度表(Cooling Schedule)控制,包括控制参数的初值t及其衰减因子∆t、每个t值时的迭代次数L和停止条件S[2]。
模拟退火算法(SA)在理论上已得到证明,它可以达到全局极小值,所以它备受专家与学者的青睐[1]。
目前,关于SA算法的研究通常分为两类。
第一类,基于有限状态奇异马尔可夫链的有关理论,给出SA的某些关于理想收敛模型的充分条件或充要条件,这些条件在理论上证明了当退火三原则(初始温度足够高、降温速度足够慢、终止温度足够低)满足时,SA以概率1达到全局最优解。
第二类,针对某些具体问题,给出了SA的若干成功应用。
前者在指导应用方面作用有限,在定参过程中,往往很难给出有益的定量关系。
后者各自的领域中有应用价值,但过分依赖于问题,不具有普遍意义。
事实上,在现有情况下给出关于SA的,具有普遍意义的定量关系式是不现实的。
因此,对SA进行的有意义研究应集中在引入新思想,在此基础上提出在应用中实现新思想的可能途径,并通过典型实验对其效果进行验证[3]。
正是由于专家和学者对该算法的钻研才让该算法从经典的模拟退火算法走到了今天的多样型的模拟退火算法,比如快速模拟退火算法,使得该算法的速度和收敛性都得到较大提高,再比如适应性的模拟退火算法,使得该算法具有智能性;再比如现在有学者提到的遗传一模拟退火算法,就是将遗传算法和模拟退火算法二者的优越性结合起来。
不能忽略的是,每种算法的提出都与其应用范围紧密结合,这样才使得改进的算法在其应用领域具有较好的适用性。
由于模拟退火算法(SA)从理论上可以达到全局极小值,所以对该算法的研究才更有实际意义,众多学者正在努力钻研将其一般化,使其具有普遍适用性[6]。
3.改进模拟退火算法模拟退火算法的改进方法非常纷杂,至今没有一个较为系统完整的归纳总结,本文提供的较为系统的模拟退火算法总结综述以及算法中重要参数的研究将为今后的学者学习研究模拟退火算法带来极大的便利[7]。
3.1多目标模拟退火算法传统的SA算法只针对单个优化目标进行求解,解的优劣很容易比较,而在多目标问题中,各个目标可能是相互冲突的或者相互独立的,无法像单目标问题的解那样直接进行优劣比较。
近若干年来也有一些研究成果结合多目标优化问题的特性,根据SA的思想,设计多目标模拟退火算法,用来解决多目标优化问题[19]。
多目标模拟退火MOSA(Multi-Objective Simulated Annealing)算法的研究始于1985年,早期的工作还包括Ulungu等和Serafini等设计的一个完整的MOSA,并将其应用于多目标组合优化问题。
由于物体退火与多目标优化问题之间的本质联系,SA适合扩展并应用于多目标优化问题的求解。
MOSA的出现为多目标优化问题的求解开辟了一条新的途径,在多目标优化算法中也已表现出良好的性能和前景。
基本MOSA 算法描述如下:步骤1:对算法的相关参数进行初始化,如初始温度、迭代次数等。
步骤2:随机产生初始解X ,计算其所有目标函数值并将其加入到Pareto 解集中。
步骤3:给定一种随机扰动,产生X 的邻域解Y ,计算其所有目标函数值。
步骤4:比较新产生的邻域解Y 与Pareto 解集中的每个解并更新Pareto 解集。
步骤5:如果新邻域解Y 进入Pareto 解集,则用Y 替代X ,并转到步骤8。
步骤6:按某种方法计算接受概率。
步骤7:如果Y 未进入Pareto 解集,则根据接受概率决定是否接受新解,如果新解被接受,则令其为新的当前解X ,如果新解未被接受,则保留当前解。
步骤8:每隔一定迭代次数,从Pareto 解集中随机选择一个解,作为初始解,重新搜索。
步骤9:采取某种降温策略,执行一次降温。
步骤10:重复步骤3~步骤9,直到达到最低温度,输出结果,算法结束。
3.1.1 rMOSA 算法SankaraoB 等人于2011年提出了一种鲁棒的多目标模拟退火算法rMOSA ,它在较少的模拟次数下能收敛到Pareto 解集,这些Pareto 解是具MOSA 算法的基础上增加了两个新的机制实施扰动以选择新解,从而具有鲁棒性。
这两种机制分别是:(1)一个系统调用为执行解的扰动而在归档集中选择一个随机点,该机制的目的是加快收敛过程以获得最终Pareto 前沿;(2)另一个系统调用则为执行解的扰动在归档集中选择一个最佳非拥挤解,该机制的目的是为获得具有良好拥挤分布的均匀Pareto 前沿。
该算法基于一个概率函数接受一个差的解,其接受概率的计算方法是:p =∏exp [−(f i new−pt −f i current−pt )temp ]mi=1 多目标优化问题的特征之一是其解往往不止一个,而是有很多个Pareto 最优解,即一组在多个目标之间折衷的均衡解。
解决多目标优化问题的关键是找到数量足够多且分布均匀的具有代表性的Pareto 最优解组成的解集。
3.1.2MOSA 算法应用领域MOSA 是一种新颖的多目标优化算法,可用于解决大多数多目标优化问题,虽已被应用到一些领域,但远没有其他多目标智能优化算法(如多目标微粒群算法、多目标遗传算法等)应用广泛。
MOSA算法在实际工程问题中的应用主要有,图像处理、生物科学、电路设计、车间调度、交通与物流系统优化、多播QoS路由优化、Web服务组合、数据挖掘等领域,将是MOSA算法应用研究中值得重视的有实际价值的课题[7]。
3.2单调升温的模拟退火算法模拟退火从理论上讲可以概率1达到最优化解,是由于在算法过程中不但接受优化解,而且还以概率exp(−∆C/bT)接受恶化解,当温度较高时,其值较大(当T 无穷大时,p =1),此时如果系统进人局部极小点,就很容易跳出。
而在退火后期,由于温度降得较低(T趋近于0时,相应的系统搜索范围较小),其值接近于0,如果这时系统进入“局部极小点时”,将很难跳出。