爬山算法,模拟退火算法

局部搜索算法

爬山算法

原理

  • 选择随机解作为起点

  • 邻域搜索:在当前解的邻域搜索使目标函数最大化的解

  • 迭代:

    • 如果邻居中有性质更好的解,更新为当前解
    • 若达到预定迭代次数,或者当前解局部最优停止

Python实现

选取目标函数$f(x)=16-x^2$,函数明显在$x=0$处取得最大值16

优点

  • 简单
  • 目标函数具有单峰性时,效果较好

缺点

  • 局部最优$\neq$全局最优
  • 对初始解和迭代次数敏感

模拟退火算法