1 最优化问题与数学基础
-
数学模型的一般形式:
向量形式:(一般情况下,默认列向量)
-
目标函数是连续的单值函数的等值线性质:
-
可微:
- 判断函数在点处可微,默认2范数
-
若可微,一阶偏导存在
-
梯度
计算:
相关性质:
- 梯度方向是增长最快的方向
常用的梯度函数:
-
方向导数:函数沿指定方向的变化率
- 假设||P||=1
做题时使用方向向量时注意化成单位向量
-
方向讨论
-
Jacobi矩阵
-
Hesse矩阵
常用计算:
-
最优性条件
-
驻点:一阶偏导为0
-
一阶必要条件:若是局部极小点,则一阶偏导为0
-
二阶必要条件:若是局部极小点,则Hesse矩阵半正定
-
二阶充分条件:是驻点且Hesse矩阵正定,则为严格局部极小点
-
-
凸集
判断凸集:任意有限个点的凸组合仍在D中
-
凸函数
-
几何上看:弦在弧上
-
题目:判断凸函数?
-
定义
-
利用凸组合形式(充要条件)
-
引入梯度(充要条件)
-
Hesse矩阵(充要条件):Hesse矩阵半正定
-
-
-
凸规划
-
定义
-
性质(第三点很重要)
-
最优解相关
-
唯一?
-
最优解判定(充要条件)对可行集中的任意X
-
-
2 线性规划和单纯形法
2.1 数学模型形式
-
一般线性规划形式
-
标准形式
矩阵形式:
另一种形式:
-
转化为标准形式
如果是 ≤ {\le} ≤则(+)松弛变量
如果是 ≥ {\ge} ≥则(-)剩余变量
R:两个自由变量相减
2.2 基本概念名词
基、基本解(非基变量全为零)、可行解、基可行解(所有分量非负的基本解)、最优基可行解、最优基
顶点、极点
2.3 解的性质
-
判断可行解是基可行解
-
可行解是顶点
-
若线性规划有最优解,则必在其可行集S的顶点处取得
2.4 单纯形法
-
基本思想
从线性规划的某一个顶点出发,沿着使目标函数值下降的方向寻找下一个顶点
即,从顶点到顶点
-
最优解判别准则
- 写成分量形式:
实际上只要验证非基变量所对应的判别数
- 无解情况:
- 最优解形式:设A是行满秩
-
换基运算:本质从一个基可行解(顶点)迭代出(转到)另一个基可行解(顶点)
关键是:主元、进基列、出基列的选择
- 主元
基变量取相应的b,非基变量全部取0,则得到一个初始的基可行解
-
进基列的选择(常用2&3)
-
具体的表格绘制
-
绘制初始单纯形表格
注:基变量所对应的判别数为0
-
进行换基运算,这里的判别数也通过行处理变化进行运算更新
-
整体运算过程:
-
2.5 初始基可行解的确定方法
主要原因:系数矩阵A未必刚好有一个m阶的单位矩阵,因此没有现成的初始基可行解。=》引入人工变量,即构造初始基可行解
2.5.1 两阶段方法
首先,重写一个辅助线性规划:
同时,根据构造的辅助线性规划,可以判断原规划是否有可行解:
根据公式:
-
g*>0:原规划无可行解
-
g*=0
-
基变量全在x中,则基可行解是原规划的初始基可行解
-
基变量不全在x中
-
第一阶段,在得到原规划的初始基可行解时,辅助构造的线性规划表格的最后一行的判别数行不用管
第二阶段,写出原规划对应的表格,进行进一步的计算
2.5.2 大M法
-
基本思想
-
最优解分析
-
在改写目标函数时,由于松弛变量也可以当做人工变量看待,所以不用再加一个人工变量,同时,目标函数的M的乘积项中也不用带这个松弛变量。M作为一个值很大的正常数正常运算即可。
-
单纯形法的改进中,为了避免循环,对进基列的选择进行了修改:
3 对偶线性规划
原线性规划及其对偶线性规划的最优解之间存在着某种联系。
-
原规划及其对偶形式(对称形式)
规划1:
规划2:
-
混合形式变换规则表
-
对偶定理
已知
-
弱对偶性
-
均有最优解的充要条件:都有可行解
-
最优性:
-
强对偶性:
-
-
对偶线性规划的解之间的关系
-
对偶单纯形法:从一个正则解到另一个正则解,为了解决b<0的情况
4 无约束最优化计算方法
核心迭代公式:
X k + 1 = X k + t k P k {X^{k+1}=X^k+t_kP^k} Xk+1=Xk+tkPk
算法收敛:
收敛准则即迭代更新差小于给定精度
4.1 下降迭代算法
4.1.1 一般格式
那么,后面的讨论就是确定步长和下降方向的规则
4.1.2 一维搜索
4.1.3 收敛速度
- 0 < β < 1 {0< \beta <1} 0<β<1, β {\beta} β线性收敛
- β = 0 {\beta = 0} β=0,超线性收敛
- β = 1 {\beta = 1} β=1,次线性收敛
4.2 精确一维搜索
4.2.1 黄金分割法
-
基本思想
不断缩小搜索区间且区间的搜索比不变
-
具体缩小
4.2.2 Fibonacci法
4.2.3 三点二次插值法
收敛性定理:保证算法的下降性,要求每次搜索方向与负梯度方向成锐角
4.3 最速下降法
核心公式:
-
基本算法
-
最速下降算法下,搜索呈锯齿状前行
-
最优步长的确定:(也可以直接用一维搜索的算法,求导等于0得到)
-
k+1次的迭代:
-
最速下降法相邻两次迭代的方向互相垂直
4.4 牛顿法
-
基本思想
用一个二次函数去近似一个目标函数,然后精确地求出这个二次函数的极小点
先写出目标函数某点的Taylor公式二次展开,然后求导等于零,认为Hesse矩阵正定,则求出极小点的新的近似作为下一次的迭代值。
-
牛顿迭代公式
-
具体算法(无需求Hesse矩阵的逆)
4.5 共轭方向法
-
思想,均是执行精确一维搜索
-
共轭概念
4.5.1 FR共轭梯度法
通过负梯度来构造共轭向量组,相应的共轭方向法叫共轭梯度法
-
具体算法
其中 t k {t_k} tk仍是用一维搜索推导得到的。
4.6 信赖域方法(限步长方法)
信赖域的方法:自适应改变步长上界,并在使得步长上界尽可能大的同时,尽量保持二次模型与目标函数的一致程度。
-
模型问题
其中, h k {h^k} hk是步长上界,用于定义点 X k {X^k} Xk的邻域:
-
步长上界 h k {h^k} hk的选择定义
-
第k步的实际下降量
-
第k步的预测下降量
-
上面两者的比值衡量二次模型近似目标函数的程度:
评价:
-
-
具体算法
5 约束最优化方法
约束最优化问题模型:
5.1 最优性条件
5.1.1 可行下降方向相关概念
- 可行域:满足约束条件的点所构成的集合
- 可行方向:从可行域中的一个点出发,如果在一个非零向量P上存在一定步长使得线段上的点都在可行域内,这个非零向量P就是可行方向
- 下降方向:在一定步长范围内,沿着某个非零向量P上走,能使得函数值减小
- 可行下降方向:非零向量P既是可行方向又是下降方向
5.1.2 一阶必要条件(已知局部极小点且正则点)
上述五个条件又叫KKT条件,满足这个条件的点就叫KKT(K-T)点
因此,证明KKT点,即是证明存在 λ ∗ & μ ∗ {\lambda^* \& \mu^*} λ∗&μ∗满足那五个条件。
5.1.3 二阶充分条件(判断严格局部最小点)
存在 λ ∗ & μ ∗ {\lambda^* \& \mu^*} λ∗&μ∗:
利用KT点求解最优解
-
假设KT点
-
列出等式
-
解等式,得到 λ ∗ & μ ∗ {\lambda^* \& \mu^*} λ∗&μ∗,反带入等式,解出具体的KT点的值
-
此时只能得到局部极小点,若要得到严格局部最小点,则利用二阶充分条件,即判断:
或者利用二阶充分条件的定义:
5.2 惩罚函数
5.3 外点惩罚函数
-
构造惩罚函数
-
具体算法
5.4 内点惩罚函数
5.5 乘子法
感觉不会考 有点复杂
5.6 Rosen梯度投影法
-
形式
-
下降可行方向的确定(利用投影矩阵)
-
投影矩阵
-
可行方向(充要条件)
-
进而判断可行下降方向
-
-
确定步长上界
-
具体算法
感觉老师ppt上面讲的流程也不是很清楚,可以参考傅英定的最优化理论与方法的相关内容。
总结感想
- 凸函数、凸规划有很多性质,因此在现实中希望把一些问题转为凸优化问题
- 任意一个线性规划都能转化为标准形式,因此,可以转向对标准形式的研究
- 在基变量等名词理解和公式推导的过程中,让我想起线代中的列向量空间,理解有异曲同工之妙
- 单纯形法是一种理想的情况,在有现成的初始基可行解的条件下进行操作,本质就是从一个基可行解到另一个基可行解,目标是为了让目标函数值下降,直至最小
- 两阶段方法和大M法则是解决了单纯形法在没有现成的初始基可行解的情况。此时,很容易想到,人为构造辅助的初始基可行解,再利用换基操作,将基变量均换成非辅助变量即可。
- 对偶单纯形法:从一个正则解到另一个正则解,为了解决b<0的情况
- 无约束条件下的单变量函数最优化问题是解非线性优化问题
- 无约束最优化计算方法实际上就是对步长和下降方向的规则的讨论:一维搜索则是对最优步长进行讨论;精确一维搜索则是对搜索区间进行讨论;最速下降法是一维搜索的升级版,即每次都会求解相应的最优步长和下降方向;牛顿法在迭代点附近用二次函数逼近,形式简单,但需要计算Hesse矩阵,计算量大;通过负梯度来构造共轭向量组,相应的共轭方向法叫共轭梯度法;FR共轭梯度法对下降搜索方向做出了改变;信赖域的方法是基于牛顿法的函数近似思想对其进行改进,即在一定步长范围内,近似函数才能逼近,所以要动态调整步长上界。
uestc2021年最优化考试:
- 分别用外点法和内点法求最优值
- 单纯形法,对偶规划,KKT点,所有的可行(下降)方向
- FR共轭梯度投影法(除了求解相关问题,并判断它是否是局部最优解,还要分析写出它的特点和缺陷)
- Rosen梯度投影,前两问计算很简单,几乎给了所有公式,然后就是按照步骤继续算下去。
- 填空题,如果好好复习的话都不难,比如,黄金分割法、两阶段法的有解条件,方向导数等。不过最后考了一个信赖域的题目。