优化理论(一)线性优化、组合优化与网络流问题

本节主要学习线性优化问题。线性优化是最简单的一种优化问题。在我们系统地学习凸优化之前,先回顾下线性优化的知识。虽然最优化可以追溯到十分古老的极值问题,但是它成为一门独立的学科是在本世纪40年代末,是在求解一般线性规划问题的单纯形法提出之后。

线性优化问题(Linear Optimization Problems)

目标函数是线性的且等式约束和不等式约束都是线性的:

minimize cTx m i n i m i z e   c T x

subject to Gxh s u b j e c t   t o   G x ⪯ h

Ax=b A x = b

标准形式

minimize cTx m i n i m i z e   c T x

subject to x0 s u b j e c t   t o   x ⪰ 0

Ax=b A x = b

通过引入松弛变量(slack varibles),把不等式约束转化为等式约束,同时把自变量表示为差值的形式:

优化理论(一)线性优化、组合优化与网络流问题_第1张图片

引入标准形式的一个显著的好处,是可以很方便的判断解是否满足约束。

极点(Extreme Points)

极点是可行域中不能表示为可行域中其他任意两点的凸组合的点。

线性规划问题的可行域是一个多面体,易正明多面体是凸集。因为目标函数是线性的,线性函数是单调的,所以最优可行解一定在极点上。

优化理论(一)线性优化、组合优化与网络流问题_第2张图片

算法(Algorithm)

  • 单纯形法(Simplex Method)
  • 内点法(Interior-point Method)
  • 椭圆法(Ellipsoid Method)
  • 割平面法(Cutting-plane Method)

先说单纯形法

单纯形法(Simplex Method)

因为线性规划问题的解的个数是有限的,所以我们只需要逐个验证极点是否满足约束条件就可以了。

单纯形法的思想是:在所有极点中寻找最优解的时候,用一种最聪明的方式以避免遍历所有极点。该方法非常有效,但是仅限于线性优化问题。

单纯形法的步骤如下:

  • 找到一个起始极点
  • 移动到更优的极点
  • 判断当前解是否最优

组合优化(Combinatorial Optimization)

线性优化问题若要求每个解都是整数,就是整数线性优化问题,通常很难求解。

优化理论(一)线性优化、组合优化与网络流问题_第3张图片

不过,在特殊的情况下,整数线性优化问题可以退化成它的松弛版本

优化理论(一)线性优化、组合优化与网络流问题_第4张图片

这要求系数矩阵A是完全幺模矩阵(totally unimodular),并且b,I,u都是整数。

下面是完全幺模矩阵和幺模矩阵的定义

优化理论(一)线性优化、组合优化与网络流问题_第5张图片
优化理论(一)线性优化、组合优化与网络流问题_第6张图片

最短路径问题

先说图的表达方式

优化理论(一)线性优化、组合优化与网络流问题_第7张图片

这里采用图的关联矩阵的表示。最短路径问题的优化形式是

优化理论(一)线性优化、组合优化与网络流问题_第8张图片

应用:网络流问题

网络单纯形(Network Simplex Method)

。。。。

线性约束非线性优化(Linear Constrained Nonlinear Optimization)

与线性优化不同,最优解不一定在顶点上。解决方法是:求出每一个驻点,选择最优的那个。

一个连续函数的驻点是指该函数的一阶导数为0的点

你可能感兴趣的:(优化理论)