局部搜索

 完备搜索

考虑所有的可能解

能够证明最优性

 

非完备搜索

只考虑某些可行解

无法证明最优性

相比完备搜索方法更快,可以处理更大的问题

 

贪心局部搜索

生成初始解

从领域中随机改变到达另一个更优的解

直到循环终止

 

最速下降的局部搜索

从领域中选择改变的路线时,评估领域中所有的相邻点,选择最快通往好的解的路线。

对于凸优化问题,总能得到全局最优解。

 

限制最速下降

缩小每次改变的领域范围。

 

可是对于存在局部最小解的问题,怎么挑出局部最小解,找到全局最优解呢?

 

约束和局部搜索

处理约束时,有两种方式处理约束

逃离局部最小点

重启

每当困在一个局部最小点,在一个新的随机点重启搜索。

使用随机化搜索来逃离局部最小点,结合最速下降和随机跳跃。

 

模拟退火

 

尝试一个移动,如果有改善就进行这个移动;否则,也在一定概率下进行这个移动,即使这个移动会使目标值向上。

在每一个时间点,算法都有(逐渐降低的)概率选择一个向上的移动 。

 

Tabu表

为了防止搜索进入死循环,引入Tabu表,记录最近K个状态到Tabu表中,防止移动回到他们其中一个。Tabu搜索可以逃离/避免局部最小点。

 

 

参考:

https://www.coursera.org/learn/lisan-youhua-suanfapian/lecture/Gr6N6/3-4-1-ju-bu-sou-suo

 

posted on 2019-06-03 20:12  yijun0730  阅读(363)  评论(0编辑  收藏  举报

导航