找回密码
 立即注册
查看: 659|回复: 0

【最优化导论】模拟退火法

[复制链接]
发表于 2021-11-20 20:44 | 显示全部楼层 |阅读模式
随机搜索

求解问题为
随机选择一个初始点 ,作为下一个迭代点的备选,即对于任一点 ,存在一个集合 使得能够从该集合进行随机采样。

算法:
    令  ,选定初始点 从  中随机选定一个备选点  如果 ,令  ,否则由  如果满足停止规则,就停止迭代令  回到第2步

模拟退火法


过小会导致朴素随机搜素算法可能会在局部极小点附近“卡住”,N(x)过大会导致搜索过程过慢。模拟退火算法对朴素随机算法进行修改,使其能够走出局部极小点的邻域,模拟退火的两次迭代中,算法产生的新点可能会比当前点要差。
算法:
    令  ,选定初始点 从  随机选定一个备选点设计一枚特别的硬币,使其在一次抛投中出现正面的概率 ,跑一次硬币,如果出现正面,令  ,否则令  如果满足停止规则,停止迭代令  ,回到第2步
维护一个最优解


常用的概率

构成一组正数序列,称为温度进度表

之间的差距越大,  越小,采用  作为下一迭代点的可能性越小。通常的做法是令温度  单调递减到0(冷却过程)。一开始希望能在整个可行集内进行搜索,随着迭代开展,搜索范围应该集中到全局极小点附近区域,而不是遍历整个可行集。
一个合理的冷却进度表:
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-9-23 03:25 , Processed in 0.107005 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表