优化算法:
通过尝试许多不同题解并给这些题解打分一确定其质量的方式找到一个问题的最优解。
1、最简单的是随机优化——随机搜索
随机给定猜测,计算其中最佳题解并返回(有随机性,不一定返回最优解,同时没有利用已经发现的最优解,解题效率非常低)
2、爬山法:
以一个随机解开始,在其临近的解集中寻找更好的题解,类似于从斜坡上向上走
缺陷:简单的从斜坡下不一定会产生全局最优解,最后的解会是一个局部范围内的最小解
解决办法:随机重复爬山法,即让爬山法以多个随机生成的初始解为起点重复若干次,借此希望有一个解能够逼近全局的最小解。
还有:模拟退火算法和遗传算法
1. 模拟退火算法认识
爬山算法也是一个用来求解最优化问题的算法,每次都向着当前上升最快的方向往上爬,但是初始化不同可能
会得到不同的局部最优值,模拟退火算法就可能跳出这种局部最优解的限制。模拟退火算法是模拟热力学系统
中的退火过程。在退火过程中是将目标函数作为能量函数。大致过程如下
初始高温 => 温度缓慢下降=> 终止在低温 (这时能量函数达到最小,目标函数最小)
在热力学中的退火过程大致是变温物体缓慢降温而达到分子之间能量最低的状态。设热力学系统S中有有限个且
离散的n个状态,状态的能量为,在温度下,经过一段时间达到热平衡,这时处于状态的概率为
模拟退火算法也是贪心算法,但是在其过程中引入了随机因素,以一定的概率接受一个比当前解要差的解,并且
这个概率随着时间的推移而逐渐降低。
2. 模拟退火算法描述
若,即移动后得到更优的解,那么总是接受改移动。
若,即移动后得到更差的解,则以一定的概率接受该移动,并且这个概率随时间推移
逐渐降低。这个概率表示为
由于是退火过程,所以dE < 0,这个公式说明了温度越高出现一次能量差为dE的降温概率就越大,温度越低,
出现降温的概率就越小,由于dE总是小于0,所以P(dE)取值在0到1之间。伪码如下