漫步最优化二十六——黄金分割搜索

来源:互联网 发布:程序设计用什么软件 编辑:程序博客网 时间:2024/05/18 03:31














——

斐波那契搜索的主要缺点是迭代的次数必须提供给输入,有一种搜索方法,它在目标函数的最小或最大值达到需要的精度时再确定迭代次数,这就是黄金分割搜索。该方法与斐波那契搜索一样,用类似的迭代公式得到一个区间序列{I1,I2,I3,},如图1所示,相邻区间的长度满足比值为常数,即
IkIk+1=Ik+1Ik+2=Ik+2Ik+3==K

所以

IkIk+2=K2IkIk+3=K3

等等。

等式Ik=Ik+1+Ik+2除以Ik+2可得

IkIk+2=Ik+1Ik+2+1

根据上面三式可得

K2=K+1

求解出K得到

K=1±52

因为K的负值没有意义,所以我们得到K=1.618034,这个常数就是众所周知的黄金分割比,这个术语来自古希腊,矩形的两边之比为1:K时,看着最让人舒服,因此也称作黄金分割矩形。相应的,序列{I1,I1/K,I1/K2,,I1/Kn1}就是黄金分割序列。

黄金分割搜索如图1所示,其中我们一直选择左边的区间。显然,这个搜索很像斐波那契搜索,但有两点例外:

  • 连续的区间与n无关。因此,迭代次数可以在不确定范围达到我们要求的容忍误差ε后再计算出来。
  • 相邻区间之比,也就是Fnk1/Fnk1/K代替,其中
    1/K=K1=0.618034


这里写图片描述
图1

黄金分割搜索相比于斐波那契搜索的有效性很容易比较出来。对于较大的n值,FnK的已知关系为
FnKn+15

(例如如果n=11,Fn=1.44,Kn+1/5144.001),斐波那契搜索的不确定区间为

ΛF=In=I1Fn5Kn+1I1

同样的,对于黄金分割搜索

ΛGS=In=I1Kn1

因此

ΛGSΛF=K251.17

因此,如果两种方法的迭代数相同,黄金分割搜索的不确定区域将比斐波那契搜索的大17%,也就说是,对于同样的精度,黄金分割搜索的迭代次数将比斐波那契的大。但是这个缺点可以被下面这个事实抵消掉:优化开始不需要知道迭代的总次数。

原创粉丝点击