目录
在约束非线性最优化问题的研究过程中, Zoutendijk 可行方向法是无约束下降算法的自然推广。它的基本思想是从可行点出发,沿着可行方向进行搜索,求出使得目标函数值下降的新的可行点。 算法主要包括选择搜索方向和搜索步长两个主要方面,搜索方向的选择方式不同形成不同的可行方向法。
下面我们分线性约束问题和非线性约束问题来讨论。
线性约束:
其中 可微,A 是
矩阵,E 是
矩阵,A 是
矩阵,
。
定理1:设 x 是的可行解,在 x 处有
,其中
,则非零向量 d 为 x 处的可行方向的充要条件是:
。
即对于非零向量 d ,只要 ,d 就是在 x 处的可行方向。如果 d 再满足
,那么 d 就是在 x 处的可行下降方向。
因此,确定搜索方向可归结于求解线性规划问题:(要使 足够小(小于0)才成立)
为可行解,则 0 为上界,由此:
,
为 K-T点。
,
为可行下降方向。
定理2:设 x 是 的可行解,在 x 处有
,其中
,则 x 是 K-T 点的充要条件是:
。(上述线性规划问题最优解为0)
之后,可以通过一维搜索,确定步长,需满足以下两个条件:
1,,且
可行;
2, 尽量小。
将新的约束条件代入:
(前提:有 为可行点,
,
为可行下降方向
则上述规划可以进行简化:
恒成立
,即
,
其中 中,
,故其恒成立。
化简为以下形式:
设 ,
算法步骤:
步骤1:选取初始点 ,允许误差
;
步骤2:在 处分解出起作用的约束:
,
,计算
;
步骤3:求解前述的线性规划问题,得到 ;
步骤4:如果 ,停止,输出
,否则,转步骤5;
步骤5:按前述方法求出 ,令
,k=k+1,转步骤2。
例题解析:
例题:用 Zoutendijk 法求解下面规划问题,初始点 .
解:
,
,
第一次迭代:在 处,起作用的指标集
辅助线性规划问题如下:
,
是可行下降方向,
第二次迭代:在 处,起作用的指标集
辅助线性规划问题如下:
,
是可行下降方向,
第三次迭代:在 处,起作用的指标集
辅助线性规划问题如下:
是 K-T 点。
该问题是凸规划问题,所以 是最优解。
非线性约束:
其中 可微。
如果满足:,则 d 是可行下降方向。
求可行下降方向归结于求解线性规划问题:
设求出的最优解为:,则有:
1,如果 ,则
是 x 处的可行下降方向;
2,如果 ,则
是 Fritz-John 点。
如何确定步长 ?
1,求解:
2,求解:
算法步骤:
步骤1:选取初始点 ,允许误差
;
步骤2:确定起作用约束指标集 ;
步骤3:求解辅助线性规划问题,得到最优解 ;
步骤4:如果 ,停止,输出
,否则,得到可行下降方向
转步骤5;
步骤5:做一维搜索求出 ,令
,k=k+1,转步骤2。
例题解析:
Zoutendijk 的改进:
当迭代点在一个约束的边界上时,如果可行方向取得不恰当,沿着该方向可能因为接近另一个约束边界而只能做一个很小的移动;否则,就会使迭代点跑出边界。
为了防止这一现象,设想在约束条件的边界上设立一条“隔离带”. 迭代点进入这个区域时,只允许它往可行内部移动,而不许向边界靠近。
为了防止出现锯齿现象,还可考虑起作用约束和不起作用约束在确定搜索方向中都起作用,这种全作用约束方法是Topkis和Veinote于1967年提出的,这种方法能收敛到Fritz John点。
(行文中若有纰漏,希望大家指正)