博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
非凸问题寻优
阅读量:4353 次
发布时间:2019-06-07

本文共 826 字,大约阅读时间需要 2 分钟。

  • 模拟退火是一个算法框架(framework),而不是一个具体的算法,原因在于,比如从当前状态,x(n)x(n+1),下一个状态该如何选择,可以是梯度下降,也可以是蒙特卡洛,爬山等等;

1. 模拟退火

模拟退火算法(simulated annealing,SA),1983年由 Kirkpatrick 等人提出,并将其成功应用于组合优化问题。“退火”是物理学术语,指对物体加温后再冷却的过程。

模拟退火算法源于晶体冷却的过程,如果晶体不处于最低能量状态,给固体加热再冷却,随着温度缓慢下降,固体中的原子按一定形状排列,形成高密度、低能量的有规则晶体,在算法中对应全局最优解

而如果温度下降过快(则必然存在一个参数控制温度的升降速度),可能导致原子缺少足够的时间排列成晶体结构,结果产生了具有较高能量的非晶体,这就是局部最优解。

模拟退火算法包含 Metropolis 算法和退火过程两部分。

  • Metropolis 算法又叫 Metropolis 抽样,是模拟退火算法的基础,在早期的科学计算中蒙特卡洛方法(Monte Carlo)是对大量原子在给定温度下的平衡态的随机模拟,当蒙特卡洛算法计算量偏大

2. 退火算法的参数控制

Metropolis 算法是模拟退火算法的基础,但直接使用 Metropolis 算法可能会导致寻优的速度太慢,以至于无法实用。为了确保算法在有限时间收敛,必须设定控制算法收敛的参数。

p={
1,expE(n+1)E(n)T,E(n+1)<E(n)E(n+1)E(n)

上述公式中可调节的参数是控制退货快慢的参数 T

  • T 如果过大,就会导致退火太快,达到局部最优即迭代结束,
  • 如果取值过小,则会延长不必要的搜索时间;

在实际应用中,采用一个退火温度表,在退火的初期采用较大的 T 值,随着退火的进行,逐步降低。

转载于:https://www.cnblogs.com/mtcnn/p/9422869.html

你可能感兴趣的文章
求职基础复习之冒泡排序c++版
查看>>
【TCP/IP】Ethernet II VS 802.3
查看>>
WebService学习总结(二)——WebService相关概念介绍
查看>>
webpack构建react应用三:使用webpack Loaders 模块加载器(一)
查看>>
Java JDBC
查看>>
走势终完美 --执子之手
查看>>
补全左括号
查看>>
javascript中关于坐标 大小 的描述
查看>>
8086CPU各寄存器的用途
查看>>
AngularJs中,如何在render完成之后,执行Js脚本
查看>>
Nginx 防盗链
查看>>
如何讓Android系統顯示CJK擴展區漢字
查看>>
Android 下拉选择绑定Value和Text值
查看>>
HTML+CSS小结
查看>>
Android防止按钮连续点击
查看>>
ElasticSearch Mapping中的字段类型
查看>>
数据库中主键和外键的设计原则
查看>>
怎样理解阻塞非阻塞与同步异步的区别?
查看>>
Xcode 警告信息处理:Format string is not a string literal (potentially insecure)
查看>>
关于jQuery表单校验的应用
查看>>