模拟退火算法.ppt

  1. 1、本文档共31页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

感谢大家观看第31页,共31页,2024年2月25日,星期天********************************关于模拟退火算法一、模拟退火算法的基本思想启发注意到一个自然规则:物质总是趋于最低的能态。水总是向低处流。电子总是向最低能级的轨道排布。最低能态是最稳定的状态。物质会”自动”地趋向的最低能态。第2页,共31页,2024年2月25日,星期天模拟退火算法的设计与原理

猜想物质自动趋向的最低能态与函数最小值之间有相似性!!!我们能不能设计一种算法求函数最小值,就像物质”自动”地趋向最低能态?降温图像离散函数图像相似性?最小值最低能态第3页,共31页,2024年2月25日,星期天模拟退火算法的设计与原理

物理模型——固体退火退火俗称固体降温先把固体加热至足够高温,使固体中所有粒子处于无序的状态(最高的熵值),然后将温度缓慢下降,粒子渐渐有序(熵值下降),这样只要温度上升得足够高,冷却过程足够慢,则所有粒子最终会处于最低能态(最低的熵值)。最低能态时间温度第4页,共31页,2024年2月25日,星期天模拟退火算法的设计与原理类比根据Metropolis准则,粒子在温度T时趋于热平衡的概率为

其中E为温度T时的内能,ΔE为其改变量,k为Boltzmann常数。可以设计算法:将系统熵值类比为函数值F,来模拟这个退火过程。第5页,共31页,2024年2月25日,星期天Metropolis准则(1953)——以概率接受新状态p=exp[-(Ej-Ei)/kBT]在高温下,可接受与当前状态能量差较大的新状态;在低温下,只接受与当前状态能量差较小的新状态。第6页,共31页,2024年2月25日,星期天模拟退火算法的设计与原理提出模拟退火算法(SA)就是这样一个将退火过程中系统熵值类比为目标函数值F,来模拟这个退火系统的算法。第7页,共31页,2024年2月25日,星期天模拟退火算法的设计与原理

数学模型——马尔可夫过程模拟退火算法在概率理论上有一个很好的数学模型的来解释:马尔可夫(Markov)过程。第8页,共31页,2024年2月25日,星期天马尔可夫过程及马尔可夫链简介马尔可夫过程是一个随机过程,它具备这样的性质,即可知tm时刻过程处在状态的条件下,在时刻tm以后过程将要到达的状态的情况与该时刻以前过程所处的状态无关。这个性质也称为过程的无后效性或过程的马尔可夫性。对一个状态空间(I)离散、参数为非负整数的随机过程,若它满足条件: 这样的随机过程称为马尔可夫链。马尔可夫链在t时刻的一步条件转移概率也称作t时刻的状态转移(i→j)概率。显然有:第9页,共31页,2024年2月25日,星期天二、模拟退火算法的实现

SA算法在Markov链长度内持续进行“产生新解—判断—接受/舍弃”的迭代过程,对应着固体在某一恒定温度下趋于热平衡的过程。算法终止时的当前解即为所得近似最优解。这是基于蒙特卡罗迭代求解法的一种启发式随机搜索过程。第10页,共31页,2024年2月25日,星期天模拟退火算法的实现思想SA算法的计算过程可视为重复递减控制参数值(温度)并进行Metropolis算法的迭代过程。一次Metropolis算法是指,对于控制参数t的每一取值,算法在Markov链长度内持续进行“产生新解—判断—接受/舍弃”的迭代过程,对应着固体在某一恒定温度下趋于热平衡的过程。算法终止时的当前解即为所得近似最优解,这是基于蒙特卡罗迭代求解法的一种启发式随机搜索过程。第11页,共31页,2024年2月25日,星期天相似性比较优化问题金属物体解粒子状态最优解能量最低的状态设定初温熔解过程Metropolis抽样过程等温过程控制参数的下降冷却目标函数能量组合优化与物理退火的相似性第12页,共31页,2024年2月25日,星期天模拟退火算法的实现

算法描述SimulatedAnnealing(SA)Algorithm:1初始化:系统初温T,初始状态S0,马尔可夫链长L,终止条件AIM2while(true) 2.1对于k=1..L,执行2.1.1到2.1.4 2.1.1从当前解S,产生新解SN,他们之间的差值为D. 2.1.2若(

文档评论(0)

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

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

1亿VIP精品文档

相关文档