学习
实践
活动
专区
工具
TVP
写文章

人工智能 模拟退火算法

这是之前做的一篇报告,算法来自经典模拟算法。

我们都知道 物体是由微观分子或者原子组成的,在此次算法讨论中,我们统一理解为分子。

物体表现是由微观分子排列决定的,所以有人研究了一下他们之间的关系:

在温度T,分子排布状态r满足Boltzmann概率分布:

(1)在同一个温度,分子停留在能量小状态的概率大于停留在能量大状态的概率

(2)温度越高,不同能量状态对应的概率相差越小;温度足够高时,各状态对应概率基本相同。

(3)随着温度的下降,能量最低状态对应概率越来越大;温度趋于时,其状态趋于1

既然已经有了理论,我们找一找工业上的应用

这里要说明的是,工业上的退火和淬火是不一样的,简单来说,淬火是迅速降温,退火是或缓慢降温。

产品有什么区别呢? 退火得到韧性好的,淬火得到硬度强的。

好了,截至现在,我们带出了退火的概念,现在来看看怎么移植到算法上去。

最经典的旅行商问题,实例如下图:

加入我们要走遍那么多城市,该怎么规划路线

有两种解决方法:

1,穷举法,就是列举出所有的可能性,就能够找到最优解。

2,寻找相似问题,看相似问题是如何解,然后移植过来。

穷举法显然太累。

我们找相似:

从这张图能够看出,条件类似,要求的结果类似,所以高兴一下,按理说问题就要解决了

继续高兴一下,看蓝色字体,理论中的解决方法出来了

不能高兴的太早,嘴上说和实际做还是有很大区别,这里最主要的因素就在于抽样过程

,因为其他的三个比较容易实现,设定初温就是设定一个数,控制参数下降,那就是让数

字缓慢变化,以及目标函数我们是有的。

上图就是我们要解决抽样问题的一个方法,不是抽样吗,我们这样来抽。

为什么这么抽样呢?看下图,因为有条件的选择接受可以跳出局部最优解啊

再来看看下面这张图,四个”必备“因素已经有了,我们就可以写代码了。

写代码之前看看算法流程

我们这里不演示代码的运行,在各大开源网站都有可以参考的代码,大家可以去看。如有

需要,可以后台找我要我用的代码。

写完了代码,运行过后,我们对算法进行回顾

此算法应用也很广

上面对算法的评价中说到,参数控制问题,已经有一批研究者开始研究,并且进行了改进,目前对于模拟退火算法的改进集中在以下几个方面:

刚开始写算法分析以及介绍,还请多多指正。需要PPT的同学后台联系作者。

注:图片来自作者PPT截图,部分图片来自书籍或者网页,如有侵权,请联系管理员。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180613G06LS700?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

同媒体快讯

关注

腾讯云开发者公众号
10元无门槛代金券
洞察腾讯核心技术
剖析业界实践案例
腾讯云开发者公众号二维码

扫码关注腾讯云开发者

领取腾讯云代金券