模拟退火算法求解最优化问题

您所在的位置:网站首页 写论文最忌讳什么问题 模拟退火算法求解最优化问题

模拟退火算法求解最优化问题

2024-07-04 17:28| 来源: 网络整理| 查看: 265

目录 

0 引言

1 模拟退火算法理论

1.1 模拟退火算法的起源

1.2 物理退火过程

1.3 模拟退火原理

1.4 模拟退火算法思想

2 实例描述

2.1 TSP旅行商问题

2.1.1 问题描述

2.1.2 解空间

2.1.3 新解的产生

2.1.4 目标函数

2.2 背包问题

2.2.1 问题描述

2.2.2 具体实现

2.2.3 结果展示

3 总结

0 引言

        在优化领域中,根据变量性质的不同大体可以分为两类:—类是包含连续变量的优化问题;另一类是包含整数变量的优化问题(也可称之为组合优化问题。组合优化问题的目标是从组合问题的可行解集中求出最优解,组合优化往往涉及排序、分类等问题,它是优化领域的一个重要分支。

        在求解组合优化问题中,人们首先想到的是取整,即根据连续变量的优化问题求解关联组合优化问题的变量必须为整数的约束条件,按照连续变量的优化问题对其进行求解,对于得到的结果按照某种方法取整。方法简单,但得到的结果往往违反优化问题的约束条件或得到次优结果。在取整的基础上,有学者提出了分支法。分支法的本质是根据连续变量的优化问题求解,但每次得到的结果不满足整数约束,并不是简单的舍入运算,而是通过缩小变量的可行范围,逐渐接近问题的最优解。分支法可以有效地处理组合优化问题,但每次可行域缩小都需要求解一个连续的优化问题,计算量大。同时,由于采用连续变量的优化问题求解,对所求解的数学问题有严格的数学要求。

        另一种求解组合优化问题的方法为智能化方法。常见的智能化方法有粒子群算法、遗传算法、模拟退火算法等。粒子群算法根据其迭代规则,如果变量为整数变量,需要在其迭代规则的基础上进行进一步讨论。遗传算法和模拟退火算法其初始变量随机生成,可以直接转化为相关的整数,不需要做额外的变化。也就是说,遗传算法和模拟退火算法都可以求解组合优化问题。遗传算法与模拟退火算法相对比,遗传算法需要选择、交叉、变异,而模拟退火算法仅需要生成新的解,采用Metropolis准则与原解进行比较并进行相应的跟新操作。模拟退火算法迭代过程简单,容易实现。

1 模拟退火算法理论 1.1 模拟退火算法的起源

        美国物理学家 N.Metropolis 和同仁在1953年发表研究复杂系统、计算其中能量分布的文章,他们使用蒙特卡罗模拟法计算多分子系统中分子的能量分布。这相当于是本文所探讨之问题的开始,事实上,模拟退火中常常被提到的一个名词就是Metropolis准则。

        美国IBM公司物理学家 S.Kirkpatrick、C. D. Gelatt 和 M. P. Vecchi 于1983年在《Science》上发表了一篇颇具影响力的文章:《以模拟退火法进行最优化(Optimization by Simulated Annealing)》。他们借用了Metropolis等人的方法探讨一 种旋转玻璃态系统(spin glass system)时,发觉其物理系统的能量和一些组合最优(combinatorial optimization)问题(著名的旅行推销员问题TSP即是一个代表例子)的成本函数相当类似:寻求最低成本即似寻求最低能量。由此,他们发展出以 Metropolis方法为本的一套算法,并用其来解决组合问题等的寻求最优解。

        Kirkpatrick等人受到Metropolis等人用蒙特卡罗模拟的启发而发明了“模拟退火”这个名词,因为它和物体退火过程相类似。寻找问题的最优解(最值)即类似寻找系统的最低能量。因此系统降温时,能量也逐渐下降,而同样意义地,问题的解也“下降”到最值。

        从理论上说,它是一种全局最优算法。模拟退火算法以优化问题的求解与物理系统退火过程的相似性为基础, 它利用Metropolis算法并适当地控制温度的下降过程来实现模拟退火,从而达到求解全局优化问题的目的.模拟退火算法是一种能应用到求最小值问题的优化过程。在此过程中,每一步更新过程的长度都与相应的参数成正比,这些参数扮演着温度的角色。与金属退火原理相类似,在开始阶段为了更快地最小化,温度被升得很高,然后才慢慢降温以求稳定。

1.2 物理退火过程

        模拟退火算法的核心思想与热力学的原理极为类似。在高温下,液体的大量分子彼此之间进行着相对自由移动。如果该液体慢慢地冷却,热能原子可动性就会消失。大量原子常常能够自行排列成行,形成一个纯净的晶体,该晶体在各个方向上都被完全有序地排列在几百万倍于单个原子的距离之内。对于这个系统来说,晶体状态是能量最低状态,而所有缓慢冷却的系统都可以自然达到这个最低能量状态。实际上,如果液态金属被迅速冷却,则它不会达到这一状态,而只能达到一种只有较高能量的多晶体状态或非结晶状态。因此,这一过程的本质在于缓慢地冷却,以争取足够的时间,让大量原子在丧失可动性之前进行重新分布,这是确保能量达到低能量状态所必需的条件。简单而言,如下图所示,物理退火过程由以下几部分组成:加温过程(左)、等温过程(中)和冷却过程(右)。

图 1 物理退火过程

加温过程 其目的是增强粒子的热运动,使其偏离平衡位置。当温度足够高时,固体将熔解为液体,从而消除系统原先可能存在的非均匀态,使随后进行的冷却过程以某一平衡态为起点。熔解过程与系统的能量增大过程相联系,系统能量也随温度的升高而增大。

等温过程 通过物理学的知识得知,对于与周围环境交换热量而温度不变的封闭系统,系统状态的自发变化总是朝着自由能减小的方向进行:当自由能达到最小时,系统达到平衡态。

冷却过程 其目的是使粒子的热运动减弱并逐渐趋于有序,系统能量逐渐下降,从而得到低能量的晶体结构。

1.3 模拟退火原理

模拟退火算法来源于固体退火原理,将固体加温至充分高,再让其徐徐冷却。加温时,固体内部粒子随温升变为无序状,内能增大:而徐徐冷却时粒子渐趋有序,在每个温度上都达到平衡态,最后在常 温时达到基态,内能减为最小。模拟退火算法与物理退火过程相似性对比如表1 所示。

表 1 模拟退火算法与物理退火过程相似性对比​​​​​​​

物理退火

 模拟退火

粒子状态

能量最低态

最优解

熔解过程 

设定初温

等温过程

Metropolis采样过程

冷却

控制参数下降

能量最低态

目标函数

1953年Metropolis提出了这样一个重要性采样的方法,即设从当前状态i生成新状态j,若新状态的内能小于状态i的内能即E_{j}E_{i},则接受新状态j作为新的当前状态;否则,以概率exp[-(E_{j}-E_{i})/kT]接受状态j,其中k为Boltzmann常数,这就是通常所说的Metropolis准则,通常表示为:

                 

1.4 模拟退火算法思想

在搜索区间随机游走(即随机选择点),再利用Metropolis抽样准则,使随机游走逐渐收敛于局部最优解。而温度是Metropolis算法中的一个重要控制参数,可以认为这个参数的大小控制了随机过程向局部或全局最优解移动的快慢。一般采用上述蒙特卡洛准则判断解是否被接受,系统能量从状态E1到状态E2,状态E2被接受的概率p的计算公式为:

                                      

公式(2)表明:如果E2=0,则以概率exp(-At ' /T)接受新的路径。

步骤5降温:如果满足终止条件,则输出当前解作为最优解,结束程序。否则转步骤3继续迭代。

下图是模拟退火算法解决TSP问题的结果,再30个城市的地图上画出了一个最优路线:

图 3 模拟退火解决TSP问题结果

2.2 背包问题 2.2.1 问题描述

现有一小偷入室盗窃,可以偷窃的物品数量共有N件,每件物品的价值和相应的重量已知;假设物品的价值V=[v1,…,vN],相应的重量为W=[w1,…,wN] 。小偷在盗窃时其背包能装下物品的最大重量为R,试问,此时小偷如何选取物品在不超过背包重量前提下,使得偷盗获取的总价值最大?

2.2.2 具体实现

1)输入:背包容量为R=269,物品数量N=10,对应价值分别为V=v1,…,vN={55,10,48,5,4,50,8,61,85,87},物品重量分别为W=w1,…,wN={95,4,60,32,23,72,80,64,65,46};参数设定:迭代次数(马尔科夫链长度)t,温度T,af退火率,最低温度x,背包限制T。

2)产生一个随机的合法初始解

