无约束最优化计算方法中的Rosenbrock旋转坐标法最初是由Rosenbrock提出的,可以看作是Hooke和Jeeves方法的进一步改善和发展,应用此法时,在极小化的每一级开始前都要按以下方式来旋转坐标系,即第一个轴应指向所估计的局部凹谷方向,而其他轴应相互正交,且与第一轴垂直。由于在n维空间可以根据需要来旋转坐标,所以Rosenbrock方法可以追随弯曲的和陡峭的深谷前进。这种方法对于搜索器寻找近似极小点位置是非常有用的。
Rosenbrock方法和模式搜索法的主要不同点在于:沿n个正交方向探测后,并不是去确定一个新的前进方向,而是用全新的另外n个正交方向代替原来的n个正交方向,或者把原来的n个探测方向旋转一个角度,然后继续进行新的探测。该方法的第k次迭代可以描述为:假设已经有了极小点的估值xk(第1次迭代即为初始点),n个单位正交方向p1,…,pn[||pi||=1(i=1,…,n)]。第1次迭代可取为n个坐标轴方向e1,…,en以及相应的步长a(1),…,a(n)(第1次迭代时均取为初始步长a),则第k次迭代过程包括以下两个阶段:
(1)探测阶段 本阶段的任务是沿p1,…,pn进行探测,使函数值有所下降。x(0)=xk首先沿p1方向探测,即从x(0)出发以步长a(1)沿p1方向前进至。若(x(0)),则这次探测成功,此时取作为x(1);否则这次探测“失败”,这时取x(0)作为x(1)。接着从x(1)出发以同样的方式沿p2探测x(2),重复此步骤,一直到沿pn探测的x(n)。只是这一次循环中,沿各方向pi(i=1,2,…,n)探测时的步长ai要作如下的改变:当前一次循环沿该方向探测成功时,ai将扩大为原来的β(β>1)倍,否则ai乘以γ(-1<γ<0),作为本次循环沿pi方向探测时的步长。用同样的方式进行第3次、第4次循环等。整个探测阶段所进行的循环次数m是满足下列条件的最小整数:对于所有的i=1,2,…,n沿pi的m次探测中至少有一次成功,而且这次之后已有一次失败。换句话说,若把沿pi的m次探测的结果依次排列起来,必须有两个相邻的元素为“成功,失败”。从xk出发进行m次循环后所得之点x(mn)记为x(k+1),它是下一次(第k+1次)迭代的初始点。(www.xing528.com)
(2)转轴阶段 本阶段的任务是为下次迭代提供新的探测方向。刚刚进行过的探测阶段是从xk求得了x(k+1),看来,方向s1=xk+1-xk很可能是一个有效的下降方向,它可以写为s1=β(1)p1+β(2)p2+…+β(n)pn,其中β(j)是本次迭代探测阶段的m次循环中沿pj方向所用探测成功时的步长的代数和。当β(1),β(2)…,β(n)都不为零时,若定义s2=β(2)p2+…+β(n)pn,…,sn=β(n)pn,则s1,s2,…,sn线性无关。用Gram-Schmidt正交化过程,可以由此得到一组新的单位正交方向p1,p2,…,pn,这n个方向将用作下一次(第k+1次)迭代的n个正交方向。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。