领域搜索类启发式优化算法

一 局部搜索算法

对于复杂的问题,求解最优解比较麻烦,耗费大量时间,退而求其次,诞生了各种启发式算法来求解其次优解或近似最优解。局部搜索算法是一种解决优化问题的一种启发式算法,是一种简单的贪心搜索算法。

算法思想:从一个邻居解开始,通过邻域动作产生邻居解,然后根据策略需求,对邻居解进行选择,一直重复上述操作,直到达到终止条件。

不同的局部搜索算法之间的区别在于:领域动作的定义、对领域解进行选择时的策略。

领域动作一般是一个函数,通过该函数可以根据当前的解产生所对应的邻居解的集合。

二 简单局部搜索

1:爬山法

爬山算法是一种简单的贪心搜索算法,该算法每次从当前解的临近解空间中选择一个最优解作为当前解,直到达到一个局部最优解。这种算法思想很单纯,但是也存在一个很大的缺陷。在搜索选择的过程中有可能会陷入局部最优解,而这个局部最优解不一定是全局最优解。

爬山法是完完全全的贪心法。


2:模拟退火

2.1 背景

物理退火( 材料中的原子原来会停留在使内能有局部最小值的位置,加热使能量变大,原子会离开原来位置,而随机在其他位置中移动。退火冷却时速度较慢,使得原子有较多可能可以找到内能比原先更低的位置。【简言之:加热的时候快速、随机分散到各处;退火的时候,降温(移动)】

2.2 基本思想

 模拟退火算法原理也和物理上固体退火的原理近似,是一种全局优化的贪心算法,在贪心的时候一定概率接受一个更差的解(从某一较高初温出发,伴随温度参数的不断下降,结合概率突跳特性在解空间中随机寻找目标函数的全局最优解),即在局部最优解时能概率性地跳出并最终趋于全局最优,具有很好的跳出局部最优的能力,在算法后期有良好的收敛性。

简言之,模拟退火其实是一种贪心算法,只不过与爬山法不同的是,模拟退火算法在搜索过程引入了随机因素模拟退火算法以一定的概率来接受一个比当前解要差的解,因此有可能会跳出这个局部的最优解,达到全局的最优解。

2.3 算法流程

上面提到该算法比较核心的部分是以一定的概率来接受一个比当前结果更差的一个解,对于“一定的概率”的定义,根据热力学的定义,在温度为T的时候,出现能量差为dE的降温概率为P(dE)=exp(dE/(kT))

其中:dE表示能量差,dE<0(由于是降温,温度是变低的)

exp代表自然常数

k为一个常数

结合指数函数的图像以及指数部分是负数的特性,可以知道P(dE)的取值范围为(0,1),如下图红色曲线所示:

(图比较丑,用附件画图直接画的,请见谅【鬼脸】)

随着温度的降低,p的值也逐渐降低,于是接受更差的解的概率也就越小,退火过程就趋于稳定。

伪代码:

while(T>T_min)

{

计算dE;

如果变好,则接受,

否则如果概率大于一个随机概率,则接受(以一定概率接受较差的结果)。

降温

}

模拟退火的整体思想是:接纳一定的“不好”,可能最后得到的“更好”

三 迭代局部搜索

迭代局部搜索属于探索性局部搜索方法(EXPLORATIVE LOCAL SEARCH METHODS)的一种。它在局部搜索得到的局部最优解上,加入了扰动,然后再重新进行局部搜索。

【ing,有机会会继续补充】

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值