在最优化问题中有一类问题被称作线性规划问题,属于有约束下的优化问题,线性规划是在线性约束条件下(等式或不等式)求解线性目标函数极值的问题。
线性规划问题的标准模型
线性规划的标准模型为
minimizecTxsubject to Ax=bx≥0
所有的线准型,例如某线性规划问题具有以下形式,与标准型不同的是,该形式用了不等式约束
minimizecTxsubject to Ax≥bx≥0
可以通过引入剩余变量y的方式,将以上问题转化为标准型
minimizecTxsubject to Ax−Imy=[A−Im][xy]=bx≥0,y≥0
如果约束条件具有以下形式:
Ax≤bx≥0
可以通过引入剩余变量y,将约束条件转换为
Ax+Imy=[AIm][xy]=bx≥0,y≥0
线性规划问题的基本解
上文提到,任何线性规划问题都可以转换为标准型,即约束条件为线性等式,决策变量非负。
考虑方程Ax=b,其中rank(A)=m,为了求解这类问题,通常从矩阵A的一部分列向量入手。为方便起见,可以将A中的列向量重新进行排序,将感兴趣的列向量排在前列。具体来说,从A中选取 m 个线性无关的向量组成方阵B,对A的列向量重新排序,可以使B中的列向量位于A的前 m 列,即A可以写为分块矩阵A=[B,D],其中D是m∗(n−m)矩阵,它由A中剩余的列向量组成。矩阵B是非奇异的,因此求解方程BxB=b可以得到唯一解xB=B−1b。令x为 n 维向量,它的前 m 个元素等于xB,其余元素为零,即x=[sBT,0T]T,则x是方程Ax=b的一个解。
[xBT,0T]T是Ax=b在B下的基本解,向量xB中的元素称为基变量,B中的列向量称为基本列向量。
退化的基本解--->基本解中的某些基变量为 0
可行解--->满足Ax=0,x≥0的向量x
基本可行解--->某个可行解也是基本解
退化的基本可行解--->某个基本可行解是退化的基本解
在求解线性规划问题时,仅需要考虑基本可行解,因为目标函数的最优解如果存在,那么一定是在某个基本可行解上得到。
线性规划基本定理 1.如果存在可行解,那么一定存在基本可行解 2.如果存在最优可行解,那么一定存在最优基本可行解
线性规划基本定理将线性规划问题的求解转换为在有限数量的基本可行解上进行搜索,这极大地缩减了求解的工作量。
从几何的角度来看,标准线性规划中的约束Ax=b,x≥0中的点集是凸集,即对于任何x,y∈Θ和实数α,0<α<1,有αx+(1−α)y∈Θ,对于凸集内的点x,如果在Θ中找不到两个不同的点x1和x2使x=αx1+(1−α)x2成立则称x是极点,可以通过证明得到,约束集的极点与基本可行解是等价的。
从某个极点转移到另一个相邻极点的算法就是单纯性法求解线性规划问题的思路,后面的文章将对单纯形法以及对偶等概念进行详细介绍。