最优化方法
最优化方法
极小点判定条件
凸函数:Hessen矩阵 半正定 (正定时为严格凸函数)
凹函数:Hessen矩阵 半负定
线性规划
线性规划的目标函数等值面是平行平面。
标准线性规划
主约束都是右端项非负的等式约束
结果要不是 最优解 要不是 解无界。(不会出现 无解)
标准线性规划有容许解,则必有基本容许解。
若有最优解,则必有最优基本容许解。
典范线性规划
I阶段线性规划或存在最优基本容许解(W=0),或 原问题无解(W>0)。
典范线性规划 或者 解无界 或者 有最优解 不会出现无解的情况。
第一阶段
解辅助线性规划,目的是求标准线性规划 主约束的一个 G-J方程组
第二阶段
解标准线性规划,即解原线性规划
单纯形
本质上是解典范线性规划的算法
根本目标是让人工变量全部退基
具有有限终止性
自由变量 $x_1 = x_2 -x_3$
最优性检验
最大判别数$\delta _l$
- 最优解 $\delta _l \leq 0$
- 无界 $\delta _l \gt 0 $ $a_l \leq0$ 异号
- 无解 第一阶段 最优值 $w>0$
$\delta _l \gt 0 $ $a_l \nleq0 $ 可以继续迭代,典范线性规划不会出现无解的情况。
特殊情况
- 若所有判别数都 <0 但是人工变量没有退基,任选一个非人工变量系数的非0元素作为主元,在进行一次换基运算,得到标准线性规划主约束的G-J方程组。
- 若基变量中有人工变量,但非人工变量变量的系数都为0,b也为0,可以直接划掉,进入第二阶段。
- 没有约束的变量是 自由变量,变为$x_1 = x_2 -x_3$
直线搜索
- 区间收缩法(黄金分割法 用于任何单谷函数求极小值)
- 函数逼近法(抛物线插值法 适用于连续单谷函数)
最速下降法
不具备二次终止性,线性收敛算法,无限次迭代。
如果初始点选在椭球等值面(椭圆等值线)上,迭代一次就会得到极小点,否则会无限次迭代。
优点:直观 简单
缺点:收敛速度慢 实用性差 锯齿现象
基本思想:在点$x_k$处沿负梯度方向$p_k$进行直线搜索。
直线搜索的性质:$g_{k+1}·g_k = 0$ 相邻迭代点梯度正交。
锯齿现象:最速下降法的迭代点在向极小点靠近的过程中,走的是曲折的路线,后一次搜索方向$p_{k+1}$与前一次搜索方向$p_k$垂直,称之为锯齿现象。
牛顿法
基本思想:从$xk$到$x{k+1}$的迭代过程中,在点$x_k$处对$f(x)$按Taylor级数展开到第三项,解出极小点。当目标函数$f(x)$是正定二次函数的时候,牛顿法迭代一次就会得到最优解。
几何解释:在函数$f(x)$过点$x_k$的等值面方程,用一个与曲面最密切的二次曲面代替他。
Taylor展开
修正牛顿
对于非正定二次函数,牛顿法一般不会有限步终止,原因:
1.Hesse矩阵奇异
直线搜索
2.Hesse矩阵可逆
牛顿方向不存在(垂直)
1. $p_k = -g_k$ 1. 直线搜索
步长为1不合适(下降方向)
- 直线搜索
- 牛顿方向不是下降方向(上升方向)
- $p_k = G_k^{-1}·g_k$
- 直线搜索
共轭方向法
优点:克服了最速下降法的锯齿现象,从而提高了收敛速度,迭代公式简单,不必计算目标函数的二阶导数。与牛顿法相比,减少了计算量和存储量。
二次终止性:对于n元正定二次函数,从任意点出发,顺次沿着n个共轭方向作最多n次直线搜索,就可以求得目标函数的极小点。
共轭梯度法:初始共轭梯度向量$p0$恰好取为初始点$x_0$的负梯度$-g_0$,而其余共轭向量$p_k$,由第$k$个迭代点$x_k$处的负梯度$-g_k$与已经得到的向量$p{k-1}$的线性组合来确定,那么这个共轭方向法就称为共轭梯度法。
DFP算法
性质:若初始矩阵$H_0$对称正定,则$H_k$中每一个都对称正定。
步长加速法
不要求目标函数可导或可微。
基本思想:步长加速法主要由交替进行的“探测搜索”和“模式移动”组成。
- 探测搜索:为了寻找当前迭代点的下降方向
- 模式移动:沿着下降方向寻找新的迭代点
探测的出发点:参考点
周围比他更好的点:基点
得到的下降方向:模式
从基点沿模式作直线搜索:模式移动
I型探测:
在基点周围构造一个模式
失败缩小步长
II型探测:
判别上次的模式移动是否成功
失败撤销上次模式移动,将上次的基点作为参考点,开始I型探测
失败原因:前一次模式移动过大,离开了极小点所在区域
最小二乘法
$y=x_1t+x_2$
线性模型
等价于解 法方程组
最优解:$x^* = (A^TA)^{-1}A^Tb$
检验
约束规划问题
等式约束
- Lagrange函数
Lagrange乘子,使得求解等式约束问题,等价于求解无约束问题。
几何表示:
拉格朗日函数关于x的Hesse矩阵在$x^$的约束曲面切平面的交集上正定,则$x^$是等式约束问题的严格局部极小点。
不等式约束
不等式约束关于容许集的任意内点都是不起作用的约束,只有容许集的边界点才能使某个或某些不等式约束变成起作用约束。
容许方向向量:
- 对于起作用的约束
几何最优性条件
判断x* 是否为局部极小点:
若$x^$是局部最优点,则在点$x^$处的容许方向锥和下降方向锥的交集是空集。
K-T条件
几何表示:
若$x^$是最优点,则目标函数在该点的梯度必位于由*起作用约束函数的梯度张成的凸锥中。
凸规划问题的最优性充分条件:
$f$是可微凸函数,$s_i$是可微凹函数,$h_i$是线性函数,如果$x^*$是K-T点,那么是全局最优点。
$u_0$不为0的充要条件:
在$x^*$处,起作用的约束函数,梯度全都线性无关。
Z-容许方向法
终止条件:
- $x^*$为K-T点的充要条件:
并且:A’ 和 C的行向量线性无关。
- 继续迭代,仍然是一个下降方向向量
- 换点
算法:
- 确定当前迭代点的下降容许方向
- 通过直线搜索确定下一个迭代点 (在下降容许方向作ls 最佳步长因子有上界)
- 判定新的迭代点是否为问题的解
判断容许方向:
非线性约束
$s(x)$为起作用的约束
- 线性约束
外部罚函数法
惩罚策略:对容许点不予惩罚,对于非容许点给予无穷大的惩罚,将约束问题转化为无约束问题。
惩罚项特点:
- 包含有取值越来越大的正因子 $\mu$
- 对于容许点,惩罚项取值为0,对于非容许点,惩罚项取值为正
H-乘子法
H-乘子法罚因子不必趋于无穷大,而外部罚函数的罚因子要趋于无穷大,本质是为了防止Hesse矩阵条件数变得越来越坏,导致在计算中,数值稳定性变得越来越差。
拉格朗日乘子$\lambda$与罚因子$\mu$取值无关,只要求$\mu$的取值保证乘子序列收敛即可,不然会有无数个拉格朗日乘子,这是不可能的。
改进:
- 解决了外部罚函数因罚因子增大,导致的数值计算不稳定的问题。
乘子法是针对外部罚函数法的改进,外部罚函数法随着罚因子的增大,增广目标函数的Hesse矩阵条件数变得越来越坏,导致在计算中,数值稳定性变得越来越差,难以精确求解。
乘子法是在约束问题的Lagrange函数中加入相应的惩罚项,使得在求解无约束问题的时候,罚因子不必趋于无穷大就能得到约束问题的最优解,保证数值计算的稳定性。
终止准则
如果无约束问题的最优解$x^$是原规划问题的容许点,那么也是原问题的*最优解。
等式约束
- 罚因子$\mu$的作用
a. 乘子序列${\lambda_k}$不收敛 ${\mu} <\mu^*$
b. 收敛的慢 ${\mu}\geq \mu^*$但不够大
c. $\frac{h(xk)}{h(x{k-1})} \geq 1$ 乘子序列${\lambda_k}$发散
d.$\frac{h(xk)}{h(x{k-1})}$介于$(0,1)$ 收敛,比值越小 ,收敛越快
终止准则:$h(x)=0$
不等式约束
一般形式算法中的终止条件:(平方和开根号)
若$\varphi_k < \epsilon$:终止
若$\frac{\varphik}{\varphi{k-1}}\geq\theta$:放大罚因子 $\mu = c*\mu$,其中 $\theta \in (0,1)$,比值太大说明收敛效果不好,要放大罚因子。
只有等式约束时 $\frac{h(xk)}{h(x{k-1})}\geq\theta$放大罚因子