本课程提供对线性优化theory和algorithms的基本理解,包含mathematical analysis,theorem proving,algorithm design和numerical methods。
本课程不涉及如何建立线性规划模型,该部分应该在introduction to operation research中。本课程不涉及如何使用Excel Spreadsheets, SAS OPT, MATLAB, LINGO, CPLEX或其它求解器。
1.Matrix Theory
2.Linear Algebra
3.Introduction to OR
1.Introduction to LP
2.Geometric Interpretation of LP
3.Simplex Method
4.Duality and Sensitivity Analysis
5.Interior Point Method
6.Related Topics
Shu-Cherng Fang and Sarat Puthenpura, "Linear Optimization and Extensions: Theory and Algorithms." Prentice Hall 1993.
Optimize a linear objective function of decision variables subject to a set of linear constraints.
例
\[\begin{aligned} \text{Minimize} \quad & x_1 - 2 x_2 \\ \text{subject to} \quad & x_1 + x_2 \le 40 & 2 x_1 + x_2 \le 60 \\ & x_1, x_2 \ge 0 . \end{aligned}\]一般形式
\[\begin{aligned} \text{Minimize (Maximize)} \quad & \mathbf{c}^T \mathbf{x} \\ \text{s.t.} \quad & \mathbf{Ax} = \mathbf{b} \\ & \mathbf{x} \ge 0 . \end{aligned}\]其中,\(\mathbf{c} \in R^n\),\(\mathbf{b} \in R^m\),\(\mathbf{A} \in R^{m \times n}\),约束关系也可以为不等式,如\(\mathbf{Ax} \ge \mathbf{bx}\)或\(\mathbf{Ax} \le \mathbf{bx}\)。
Nonlinear Programming 非线性规划
Network Flows 网络流
Integer Programming 整数规划
Conic Programming 锥优化
Semidefinite Programming 半正定优化
Robust Optimization 鲁棒优化
参考:Operations Research, Vol. 50, No. 1, 2002
例-人力分配
\[\begin{aligned} \text{Minimize} \quad & \sum_{i=1}^m \sum_{j=1}^n c_{ij} x_{ij} \\ \text{s.t.} \quad & \sum_{i=1}^m x_{ij} \ge b_j, j=1,\ldots,n \\ & \sum_{j=1}^n x_{ij} \le a_i, j=1,\ldots,m \\ & l_{ij} \le x_{ij} \le u_{ij}, \forall i,j . \end{aligned}\]其中,\(x_{ij}\)为消耗在课题\(j\)上技能\(i\)的人力。
— linear constraints将可行域约束成具有有限个vertices(顶点)的convex polyhedral set。
— linear objective函数为每个定值提供一个linear contour。
Fundamental Theorem of LP:对于一个线性规划问题,如果可行域不为空,那么它的optimum是无限的或在可行域内至少有一个顶点。
枚举法——找到所有的顶点并比较选出最优的,但当\(C(n,m) = \frac{n!}{m!(n-m)!}\)很大时不可行。
Simplex Method
基本思想:(沿边界行走)
Is Simplex Method Good?
(1)一般来说,单纯形法很好用。
(2)在最差的情况下,Klee和Minty (1971) 表明该方法需要遍历\(2^n-1\)个顶点。
(3)exponential-time algorithm问题
Polynomial Time Algorithm: 如果一个算法对任何实例I所采取的步数都被一个多项式约束在I的大小内。
Exponential-time Algorithm: 如果一个算法不能在多项式时间内完成运算,那么它就是在指数时间内的。
Is there a polynomial-time algorithm for LP?
Yes! L. G. khachian于1979年提出了Ellipsoid Method(椭球法)。
基本思想
LP的解的特征为最优条件
\[(*) \quad \left \{ \begin{aligned} & \mathbf{c}^T \mathbf{x} - \mathbf{b}^T \mathbf{w} = 0 \\ & \mathbf{Ax} \le \mathbf{b} , \ \mathbf{x} \ge 0 \\ & \mathbf{A}^T \mathbf{w} \ge \mathbf{c} , \ \mathbf{w} \ge 0 \\ \end{aligned} \right.\]考虑求解\(\mathbf{Mx} \lt \mathbf{d} \quad \mathbf{M} : m \times n . \ \mathbf{x} \in \mathcal{R}^n , \ \mathbf{d} \in \mathcal{R}^m\)
(1)如果\(\frac { V ol(E^{k+1}) }{ V ol(E^{k}) } \le e^{- \frac{1}{2} (n+1)}\),那么椭球法会在多项式时间内结束。
(2)实际应用时,不如单纯形法,其复杂度\(= O(n^4 L2)\)
Is there a good polynomial-time algorithm for LP?
Yes! Karmarkar于1984年提出了Interior Point Method(内点法)。
基本思想:(沿内点行走)
Is Interior Point Method Good?
(1)内点法是复杂度为\(O(n^3 L)\)的多项式时间算法。
(2)对于大规模的LP求解性能比单纯形法好。
(3)53 Netlib experiments
结合内点法发展用于解决实际应用中大规模的LP混合算法,从以下方面进行探索:
— 特殊结构
— sparsity(稀疏度)
— decomposition(分解)
— 并行运算