人工智能:模拟退火初始温度值的计算
来源:互联网 发布:ar9341编程器固件 编辑:程序博客网 时间:2024/04/30 00:34
1.模拟退火法简介
模拟退火法是一种状态空间的局部搜索算法,它属于比较通用的寻找最优解的算法。
模拟退火算法从某一较高初温出发,伴随温度参数的不断下降,结合概率突跳特性在解空间中随机寻找目标函数的全局最优解,即在局部最优解能概率性地跳出并最终趋于全局最优。
2.模拟退火法算法描述
function Simulated-Annealing(problem, schedule) returns a solution stateinputs: problem, a problem schedule, a mapping from time to “temperature”local variables: current, a node next, a node T, a “temperature” controlling prob. of downward stepscurrent←Make-Node(Initial-State[problem])for t← 1 to ∞ do T←schedule[t] if T = 0 then return current next←a randomly selected successor of current ΔE←Value[next] – Value[current] if ΔE > 0 then current←next else current←next only with probability p
注:
①p =
3.模拟退火法的优势
模拟退火算法的主要优点之一就是能以一定的概率接受目标函数值不太好的状态, 这使得该算法即便落入局部最优的陷阱中,理论上经过足够长的时间也可以跳出局部最优
4.模拟退火法初始温度的重要性
由模拟退火法的优势可以知道,模拟退火算法相对于爬山法来说,它可以从局部最优的陷阱中走出来,形象点说就是它可以“智能地下山”。从算法描述可以看出,该算法由一个概率决定该算法是否会选择”下山”, 这个概率就是p=
5.模拟退火法初始温度值的计算方法
从google学术中找到关于模拟退火法的论文,它们多数都是优化退火策略的研究。其中一篇论文(作者是Hajek), 他提出要保证找到全局最优解所需要的迭代次数是很多的。在迭代的过程中,从一个状态i到一个状态j的转换概率可以表示如下:
在这篇论文中, 作者给出了
通俗点讲,
对于
其中,N(i)表示状态i附近的状态数目
根据Hajek的这篇论文,WALID BEN-AMEUR给出了一个对于在温度T下面计算状态转换可以接受的概率公式:
根据概率估计的方法,可以得出下面的公式:
有了可接受概率的近似估计公式之后,我们使用可接受概率的近似值替代复杂的可接受概率计算公式,从而简化初始温度值的计算复杂度。
计算模拟退火法温度值的方法
Step 1
(a)为了计算χˆ (T ) ,估算样本||s||的数目
(b)随机产生并存储||s||的正变换(正变换意思是说变换后的状态值要比变换前的状态值要大,即Δ E > 0)
(c)设定T1,T1是严格的正数,设置n=1(T1可能会比初始温度T0离得很远,但最后还是可以通过温度迭代的计算不断逼近T0)
Step 2
(a) 计算χˆ (Tn)
(b)If
otherwise
-
-n = n + 1
-go to Step2 (a)
End
关于该方法的具体证明以及实践应用,可以参考WALID BEN-AMEUR的论文
Computing the Initial Temperature of Simulated Annealing
- 人工智能:模拟退火初始温度值的计算
- HDU 3644 计算几何 模拟退火
- 人工智能作业homework3——模拟退火解决TSP
- 模拟退火算法的基本原理
- 无语的模拟退火
- 模拟退火算法的介绍
- "活"的模拟退火算法
- POJ 2420 A Star not a Tree?(计算几何 多边形的费马点 模拟退火)
- 模拟退火
- 模拟退火
- 模拟退火
- 模拟退火
- 模拟退火
- 模拟退火
- 模拟退火
- 模拟退火
- 模拟退火
- 模拟退火
- Idea导入项目后xxx.xml中URI is not registered
- WEEK 2练习
- CoordinatorLayout 使用综述系列(一)
- 学生成绩(链表)
- MySql 递归子节点
- 人工智能:模拟退火初始温度值的计算
- 为什么有mac地址还学要有IP地址??
- Jsp九大内置对象介绍
- 6,抽象工厂模式
- 分治法解决棋盘覆盖
- 从零学习JAVA多线程(三):线程的同步问题
- Implementing a CNN for Human Activity Recognition in Tensorflow
- 交换机和路由器有什么区别??
- 暴力得出数列的通项公式