模拟退火算法原理及改进

合集下载

模拟退火算法介绍

模拟退火算法介绍

解析模拟退火算法一.爬山算法(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) 。

随着温度T的降低,P(dE)会逐渐降低。

模拟退火算法及应用

模拟退火算法及应用

一、概论1.1 问题概述在自然科学以及大多数科学当中和社会生活里经常出现最大或最小的问题,我们从小学开始学习大小比较,一直到高中大学时的最优解问题,都是一种名为最优化问题.最优化问题在大多是领域中都有重要的地位,例如管理科学、计算机科学、图像处理等等需要大量数据的学科中都存在着需要解决的组合优化问题。

用我们比较容易理解的说法就是已知一组固定的函数,令这组函数所对应的函数到达最大或最小值.而我们所想到的最简单的方法便是穷举法,然而这种方式存在这大量的数据计算穷举的缺点。

优化组合问题中的NP问题是一个很麻烦的问题,它解得规模会随着问题的规模增大而增大,求解所需的时间也会随问题的规模增大而成指数级增长,而当规模过大时就会因为时间的限制而失去了可行性。

旅行商问题(TSP)是优化组合问题中最为著名的一个问题,它的特点是容易描述却难于求解.这是一个经典的图论问题,假设有n个城市,用表示.城市之间距离为,i,j=1,2,3,···,n,假设所有城市之间两两连通,要求从一个城市出发,把所有城市都走一遍,而TSP问题就是恰好所有城市都走一遍,而所走路径形成回路且路径最短.将这个问题对应在一个n个顶点的完全图上,假设图为对称图,则要从个可能的解当中找到最小的解,需要的对比则要进行次,当的数值增大时,那么需要的次数也会随之以几何数倍增长,例如每秒运算一亿次的计算机,当需要的时间也只是0.0018秒,当需要的时间却是17年,可当时所需的时间却猛增到年,这个结果是我们所不想看到的。

优化组合问题的目标函数是从组合优化问题的可行解集当中求出最优解。

组合优化问题有三个基本要素:变量,约束和目标函数,在求解过程中选定的基本参数成为标量,对于变量的取值的所有限制称之为约束,表示可行的方案的标准的函数称之为目标函数。

随着问题种类的不同以及问题规模的扩大,要找到一种能够已有限代价来求解最优化问题的通用方法一直都是一个难题,建立用最大的可能性求解全局解一直是一个重要问题。

matlab带约束模拟退火算法

matlab带约束模拟退火算法

【文章】matlab带约束模拟退火算法深入探讨和分析matlab带约束模拟退火算法在现代科学和工程领域,优化问题是十分常见的。

而其中,约束优化问题更是一种常见的形式。

为了解决这类问题,人们经过长时间的探索,提出了许多方法,其中模拟退火算法便是一种被广泛应用的优化算法之一。

而在matlab中,带约束的模拟退火算法更是得到了丰富的实现和应用。

本文将从简单到复杂,由浅入深地介绍matlab带约束模拟退火算法,以帮助读者更好地理解和掌握这一优化方法。

1. 什么是模拟退火算法?模拟退火算法是一种基于模拟退火过程的全局优化算法。

它模拟了金属在高温下退火时的物理过程,通过不断降低系统的温度来寻找全局最优解。

在matlab中,模拟退火算法通常通过设置初始温度、终止温度、温度下降率等参数来实现。

2. 为什么需要约束?在实际问题中,许多优化问题都存在着一定的约束条件。

比如工程设计中的材料强度、生产计划中的资源限制等。

如何在求解优化问题时满足这些约束条件便成为了一个重要的问题。

3. matlab带约束模拟退火算法是如何工作的?在matlab中,带约束的模拟退火算法通过引入罚函数、拉格朗日乘子等方法来处理约束条件。

它不仅要寻找全局最优解,还要确保解满足一定的约束条件。

这就需要在温度下降的过程中,不断调整解的位置,以在搜索最优解的同时满足约束条件。

4. 代码实现及应用在matlab中,带约束的模拟退火算法通常通过调用现成的优化工具箱来实现。

我们可以通过设置目标函数、约束条件等参数,来对不同的优化问题进行求解。

可以用该算法来求解工程设计中的优化问题、生产计划中的调度优化问题等。

总结回顾通过本文的介绍,我们对matlab带约束模拟退火算法有了一个较为全面的了解。

我们知道了模拟退火算法是如何工作的,以及在matlab中如何处理带约束的优化问题。

在实际应用中,我们可以根据具体的问题,合理地设置参数和约束条件,来求解复杂的优化问题。

使用matlab实现模拟退火算法

使用matlab实现模拟退火算法

