局部搜索

局部搜索是一种启发式方法,用于解决NP问题。它从当前节点出发,仅移动到邻近状态寻找最优解。本文详细介绍了爬山法的优化思路,包括最陡爬山法、随机爬山法、首选爬山法和随机重爬法,并探讨了模拟退火算法如何结合探索和利用,以跳出局部最优解,达到全局最优。
摘要由CSDN通过智能技术生成

局部搜索

局部搜索是一种用于解决计算上难以优化的问题(NP Problem)的启发式方法.

局部搜索从当前结点出发,通常只移动到他的邻近状态,不保留路径,根据目标函数寻找最优的状态。局部搜索的优点有:

  • 只用很少的内存
  • 对于状态空间很大,连续的问题也适用(系统(全局)算法就不太适合这类问题)

局部搜索的优化思路

  • 局部最优问题即考虑到算法在搜索过程中陷入到局部极值点而结束的情况。设想我们去攀登一座山群的最高峰,而此山群有很多的小山峰,且我们对此山群一无所知,那么当我们按照算法的步骤来到一座小山峰(局部极值点)时,我们会错误的判断这就是最高峰,事实上这有可能是一个很糟糕的解(即与最高峰还差很远)。
  • 步长问题为便于理解,我们考虑用此局部搜索算法寻找一开口向下的抛物线的顶点:设此顶点的x坐标为10,求领域的映射N定义为N: x ∈ R , N ( x ) = x ± 3 x∈R,N(x)=x±3 xR,N(x)=x±3(即给定点x的领域仅有在其两边相距为3的两个点),指标函数 f ( x ) = − y ( x ) f(x)=-y(x) f(x)=y(x)(为使指标函数值小的解为较优解,我们让其取相反数);那么当我们所选取的初始解为3时,无论如何算法都将不能在顶点(最优解)处结束。根本原因就是我们的步长固定,所以能够搜索到的也仅为一些固定的点。解决此问题可以在搜索的过程中改变步长(本质为改变映射函数N)。
  • 起始点问题在上面步长问题的讨论中,我们发现起始点的选择也对问题的求解有很大的影响,选择不好可能会导致得不出最优解的情况。一种很自然的解决方案就是随机的选择一些可能解,分别以这些可能解为初始解进行搜索,最后将这些搜索得到的解进行比较从而选出最优解。

爬山法

探索和利用

  • 探索:可理解为随机找点或初始化状态,保障在局部最优中能够找到全局最优
  • 利用:保障能通过一个初始状态, 够找到他的局部最优

最陡爬山法

思路其实很简单, 不断在向值增加的方向移动. 而且移动时只会考虑与相邻的位置(纯利用, 类似与贪心的思想).

n’ <- argmax{
   f(m)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值