码迷,mamicode.com
首页 > 编程语言 > 详细

模拟退火算法

时间:2015-12-30 23:36:30      阅读:348      评论:0      收藏:0      [点我收藏+]

标签:

一、导读

1、基本思想

模拟热力学当中的退火过程

退火过程:

物体:高温   缓慢下降  低温

      高能状态            低能状态

淬火:快速冷却,使金属处于高能状态,较硬易断

退火:缓慢冷却,使金属处于低能状态,较为柔韧

2、模拟退火在SA中的应用

在SA中将目标函数作为能量函数

模拟:

初始高温---->温度缓慢下降---->终止在低温

这时能量函数达到极小,目标函数最小

二、退火过程和Bolzman方程

1、热力学中的退火过程

变温物体缓慢降温从而达到分子之间能量最低的状态

设热力学系统S中有n个状态(有限个,离散的),状态i的能量为Ei,在温度Tk下,经过一段时间达到热平衡,这时处于状态i的概率为:

技术分享

2、Bolzman方程

技术分享

3、温度Tk对Pi(Tk)的影响

技术分享

技术分享

技术分享

技术分享

三、SA的算法构造及步骤

1、SA的模拟要求

a、初始温度足够高

b、降温过程足够慢

c、终止温度足够低

2、问题的描述及要素

min f(i),i属于S,S是离散有限状态空间,i代表状态

要素:状态表达和领域移动同TS

搜索:随机的领域移动

冷却控制(SA算法的特点)=》外循环

热平衡的达到=》内循环

3、SA的计算步骤

技术分享

技术分享

技术分享

技术分享

四、计算举例

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

 

模拟退火算法

标签:

原文地址:http://www.cnblogs.com/gary-guo/p/5090074.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!