使用matlab实现模拟退火算法标题:使用MATLAB实现模拟退火算法:优化问题的全局搜索方法引言:模拟退火算法(Simulated Annealing)是一种经典的全局优化算法,常用于解决各种实际问题,如组合优化、参数优化、图形分割等。

本文将详细介绍如何使用MATLAB实现模拟退火算法,并介绍其原理、步骤以及代码实现。

1. 模拟退火算法简介模拟退火算法借鉴了金属退火的物理过程,在解空间中进行随机搜索,用于找到全局最优解。

其核心思想是通过接受一定概率的劣解,避免陷入局部极小值,从而实现全局优化。

2. 模拟退火算法步骤2.1 初始参数设置在使用MATLAB实现模拟退火算法之前,我们需要配置一些初始参数,包括起始温度、终止温度、温度衰减系数等。

这些参数的合理设定对算法的效果至关重要。

2.2 初始解的生成在模拟退火算法中,我们需要随机生成一个初始解,作为搜索的起点。

这个初始解可以是随机生成的,也可以是根据问题本身的特性生成的。

2.3 判定条件模拟退火算法需要一个判定条件来决定是否接受新解。

通常我们使用目标函数值的差异来评估新解的优劣。

如果新解更优,则接受;否则,按照一定概率接受。

2.4 温度更新模拟退火算法中最重要的一步是对温度的更新。

温度越高,接受劣解的概率就越大,随着迭代的进行,温度逐渐降低,最终达到终止温度。

2.5 迭代过程在每次迭代中,我们通过随机生成邻近解,计算其目标函数值,并根据判定条件决定是否接受。

同时,根据温度更新的规则调整温度。

迭代过程中,不断更新当前的最优解。

3. MATLAB实现模拟退火算法在MATLAB中,我们可以通过编写函数或使用内置函数来实现模拟退火算法。

具体的实现方法取决于问题的复杂度和求解的要求。

我们需要确保代码的可读性和可复用性。

4. 示例案例:TSP问题求解为了演示模拟退火算法的实际应用,我们将以旅行商问题(Traveling Salesman Problem,TSP)为例进行求解。

模拟退火原理

模拟退火原理

模拟退火原理引言:模拟退火是一种基于物理退火过程的优化算法,常用于解决复杂的优化问题。

它通过模拟固体物质退火时的晶体结构变化,寻找全局最优解。

本文将介绍模拟退火原理及其应用领域。

一、模拟退火原理1. 模拟退火的概念模拟退火算法是一种基于模拟固体物质退火过程的优化算法。

物理退火是将物质加热至高温后缓慢冷却,使得其晶体结构逐渐达到最低能量状态。

同样地,模拟退火算法通过随机搜索和接受概率来避免陷入局部最优解,从而寻找全局最优解。

2. 算法步骤模拟退火算法包括初始化、状态更新和接受概率三个主要步骤:(1)初始化:确定问题的初始解及初始温度。

(2)状态更新:通过随机扰动当前解,生成一个新解。

新解可以是更优解、劣解或相同解。

(3)接受概率:根据Metropolis准则,确定是否接受新解。

接受劣解的概率随着温度的降低而逐渐减小。

(4)温度更新:降低温度,减小接受劣解的概率,逐渐趋向于全局最优解。

二、模拟退火的应用领域1. 组合优化问题模拟退火算法可以用于解决组合优化问题,如旅行商问题、装箱问题等。

通过不断更新状态,模拟退火算法能够搜索到接近最优解的解空间。

2. VLSI物理设计在Very Large Scale Integration(VLSI)物理设计中,模拟退火算法可以用于解决芯片布局问题。

通过优化芯片上各个模块的布局,可以提高芯片性能和功耗。

3. 机器学习模拟退火算法在机器学习领域也有广泛应用。

例如,在神经网络训练中,可以利用模拟退火算法调整网络参数,以提高模型的泛化能力。

4. 图像处理图像处理中的一些问题,如图像分割、图像匹配等,可以通过模拟退火算法求解。

通过不断调整参数,可以得到更好的图像处理效果。

5. 物流优化模拟退火算法可以应用于物流优化问题,如货物配送路径规划、仓库布局等。

通过优化路径和布局,可以降低物流成本、提高运输效率。

结论:模拟退火算法是一种基于物理退火过程的优化算法,通过模拟固体物质的退火过程,寻找全局最优解。

用模拟退火算法解决TSP问题

用模拟退火算法解决TSP问题

用模拟退火算法解决TSP问题旅行商问题(Traveling Salesman Problem,TSP)是指一个旅行商要在不重复地经过全部的指定城市之后回到起点,所需要走的最短路径长度是多少。

由于TSP问题具有NP难度,因此传统的精确算法要花费大量的计算资源,得到的结果往往也只能是近似最优解。

