这几天看了几个智能算法,并且试着自己写了下,个人感觉这几个算法有许多的相似之处,那就是都是通过某种随机函数来对已有结果进行改变,建立某种评估函数(如适应度函数),然后再通过某种函数对其进行筛选,并将前两者循环多次,即可得到优化后的值。more智能算法在大多数的情况下都只能得到最优解的近似值,并且可能会陷入到局部最优解当中。模拟退火算法模拟退火算法总的来说还是一种优化算法,就如同名称一样,打铁后,钢铁冷却的过程就是其逐渐成形的过程. 模拟的是淬火冶炼的一个过程,通过升温增强分子的热运动,然后再慢慢降温,使其达到稳定的状态。
当温度很高时,钢铁容易发生形变,因此我们可以将其塑造成我们想要的形状;而当温度逐渐降低时,钢铁发生形变的容易程度降低,更加的趋向于稳定.模拟退火算法的关键解释:建立初始解通常是以一个随机解作为初始解. 并保证理论上能够生成解空间中任意的解,也可以是一个经挑选过的较好的解,初始解不宜“太好”, 否则很难从这个解的邻域跳出,针对问题去分析。生成扰动邻解邻解生成函数应尽可能保证产生的侯选解能够遍布解空间,邻域应尽可能的小,能够在少量循环步中允分探测.,但每次的改变不应该引起太大的变化。Metropolis准则Metropolis法则是SA接受新解(扰动邻解)的概率。$$
P(x=>x')=\begin{cases}
1 & f(x')=f(x)
...
继续阅读
(34)