模拟退火法含程序方案.doc

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
10.9 模拟退火法 模拟退火法(参见[1,2])作为一种适合于求解大规模的优化问题的技术,近来已引起极大的关注。特别是当优化问题有很多局部极值而全局极值又很难求出时,模拟退火法尤其有效。在实用上,它有效地“解决了”著名的旅行推梢员问题,即在必须依次访问每一个城市(共有N个城市)的前提下,为旅行推销员设计一条能够返回起点的最短旅程。模拟退火方法还被成功地用于设计复杂的集成电路,也就是说如何最佳地安排几十万个电路元件,使它们全部集成在一个很小的硅片上,而相互连接的线路之间的缠绕能够达到最小(参见[3,4]).尽管模拟退火法的功效非凡,但它的算法实现却相对地简单,这一点似乎有些不可思议。 请注意,我们上面提到的两个例子都属于组合极小化问题。现本类问题通常也有一个目标函数,但是函数的定义域并不是简单地由N个连续参变量组成的N维空间,而是一个离散的巨大空间,例如,由所有可能的城市旅行路线组成的集合,或者硅片电路元件的所有可能的分配方式的集合。构形空间中元素的数量相当巨大,根本不可能穷举,而且因为集合是离散的,我们也不可能“沿合适的方向连续下降”。因此在构形空间中,“方向”概念就没有什么意义了。 后面我们还将介绍如何在其有连续控制参数的空间中利用模拟退火法。这种应用实际上要比组合问题复杂一些,因为其中又要出现“狭长山谷”的情况。正如在下文中我们将看到的,模拟退火法的试探步骤是“随机”的。但在一个狭窄且漫长的等高线山谷中,几乎所有的随机步骤都呈向上的趋势,因此,算法中需要增加一些技巧。 模拟退火的核心思想与热力学的原理颇为相似,而且尤其类似于液体流动和结晶以及金属冷却和退火方式。在高温下,一种液体的大最分子彼此之间进行着相对自由的移动。如果该流体慢慢地冷却下来,热能可动性便会消失。大量原子常常能够自行排列成行,形成一个纯净的晶体,该晶体在各个方向上都被完全有序地排列在几百万倍于单个原子大小的距离之内。对于这个系统来说,晶体状态是能量最低状态;而所有缓慢冷却的系统都可以自然达到这个能量最低状态,这可以说是一个令人惊奇的事实。实际上,如果某种液体金属被迅速冷却或被“猝熄”,那么它不会达到这一状态,而只能达到一种具有较高能量的多晶状态或非结晶状态。 因此,这一过程的本质在于缓缓地致冷,以争取充足的时间,让大量原子在丧失可动性之前进行重新分布。这就是所谓退火在技术上的定义,同时也是确保达到低能量状态所必需的条件。 尽管我们的比喻并不算贴切,但是迄今为止本身所讨论的所有极小化算法,确实与快速冷却猝熄有某种关联之处。以往我们处理问题的方式都是:从初始点开始,立即沿下降方向前进,走得越远越好,似乎这样才能迅速求得问题的解。但是,正如前面常常提到的,这种方法往往只能求得局部极小点,却求不到整体最小点。自然界本身的极小化算法则基于一种截然不同的方式,所谓的玻尔兹曼(Boltzmann)概率分布 (10.9.1) 表达了这样一种思想,即:一个处于热平衡状态且具有温度T的系统,其能量按照概率,分布于所有不同能量状态之中。即使在很低的温度下,系统也有可能(虽然这种可能性很小)处于一个较高的能量状态。因此,相应地,系统也能够获得摆脱局部能量极小点的机会。并找到一个更好的、更接近于整体的极小点。式(10.9.1)中的参数k(称为玻尔兹曼常数)是一个自然常数,它的作用是将温度与能量联系起来。换句话说,在有些情况下系统的能量可上升,也可下降,但是温度越低,显著上升的可能性就越小。 1953年,米特罗波利斯(Metropolis)及其合作者们首次将这种原理渗透到数值计算中。他们对一个模拟热力学系统提供了一系列选择项,并假设:系统构形从能量变化到能量的概率为。很显然,如果,将大于1;在这类情况下,对构形的能量变化任意指定一个概率值,也就是说,该系统总是取这个选择项。这种格式总是采取下降过程,偶尔采取上升步骤。目前已被公认为米特罗波利斯算法。 为了将米特波利斯算法应用于热力学以外的系统,必须提供以下几项基本要素: 对可能的系统构形的一种描述。 2. 一个有关构形内部随机变化的生成函数,这些变化将作为“选择项”提交给该系统。 3. 一个目标函数 (类似于能量),求解的极小值,即为算法所要完成的工作。 4. 一个控制参数T(类似于温度)和一个退火进程,该进程用来说明系统是如何从高值向低值降低的,例如在温度T时每次下降步骤中要经过多少次随机的构形变化以及该步长是多大等等。应说明的是,这里“高”和“低”的含义,还有进程表的确定,都需要一定的物理知识和/或一些摸索的实验。 10.9.1组合极小化:旅行推销员问题 下面是我们用“旅行推销员问题”为具体实例说明模拟退火法的应用。假设一个推销员,

文档评论(0)

***** + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档