完备搜索
考虑所有的可能解
能够证明最优性
非完备搜索
只考虑某些可行解
无法证明最优性
相比完备搜索方法更快,可以处理更大的问题
贪心局部搜索
生成初始解
从领域中随机改变到达另一个更优的解
直到循环终止
最速下降的局部搜索
从领域中选择改变的路线时,评估领域中所有的相邻点,选择最快通往好的解的路线。
对于凸优化问题,总能得到全局最优解。
限制最速下降
缩小每次改变的领域范围。
可是对于存在局部最小解的问题,怎么挑出局部最小解,找到全局最优解呢?
约束和局部搜索
处理约束时,有两种方式处理约束
逃离局部最小点
重启
每当困在一个局部最小点,在一个新的随机点重启搜索。
使用随机化搜索来逃离局部最小点,结合最速下降和随机跳跃。
模拟退火
尝试一个移动,如果有改善就进行这个移动;否则,也在一定概率下进行这个移动,即使这个移动会使目标值向上。
在每一个时间点,算法都有(逐渐降低的)概率选择一个向上的移动 。
Tabu表
为了防止搜索进入死循环,引入Tabu表,记录最近K个状态到Tabu表中,防止移动回到他们其中一个。Tabu搜索可以逃离/避免局部最小点。
参考:
https://www.coursera.org/learn/lisan-youhua-suanfapian/lecture/Gr6N6/3-4-1-ju-bu-sou-suo