函数的导数是函数性态的反映,它对选择搜索方向提供了有用的信息。例如,最速下降法、共轭梯度法、变尺度法和牛顿法等,都是利用函数一阶或二阶导数信息来建立搜索方向的。在不计算导数的情况下,先算出若干点处的函数值,从它们之间的大小关系中也可以看出函数变化的大概趋势,为寻求函数的下降方向提供依据。这里所说的若干点,一般取在单纯形的顶点上。所谓单纯形是指在n维空间中具有n+1个顶点的多面体。利用单纯形的顶点,计算其函数值并加以比较,从中确定有利的搜索方向和步长,找到一个较好的点取代单纯形中较差的点,组成新的单纯形来代替原来的单纯形。使新单纯形不断地向目标函数的极小点靠近,直到搜索到极小点为止。这就是单形替换法的基本思想。在线性规划中,我们将提到单纯形法,那是因为线性规划问题是在凸多面体顶点集上迸行迭代求解。这里是无约束极小化中的单形替换法,利用不断替换单纯形来寻找无约束极小点。虽然二者都用到单纯形,但决不可以把这两种方法混淆起来。为此我们将通常在无约束极小化中所说的单纯形法,称作单形替换法,以避免和线性规划中的单纯形法相混淆。
现以二元函数f(x1,x2)为例,说明单形替换法的基本原理。
如图4-18所示,在x1Ox2平面上取不在同一直线上的三点X1、X2、X3,以它们为顶点组成一单纯形(即三角形)。计算各顶点函数值,设
图4-18 单形替换法
f(X1)>f(X2)>f(X3)
这说明X3点最好,X1点最差。为了寻找极小点,一般来说,应向最差点的反对称方向迸行搜索。即通过X1并穿过X2X3的中点X4的方向迸行搜索。在此方向上取点X5使
X5=X4+(X4-X1)=2X4-X1
X5点称作X1点相对于X4点的反射点,计算反射点的函数值f(X5),可能出现以下几种情形:
(1)f(X5)<f(X3)即反射点比最好点还好,说明搜索方向正确,还可以往前迸一步也就是可以扩张。这时取扩张点
X6=X4+α(X4-X1)
式中,α为扩张因子,一般取α=1.2~2.0。
如果f(X6)<f(X5),说明扩张有利,就以X6代替X1构成新单纯形X2X3X6。否则说明扩张不利,舍弃X6,仍以X5代替X1,构成新单纯形X2X3X5。(www.xing528.com)
(2)f(X3)≤f(X5)<f(X2)即反射点比最好点差,但比次差点好,说明反射可行,则以反射点代替最差点,仍构成新单纯形X2X3X5。
(3)f(X2)≤f(X5)<f(X1)即反射点比次差点差,但比最差点好,说明X5走得太远,应缩回一些,即收缩。这时取收缩点
X7=X4+β(X5-X4)
式中,β为收缩因子,常取成β=0.5。
如果f(X7)<f(X1),则用X7代替X1构成新单纯形X2X3X7,否则X7不用。
(4)f(X5)≥f(X1)即反射点比最差点还差,这时应收缩得更多一些,即将新点收缩在X1X4之间,取收缩点
X8=X4-β(X4-X1)=X4+β(X1-X4)
如果f(X8)<f(X1),则用X8代替X1构成新单纯形X2X3X8,否则X8不用。
(5)f(X)>f(X1)即若X1X4方向上的所有点都比最差点差,则说明不能沿此方向搜索。这时应以X3为中心缩边,使顶点X1、X2向X3移近一半距离,得新单纯形X3X′1X′2,如图4-19所示,在此基础上迸行寻优。
以上说明,可以通过反射、扩张、收缩和缩边等方式得到一个新单纯形,其中至少有一个顶点的函数值比原单纯形要小。
图4-19
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。