3)产生新解,随机选取物品, 若 i 不在背包中, 则将其直接放入背包中, 或同时从背包中随机取出另一物品 j ; 若 i已在背包中, 则将其取出, 并同时随机装入另一物品j。

4)计算背包价值与合法性:计算物品价值总和,并判断是否超重。

5)接受新解:超重,放弃此解;比当前解背包价值更优,直接接受新解;比当前解背包价值更劣,概率接受新解,概率p=exp(-∆t/T)其中∆t为背包价值差。

6)更新全局最优解

7)若达到平衡,则下降温度,重置平衡次数;

8)终止条件:背包价值达到最优解或者温度下降到x度以下。

2.2.3 结果展示

表 3 模拟退火解决背包问题结果表

温度

退火率

平衡次数

迭代次数

200

0.95

5

36

200

0.8

5

22

200

0.95

10

7

200

0.95

100

1

        退火率的设置对于算法效率影响十分明显,温度下降过快虽然较早达到稳定,但是有时找不到最优解,温度下降过慢会导致耗时增多,经过多次实验得出,退火率选择0.8为最佳。

        平衡次数设置越多,所需迭代次数越少,但是单次迭代时间变长,所以平衡次数设置10次为最佳。初始温度设置将会影响解的搜索范围,温度越高最终解的质量越优,但是耗时也相应变长,初始温度设置200为最佳。

