漫步最优化二十四——二分搜索












——

考虑一个单峰函数,在区间 [xL,xU] 内有最小值,这个区间称为不确定范围,通过不断缩小这个不确定范围可以得出 f(x) 的最小值 x 。在搜索方法中,使用 f(x) 在合适点处的值就能确定出来。

如果 f(x) 在点 xa 处的值是已知的,其中 xL<xa<xU ,那么点 x 可能在 xL xa 之间,或者 xa xU 之间,如图1所示,因此获得信息不足以进一步缩小不确定范围。然而,如果我们知道 f(x) 在两个点 xa,xb 处的值,那就可以缩小了,这时候会有三种情况:

  • f(xa)<f(xb)
  • f(xa)>f(xb)
  • f(xa)=f(xb)

对于第一种情况, x 的范围可能是 xL<x<xa 或者 xa<x<xb ,即 xL<x<xb ,如图1所示。 xb<x<xU 的情况被排除了,否则的话 f(x) 会有两个极小值:一个在 xb 的左边,一个在 xb 的右边。同样的,对于第二种情况,我们肯定有 xa<x<xU ,如图2所示。对于第三种情况,我们有 xa<x<xb ,即不等式 xL<x<xb xa<x<xU 都满足,如图3所示。


这里写图片描述
图1


这里写图片描述
图2

一种缩小不确定范围的基本策略是二分搜索。对于这个方法,首先计算 f(x) 在两点 xa=x1ε/2 xb=x1+ε/2 的值,其中 ε 是很小的正数,然后根据 f(xa)<f(xb) 还是 f(xa)>f(xb) ,判断范围是 xL x1+ε/2 还是 x1ε/2 xU ,如果 f(xa)=f(xb) ,那么两者都可以。假设 x1xL=xUx1 ,即 x1=(xL+xU)/2 ,那么不确定范围立刻减半,不断重复这个过程直到满足要求为止。例如,如果二分查找应用到图4所示的函数上,那么不确定范围在四次迭代后从 0<x<1 减小到 9/16+ε/2<x<5/8ε/2

这里写图片描述
图3


这里写图片描述
图4

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值