线性规划与整数规划小结

线性规划

1 线性规划问题 以及可行域与基本可行解
(1)一般形式 :
m i n Z minZ minZ = C 1 C_1 C1 X 1 X_1 X1+ C 2 C_2 C2 X 2 X_2 X2+ C 3 C_3 C3 X 3 X_3 X3+…+ C n C_n Cn X n X_n Xn
a 11 a_{11} a11 x 1 x_1 x1+ a 12 a_{12} a12 x 2 x_2 x2+ a 13 a_{13} a13 x 3 x_3 x3+…+ a 1 n a_{1n} a1n x n x_n xn= b 1 b1 b1

a m 1 a_{m1} am1 x 1 x_1 x1+ a m 2 a_{m2} am2 x 2 x_2 x2+…+ a m n a_{mn} amn x n x_n xn>= b m bm bm
x j x_{j} xj>=0 , j j j=1,2,3… q q q, x j x_{j} xj无限制 , j j j= q q q…n

(2)标准型是约束方程为等号,所有的变量取非负数。对于非负的约束可以通 过引入剩余变量或者松弛变量变为等式,对于无限制的变量可以转化为两个正的变量相减的形式。将目标函数转化为 m i n min min 的形式。

(3) 可行解:满足所有的约束条件的向量( x 1 x 2 . . . x n x_{1} x_{2}...x_{n} x1x2...xn T ^T T
可行域 :可行解的集合
最优解 可行域中目标函数最优的可行解
(4)基本可行解与基本定理
分块 ,分为满秩矩阵B ,以及矩阵N ,由AX =b 得到B x B x_{B} xB+N x N x_{N} xN=b
x B x_{B} xB= B − 1 b − B^{-1}b- B1b B − 1 N x N B^{-1}Nx_{N} B1NxN
x N = 0 x_{N}=0 xN=0 ,得到了一组解。
基与基向量:设B是秩为m的约束矩阵的A的一个m阶满秩子方阵,B中的列向量称为基向量
基变量 基向量对应的变量称为基变量,同理称为非基变量
基本可行解 当 x B x_{B} xB>=0 时为基本可行解
(最优解一定是可行解,但不一定是基本可行解,也不一定是基本解)
总结
如果基本可行解的个数有限,可以在基本可行解中寻找最优解

2单纯形表法
主要的思路: 先寻找一个基本可行解,判断是不是最优解,如果不是就寻找一个更好的可行解,如此迭代直到找到最优解或者是问题无界。
首先寻找一个基本可行解:
x B x_{B} xB+ B − 1 N x N = B − 1 b B^{-1}Nx_{N}=B^{-1}b B1NxN=B1b
c T x = c B T x B + c N T x N c^{T}x=c^{T}_{B}x_{B}+c^{T}_{N}x_{N} cTx=cBTxB+cNTxN (1)
令B对应的检验数为0,对应的目标函数可以写为 c B T B − 1 b − γ T c_{B}^{T}B^{-1}b-\gamma^{T} cBTB1bγT
其中 γ T = ( γ B T , γ N T ) \gamma^{T}=(\gamma^{T}_{B},\gamma_{N}^{T}) γT=(γBT,γNT)
从以上的式子中看出当 γ N T \gamma^{T}_{N} γNT中的系数是小于0 是最优的。
所以根据第一个知识点的回顾,首先将问题转化为标准型的问题,将目标函数中基变量的系数变为0,找到一个基本可行解之后判断是不是最优的,方法很简单看目标函数中的非基变量的系数是不是负的,如果不是那么进行迭代。最终得到最优解,或者是无界。
上述的证明中其实就包含了主要的思路。

3两阶段法
当转化为典式后,基变量不好确定时候可以使用添加人工变量的方式找到这个秩。
引入辅助问题 m i n min min g = ∑ i = n + 1 n + m x i g=\sum_{i=n+1}^{n+m}x_{i} g=i=n+1n+mxi
s . t . { A x + x a = b x ≥ 0 x a ≥ 0 (1) s.t.\begin{cases} Ax+x_{a}=b \\ x \geq 0 \quad x_{a}\geq0 \end{cases}\tag{1} s.t.{ Ax+xa=bx0xa0(1)
对于辅助问题也是有要求最优值的,先给出辅助问题与原问题之间的关系
给出
如果原问题是最优解的话,辅助问题是的最优值是0,反之也是成立的。
求解辅助问题 l p lp lp会得到以下的情况:
(1)问题 g g g的最优解是0,并且人工变量是 非基变量,那么对应到原问题就是有最优解的。
(2)辅助问题的最优解>0 原问题是没有基本可行解的,
(3)辅助问题Lp的最优解等于0,但是存在人工变量是基变量,这种需要进一步的判断。
此时假设人工变量 x r x_{r} xr是基变量( n + 1 < r < n + m n+1<r<n+m n+1<r<n+m),只需要考察前n个元素即可。对应的这一行中的元素要么是都是0,要么不全是0, 如果全部是0,那么前n 元素对应的秩不再是m,是m-1,此时可以直接去掉这一行的约束,(系数都是0,这个方程是没有原问题的约束的),如果是不全为0 ,只能是在n 个元素中找个变量成为基变量,此时在对应的行找到一个元素,记为 a r s a_{rs} ars ,这个元素是可以小于0的,是因为对应的 b r b_{r} br是必然的为0,现在 a r s a_{rs} ars作为基变量出现也会是0,综上使用这两种方法终于会找到基本可行解。但是对于原问题不一定是最优解,可能需要使用单纯形表法进一步求解。

4对偶性以及对偶单纯形法
个人还是比较喜欢对偶性法的,根据线性代数的知识对于一个n*m阶的矩阵是可以找到满秩方阵的,但是由于 b b b是具有限制的,引入了两阶段法,在这个部分中又引入了对偶形法。
首先引入对偶问题的形式,
m i n c T x minc^{T}x mincTx

s . t . { A x = b x ≥ 0 (1) s.t.\begin{cases} Ax=b \\ x \geq 0 \quad \end{cases}\tag{1} s.t.{ Ax=bx0(1)

m a x w T b max\quad w^{T}b maxwTb
s . t . { w T b ≤ c T w 无 限 制 (2) s.t.\begin{cases} w^{T}b\leq c^{T} \\ w 无限制 \end{cases}\tag{2} s.t.{ wTbcTw(2)
直接给出结论:通过一个问题的最优解可以得到另一个问题的最优解。
给定一个原问题,可以得到对偶问题。
(1)由约束看变量,约束的符号是 ≥ \geq 对偶问题的符号是 ≤ \leq ,约束的符号是 ≤ \leq ,对偶问题 的符号是 ≥ \geq ,是等于的话是严格的无限制。
(2)由变量看约束,符号相反
(3) b b b c c c , c c c b b b
原问题与对偶问题的互补松紧性:
(1)如果一个问题的非负变量是正的,那么另外一个的约束 是 = = =
(2) 一个问题的约束是严格的不等式,那么是另一个的变量是等于0
类比单纯形表的方法,得到对偶形法。
对偶单纯形表法是保证检验数为负, b b b由负到正的过程迭代,在选择出基的向量时候,如果 b r b_{r} br对应的 a r j a_{rj} arj都是 ≥ 0 \geq0 0 ,那么没有可行解。

5灵敏度分析
这里这是考虑改变 c , b c,b c,b
改变c 需要考虑是不是基变量
对于非基的情况较为简单,因为不会涉及到最优解,检验数是变为原来的-新的,之后继续求解。
当是基变量时候: 将单纯形表中对应的第 l l l个约束乘以 c , c^, c,- c c c 加到目标函数中,再令对应的元素为0,就可以得到新的单纯形表,再进一步求解。
改变右端向量 b b b的时候,那么最优解要变了。需要先求解以下 B B B 的逆矩阵,由上面的内容可以看出是和检验数没有关系的。计算 B − 1 b ′ B^{-1}b^{'} B1b, c B T B − 1 b ′ c_{B}^{T}B^{-1}b^{'} cBTB1b ,此时可以使用对偶形法求解问题。

整数规划

引言:
整数规划是对线性规划的特殊的情况,顾名思义,是要求基本可行解都为正整数。有两种方法是合适的。
(1)Gomory 割平面法(以下简称割平面法)
可以这样说整数规划的最优值是小于等于线性规划最优值的,如果线性规划是有最优值的。同理如果线性规划是没有可行解的,那么整数规划是没有可行解的。因此完全可以先求对应的线性规划。
假设 b j b_{j} bj不是整数 对应的约束是 X B ( l ) + ∑ a i j x j = b j X_{B(l)}+\sum a_{ij}x_{j}=b_{j} XB(l)+aijxj=bj
通过分离整数部分与小数部分得到新的约束,使用对偶单纯形法求解。

(2)分枝定界法
这种方法在求解混整数规划尤为好用。先找最优解,根据是整数将可行域进行划分。假设是p1,p2 求解p1,p2的最优解,重复上面的操作。

小结:
最简单还是图解法,如果直接的图解法困难,尝试对偶的,如果还不行就老老实实计算就可以了。

猜你喜欢

转载自blog.csdn.net/weixin_44724691/article/details/105511515