而模拟退火算法是一种集合随机性和概率思想的启发式方法,可以快速地在解空间中搜索到一个较优的解。

一、模拟退火算法的原理及过程模拟退火算法是一种以概率为基础的全局优化算法,它的基本思想是利用随机性来逃离局部最优解,让搜索过程在解空间中跳跃,最终逐渐接近全局最优解。

模拟退火算法的过程可以分为三个阶段:初始化阶段、搜索阶段和收敛阶段。

初始化阶段:首先需要对问题进行建模,将问题转化为算法可处理的形式。

在TSP问题中,需要建立一个城市间距离矩阵。

然后随机生成一个初始解,通常是一个随机序列,表示旅行商经过城市的顺序。

搜索阶段:对生成的初始解进行扰动,得到一个新的解,并计算新解的目标函数值。

如果新解比原解更优,则直接接受该解。

如果新解比原解更劣,则有一定的概率接受该解,概率随着时间的推移逐渐降低。

收敛阶段:在搜索过程中,随着温度的不断下降,概率接受劣解的概率越来越小,这时算法逐渐收敛到一个局部最优解,也可能是全局最优解。

二、TSP问题的建模及求解TSP问题可以建立一张城市距离矩阵,然后用随机序列来表示旅行商经过城市的顺序。

目标函数可以定义为旅行商经过所有城市的总路径长度。

假设有n个城市,城市之间的距离矩阵为D,表示第i个城市和第j个城市之间的距离。

而旅行商经过城市的顺序可以用一个长度为n的序列{1,2,...,n}来表示,表示旅行商先经过第1个城市,然后是第2个城市,一直到第n个城市,然后再回到原点。

设目前的解序列为s={s1,s2,...,sn},则其总路径长度为:L(s) = ∑i=1n D(si,si+1) + D(sn,1)其中D(si,si+1)表示城市si和si+1之间的距离,D(sn,1)表示最后回到起点的距离。

模拟退火算法原理及应用

模拟退火算法原理及应用模拟退火算法(Simulated Annealing,SA)是一种启发式搜索算法,用于在求解优化问题中寻找全局最优解。

它的名字源自金相学中的“退火”过程,可以将物质加热至高温状态,再逐渐冷却,使其达到稳定的低能量状态。

模拟退火算法以类似的方式,通过模拟物质退火过程来搜索最优解。

模拟退火算法的基本原理是在优化过程中,允许接受较劣的解,以避免陷入局部最优解而无法跳出。

在搜索的过程中,模拟退火算法会随机选择当前解的一个邻居,计算出其解的差异,并以一定的概率接受更劣的解。

这种“接受概率”是根据一定的函数关系与当前温度进行计算,随着搜索的进行,温度会逐渐降低,接受更劣的解的概率也会逐渐降低。

最终,搜索会在温度趋近于极低值时停止。

相比于其他优化算法,模拟退火算法具有以下几个优点:第一,模拟退火算法能够克服局部最优解的问题,并寻找全局最优解。

在搜索过程的一开始,算法会接受很劣的解,以免陷入局部最优解,使得搜索方向可以不断地进行调整,从而有望跨越不同的局部最优解,发现全局最优解。

第二,模拟退火算法比其他优化算法更加灵活。

在算法的初始阶段,允许以较高概率接受劣质解,便于快速地确定搜索方向。

而在搜索过程接近尾声时,模拟退火算法会逐渐降低接受劣质解的概率,以固定最优解。

第三,在实际应用上,模拟退火算法还具有较好的可扩展性和容错性。

由于算法在全局搜索中跳过局部最优解,因此可以应对优化问题的复杂度和参数数量的增加。

模拟退火算法应用广泛,以下是几个应用场景:第一,模拟退火算法可以应用在旅行商问题(TSP)中。

旅行商问题是一种经典的组合优化问题,旨在找到一条路径,使得旅行商必须访问每个城市,且在访问完所有城市后返回原点,且路径总长度最短。

模拟退火算法可以通过随机交换路径中的城市位置,以及接受劣质的解来最终找到该问题的全局最优解。

第二,模拟退火算法还可以应用在物理学中。

例如著名的Ising 模型,它对二维晶格中带有自旋的相互作用的电子系统进行建模,是研究磁性、相变等基本物理问题的一个重要手段。

退火算法

模拟退火算法模拟退火算法来源于固体退火原理,将固体加温至充分高,再让其徐徐冷却,加温时,固体内部粒子随温升变为无序状,内能增大,而徐徐冷却时粒子渐趋有序,在每个温度都达到平衡态,最后在常温时达到基态,内能减为最小。

根据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)加温过程(2)等温过程(3)冷却过程1 . 模拟退火算法的模型模拟退火算法可以分解为解空间、目标函数和初始解三部分。