3 总结

        模拟退火算法适用范围广,求得全局最优解的可靠性高,算法简单,便于实现;该算法的搜索策略有利于避免搜索过程因陷入局部最优解的缺陷,有利于提高求得全局最优解的可靠性。模拟退火算法有十分强的鲁棒性,这是因为比起普通的优化搜索方法,它采用许多独特的方法和技术。主要有以下几个方面:

        (1)以一定的概率接受恶化解。模拟退火算法在搜索策略上不仅引入了适当的随机因素,而且还引入了物理系统退火过程的自然机理。这种自然机理的引入,使模拟退火算法在迭代过程中不仅接受使目标函数值变“好”的点,而且还能够以一定的概率接受使目标函数值变“差”的点。迭代过程中出现的状态是随机产生的,并且不强求后一状态一定优于前一状态,接受概率随着温度的下降而逐渐减小。很多传统的优化算法往往是确定性的,从一个搜索点到另一个搜索点的转移有确定的转移方法和转移关系,这种确定性往往可能使得搜索点远达不到最优点,因而限制了算法的应用范围。而模拟退火算法以一种概率的方式来进行搜索,增加了搜索过程的灵活性。

        (2)引进算法控制参数。引进类似于退火温度的算法控制参数,它将优化过程分成若干阶段,并决定各个阶段下随机状态的取舍标准,接受函数由Metropolis算法给出一个简单的数学模型。模拟退火算法有两个重要的步骤:一是在每个控制参数下,由前迭代点出发,产生邻近的随机状态,由控制参数确定的接受准则决定此新状态的取舍,并由此形成一定长度的随机Markov链;二是缓慢降低控制参数, 提高接受准则, 直至控制参数趋于零,状态链稳定于优化问题的最优状态,从而提高模拟退火算法全局最优解的可靠性。

        (3)对目标函数要求少。传统搜索算法不仅需要利用目标函数值,而且往往需要目标函数的导数值等其他一些辅助信息才能确定搜索方向:当这些信息不存在时,算法就失效了。而模拟退火算法不需要其他的辅助信息,而只是定义邻域结构,在其邻域结构内选取相邻解,再用目标函数进行评估。

        模拟退火算法已经应用在各个领域用来求解最优化问题,在确保一定要求的优化质量基础上,提高模拟退火算法的搜索效率,是未来对模拟退火算法改进的主要内容。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3