在原始版本的《数字食谱》中,这种“下坡单纯形算法”的说明特别清楚和有用。因此,我将引用其中的相关部分。这是背景:
在一维最小化中,可以将最小值...括起来。唉! 多维空间中没有类似的过程。...我们能做的最好的就是给我们的算法一个开始的猜测;即,将自变量的向量作为第一个尝试点。然后,假定该算法通过N维地形的难以想象的复杂性走下坡路,直到遇到一个(至少是局部的)最小值。ññ
下坡单纯形方法不仅必须从单个点开始,而且还必须以个点开始,以定义初始单纯形。[你可以把这些点为初始的起点P 0与沿] P 我 = P 0 + λ Ë 我其中ë 我的是Ñ单位矢量,并且其中λ是一个常数,它是你的问题的特性的猜测长度刻度。...ñ+ 1P0
P一世= P0+ λ È一世(10.4.1)
Ë一世ñλ
大多数步骤只是将功能最大的单纯形点(“最高点”)通过单纯形的相对面移动到较低点。...
现在针对当前问题,终止算法。 请注意帐户的一般性:作者为终止任何多维优化器提供了直观而有用的建议,然后具体说明了它如何应用于该特定算法。第一段回答了摆在我们面前的问题:
终止标准可能很微妙。通常,我们可以识别多维算法的一个“周期”或“步骤”。然后,当在该步骤中移动的矢量距离的大小在一定程度上小于某个公差时,可能会终止TOL
。或者,我们可以要求终止步骤中函数值的减小部分小于某个公差FTOL
。...
请注意,上述一个标准可能被一个异常步骤所欺骗,该异常步骤由于一个或另一个原因未能到达任何地方。因此,通常最好在声称已发现最小值的点重新启动多维最小化例程。对于此重新启动,应重新初始化所有辅助输入量。在下降单纯形法中,例如,则应该重新初始化所述的Ñ + 1个再次单纯形的顶点由方程(10.4.1 ),用P 0是所要求保护的最小的顶点中的一个。ññ+ 1(10.4.1 )P0
重新启动绝对不会太昂贵;毕竟,您的算法确实收敛到了重启点,现在您已经在此处启动算法了。
[第290-292页。]
数值食谱中与此文本随附的代码阐明了“小数”的含义:当和y(自变量的值或函数的值)之间的差“小”于阈值T > 0时XÿŤ> 0
| x | - | ÿ|F(x ,y)= 2 | x | - | ÿ|| x | + | ÿ|< T(1)
与。F(x ,y)= (| x | + | y| ) / 2
的左侧有时称为“相对绝对差”。在某些字段中,它表示为百分比,在此称为“相对百分比误差”。有关更多选择和术语,请参阅Wikipedia上的相对变化和差异文章。(1 )
参考
William H.Press 等。,数字食谱:科学计算的艺术。 剑桥大学出版社(1986)。请访问http://numerical.recipes/以获取最新版本。