模拟退火的基本思想:(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步。

算法对应动态演示图:模拟退火算法新解的产生和接受可分为如下四个步骤:第一步是由一个产生函数从当前解产生一个位于解空间的新解;为便于后续的计算和接受,减少算法耗时,通常选择由当前新解经过简单地变换即可产生新解的方法,如对构成新解的全部或部分元素进行置换、互换等,注意到产生新解的变换方法决定了当前新解的邻域结构,因而对冷却进度表的选取有一定的影响。

模拟退火算法及其在最优化中的应用

模拟退火算法及其在最优化中的应用随着计算机科学的不断发展,求解模型的最优解已成为一项重要课题。

而对于许多实际问题来说,求解最优解是一个 NP 难问题。

因此,人们常常使用各种算法来解决这些问题。

模拟退火算法作为一种求解 NP 难问题的启发式算法,越来越受到学术界和工业界的关注。

一、模拟退火算法的原理模拟退火算法源于统计物理学中的模拟物理过程。

它的核心思想是以一定的概率接受比当前状态差的解,为了避免陷入局部最优解,随着时间的推移逐渐减小概率。

在求解问题时,模拟退火算法首先会随机选择一个初始解,然后根据一定的规则来生成邻域解。

接下来,算法会计算这个邻域解与当前最优解之间的差距,如果邻域解更优,那么它就成为新的最优解;否则,按照一定的概率接受它,以避免陷入局部最优解。

这个概率与当前的温度有关。

在初始阶段,温度非常高,此时概率极大,那么算法就更有可能接受一个比最优解差的解。

但随着时间的推移,温度越来越低,概率就越来越小,这时算法的行为就趋向于贪心算法,只会接受更优的解。

二、模拟退火在最优化中的应用模拟退火算法广泛应用于组合优化问题,如图形着色、旅行商问题、背包问题等。

它也可以用于解决连续优化问题,如函数最大值或最小值的求解。

在实践过程中,模拟退火算法已经被证明是一种有效、高效的求解方法。

下面我们以图形着色问题为例来说明模拟退火算法的应用。

给定一个图 $G=(V,E)$,要求每个顶点 $v_i \in V$ 都染上一种颜色,使得相邻的两个点不会被染上相同的颜色。

这就是图形着色问题,也是一个 NP 难问题。

对于这个问题,我们可以用模拟退火算法来求解。

首先我们随机给每个顶点染上一种颜色,然后计算与当前方案不同的解,每次取这些解中最优的一个。

如果这个解比当前最优的解更优,那么它成为新的最优解。

否则,以一定的概率接受新的解,以避免陷入局部最优解。

在实际应用中,我们通常将温度初始值设为一个稍大于 1 的常数,然后进行一定的迭代次数,直到温度降到一个极小值。

模拟退火算法原理

模拟退火算法原理
模拟退火算法是一种启发式优化算法,通过模拟退火的过程来搜索问题的解空间。

该算法的基本原理来自于固体退火过程中的微观行为,通过慢慢降低温度来使得固体达到低能态的状态。

在模拟退火算法中,首先需要定义一个目标函数来评估解的质量。

然后,从解空间中随机生成一个初始解作为当前最优解,并设置初始温度。

接下来的迭代过程中,通过对当前解进行随机扰动和评估,同时根据一定的概率接受劣解,从而避免陷入局部最优解。

这个概率与温度息息相关,温度降低时,接受劣解的概率也降低。

当温度降到足够低时,模拟退火算法将停止并返回最优解。

具体地,模拟退火算法的迭代过程中,会不断地改变当前解,形成一条解的搜索路径。

根据Metropolis准则,如果新解的质
量优于当前解,则直接接受新解;如果新解质量差于当前解,则以一定的概率接受新解。

这个概率根据新解质量的差距和当前温度计算得出。

温度越高,接受劣解的概率越高;温度越低,接受劣解的概率越低。

随着迭代的进行,温度逐渐下降,接受劣解的概率减小,最终得到一个接近最优解的解。

模拟退火算法的关键点之一是如何设置降温的规则。

常见的降温策略包括指数降温、线性降温和对数降温等。

这些策略都可以根据问题的特性进行选择。

另外,模拟退火算法还需要合适的初始温度和终止条件来保证算法的效果和收敛性。

总之,模拟退火算法通过模拟退火的过程,通过逐渐降低温度
来搜索问题的解空间。

它可以在解空间中进行随机搜索,并以一定的概率接受劣解,从而避免陷入局部最优解。

通过合适的降温策略和终止条件,模拟退火算法能够找到一个接近最优解的解。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

作者简介:李香平(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
・・

相关文档
最新文档