Zoutendijk可行性方法属于约束极值问题可行方向法中的一种。与之前无约束极值问题中的最速下降法、牛顿法相像,可行方向法的策略是:从可行点出发,沿着下降的可行方向进行搜索,求出使目标函数值下降的可行点。 教材中共介绍了四种方法:Zoutendijk可行性方法、Rosen梯度投影方法、既约梯度法、Frank-Wolfe方法。博文对Zoutendijk可行性方法和Frank-Wolfe方法进行了介绍,这个是第一篇。
这类算法的两大步骤如下所示,搜索方向的选择策略不同形成了不同的可行方向法。
1、选择搜索方向
2、确定沿此方向移动的步长
接下来开始正题:Zoutendijk可行性方法
一、线性约束情形
1.确定变动方向
对于一个非线性规划问题:,。可以看到其共有m个不等式约束,n个等式约束。
若初始点设定为,考虑到m个等式约束中有一些是起作用约束(在边界上满足=),有一些是不起作用约束(在内部满足),所以将矩阵进行行调换:,同时对向量也进行对应分块:,最终得到起作用约束,不起作用约束。
定理1(可行方向):在此点选择一个方向,如果使得目标函数值下降,则应满足:,即只考虑起作用约束集和等式约束集。
(这个定理不难理解,可行点已经触犯到了一些不等式约束的边缘,如果发生变动,那么变动之后的点一定依然满足这些起作用集约束。)
之前都是站在约束角度考察方向的取值,现在结合目标函数值进行联合分析:如果方向同时满足,那么这个方向就是下降可行方向(即方向既能够使函数值下降,又能满足约束条件)。基于这些分析我们可以把求方向规范化为线性规划问题:
计算过程1(求方向d):,
形象理解可知,当d和函数梯度夹角大于90°时,函数值可以下降,上目标函数为负值。而当已经到达局部最优点,没有下降方向时,上目标函数最小值为0。这时可以给出第二个定理,即KT点和下降可行方向的关联:
定理2(KT点关联下降可行方向):当在x点处满足约束,且上目标函数最小值为0时,此点为KT点。(充要条件)
至此我们完成了方向d的确定。
2.确定移动步长
和无约束最优化问题类似,可行点的迭代公式为:。步长的选择一方面要满足后续点的可行性,一方面又要使目标函数值尽可能地小。因此可以得到完备计算过程:
计算过程2(完备求步长):
这时考虑:在选取时已经使得 作用约束满足、等式约束满足。因此只考虑非作用约束即可(这一步真的神奇!)。因此计算过程直接化简为:
计算过程2(简化求步长):
接下来对 式进行仔细分析:将不含的项移动到右端:,可以发现右端式满足小于0。分类讨论,当时,无论如何选取都满足条件,;当时,左除引起变号,最大取。所以最终精简求法为:
计算过程2(精简求步长):
其中求法按照上述分类讨论计算。完整的计算方法在教材中已经给出: