本节主要学习线性优化问题。线性优化是最简单的一种优化问题。在我们系统地学习凸优化之前,先回顾下线性优化的知识。虽然最优化可以追溯到十分古老的极值问题,但是它成为一门独立的学科是在本世纪40年代末,是在求解一般线性规划问题的单纯形法提出之后。
线性优化问题(Linear Optimization Problems)
目标函数是线性的且等式约束和不等式约束都是线性的:
标准形式
通过引入松弛变量(slack varibles),把不等式约束转化为等式约束,同时把自变量表示为差值的形式:
引入标准形式的一个显著的好处,是可以很方便的判断解是否满足约束。
极点(Extreme Points)
极点是可行域中不能表示为可行域中其他任意两点的凸组合的点。
线性规划问题的可行域是一个多面体,易正明多面体是凸集。因为目标函数是线性的,线性函数是单调的,所以最优可行解一定在极点上。
算法(Algorithm)
- 单纯形法(Simplex Method)
- 内点法(Interior-point Method)
- 椭圆法(Ellipsoid Method)
- 割平面法(Cutting-plane Method)
先说单纯形法
单纯形法(Simplex Method)
因为线性规划问题的解的个数是有限的,所以我们只需要逐个验证极点是否满足约束条件就可以了。
单纯形法的思想是:在所有极点中寻找最优解的时候,用一种最聪明的方式以避免遍历所有极点。该方法非常有效,但是仅限于线性优化问题。
单纯形法的步骤如下:
- 找到一个起始极点
- 移动到更优的极点
- 判断当前解是否最优
组合优化(Combinatorial Optimization)
线性优化问题若要求每个解都是整数,就是整数线性优化问题,通常很难求解。
不过,在特殊的情况下,整数线性优化问题可以退化成它的松弛版本
这要求系数矩阵A是完全幺模矩阵(totally unimodular),并且b,I,u都是整数。
下面是完全幺模矩阵和幺模矩阵的定义
最短路径问题
先说图的表达方式
这里采用图的关联矩阵的表示。最短路径问题的优化形式是
应用:网络流问题
网络单纯形(Network Simplex Method)
。。。。
线性约束非线性优化(Linear Constrained Nonlinear Optimization)
与线性优化不同,最优解不一定在顶点上。解决方法是:求出每一个驻点,选择最优的那个。
一个连续函数的驻点是指该函数的一阶导数为0的点