最优化技术——线性规划
线性规划基本概念
线性规划问题就是在一组线性约束条件下,求解目标函数最优解的问题
标准形式
线性规划问题的标准形式:
- 目标函数求最大值
- 所有约束条件均由等式表示
- 每个约束条件右端常数常为非负值
- 所有决策变量为非负值
改造方法
所有的情况与改造方法
-
目标函数求最小值则应该改为求最大值:
-
方法——添加负号:
m i n F = Σ c j x j → m a x F = − Σ c j x j min F = \Sigma c_jx_j \rightarrow maxF = -\Sigma c_jx_j minF=Σcjxj→maxF=−Σcjxj
-
-
约束条件中,某些常数项bi为负数
-
方法——在约束条件两边乘以负号
Σ a i , j x j > − 3 → − Σ a i , j x j < 3 \Sigma a_{i,j}x_j>-3 \rightarrow -\Sigma a_{i,j}x_j<3 Σai,jxj>−3→−Σai,jxj<3
-
-
约束条件不等式符号为<=
-
方法——在不等式左边加上一个非负变量(松驰变量)
Σ a i , j x j ≤ b i → Σ j = 1 m a i j x j + x m + 1 = b i \Sigma a_{i,j}x_j \leq b_i \rightarrow \Sigma_{j=1}^m a_{ij}x_j+x_{m+1}=b_i Σai,jxj≤bi→Σj=1maijxj+xm+1=bi
-
-
约束条件**不等式符号为>= **
-
在不等式左边减去一个非负变量(剩余变量)
Σ a i , j x j ≥ b i → Σ j = 1 m a i j x j − x m + 1 = b i \Sigma a_{i,j}x_j \geq b_i \rightarrow \Sigma_{j=1}^m a_{ij}x_j-x_{m+1}=b_i Σai,jxj≥bi→Σj=1maijxj−xm+1=bi
-
-
约束条件中某变量有如下限制:
-
一、某变量必须为负数,即: x j ≤ 0 x_j \leq0 xj≤0:
-
方法——设置一个新的变量
x j ′ = − x j x_j' = -x_j xj′=−xj
-
-
二、某个变量无符号限制:
-
方法——将该变量拆分成两个正数的差
V k ≥ 0 , U k ≥ 0 , X k = V k − U k V_k \geq 0, U_k \geq 0,X_k = V_k - U_k Vk≥0,Uk≥0,Xk=Vk−Uk
-
-
例题
一、
m i n F = − 3 x 1 + 4 x 2 − 2 x 3 + 5 x 4 min F = -3x_1 + 4x_2 -2x_3 + 5x_4 minF=−3x1+4x2−2x3+5x4
s . t . s.t. s.t.
4 x 1 − x 2 + 2 x 3 − x 4 = − 2 4x_1 - x_2+2x_3-x_4=-2 4x1−x2+2x3−x4=−2
x 1 + x 2 + 2 x 3 − x 4 ≤ 14 x_1+x_2+2x_3-x_4 \leq14 x1+x2+2x3−x4≤14
− 2 x 1 + 3 x 2 − x 3 + 2 x 4 ≥ 2 -2x_1+3x_2-x_3+2x_4\geq2 −2x1+3x2−x3+2x4≥2
x 1 ≥ 0 , x 2 ≤ 0 , x 3 ≥ 0 x_1\geq0,x_2\leq0,x_3\geq0 x1≥0,x2≤0,x3≥0
将上面的式子化成标准型,首先需要检查上面的式子中有哪些地方不符合我们的要求:
- 目标函数为最小值 m i n F = − 3 x 1 + 4 x 2 − 2 x 3 + 5 x 4 min F = -3x_1 + 4x_2 -2x_3 + 5x_4 minF=−3x1+4x2−2x3+5x4
- 等式约束右边为负数 4 x 1 − x 2 + 2 x 3 − x 4 = − 2 4x_1 - x_2+2x_3-x_4=-2 4x1−x2+2x3−x4=−2
- 不等式约束 x 1 + x 2 + 2 x 3 − x 4 ≤ 14 x_1+x_2+2x_3-x_4 \leq14 x1+x2+2x3−x4≤14, − 2 x 1 + 3 x 2 − x 3 + 2 x 4 ≥ 2 -2x_1+3x_2-x_3+2x_4\geq2 −2x1+3x2−x3+2x4≥2
- 约束中有小于零的 x 1 ≥ 0 , x 2 ≤ 0 , x 3 ≥ 0 x_1\geq0,x_2\leq0,x_3\geq0 x1≥0,x2≤0,x3≥0
额,经过整理我们发现。。。都不符合,所以需要一条一条的改:
改前 | 改后 |
---|---|
m i n F = − 3 x 1 + 4 x 2 − 2 x 3 + 5 x 4 min F = -3x_1 + 4x_2 -2x_3 + 5x_4 minF=−3x1+4x2−2x3+5x4 | m a x S = − m i n F = 3 x 1 − 4 x 2 + 2 x 3 − 5 x 4 maxS=-minF = 3x_1-4x_2+2x_3-5x_4 maxS=−minF=3x1−4x2+2x3−5x4 |
4 x 1 − x 2 + 2 x 3 − x 4 = − 2 4x_1 - x_2+2x_3-x_4=-2 4x1−x2+2x3−x4=−2 | − 4 x 1 + x 2 − 2 x 3 + x 4 = 2 -4x_1+x_2-2x_3+x_4 = 2 −4x1+x2−2x3+x4=2 |
x 1 + x 2 + 2 x 3 − x 4 ≤ 14 x_1+x_2+2x_3-x_4 \leq14 x1+x2+2x3−x4≤14 | x 1 + x 2 + 2 x 3 − x 4 + x 5 = 14 x_1+x_2+2x_3-x_4+x_5 =14 x1+x2+2x3−x4+x5=14 |
− 2 x 1 + 3 x 2 − x 3 + 2 x 4 ≥ 2 -2x_1+3x_2-x_3+2x_4\geq2 −2x1+3x2−x3+2x4≥2 | − 2 x 1 + 3 x 2 − x 3 + 2 x 4 − x 6 = 2 -2x_1+3x_2-x_3+2x_4 -x_6= 2 −2x1+3x2−x3+2x4−x6=2 |
x 2 ≤ 0 x_2\leq0 x2≤0 | 设 x 7 ≥ 0 , x 7 = − x 2 x_7 \geq 0 , x_7 = - x_2 x7≥0,x7=−x2 |
x 4 x_4 x4无约束 | 设 x 8 , x 9 ≥ 0 , x 4 = x 8 − x 9 x_8,x_9\geq0,x_4 = x_8-x_9 x8,x9≥0,x4=x8−x9 |
整理之后得到:
m a x S = − m i n F = 3 x 1 + 4 x 7 + 2 x 3 − 5 x 8 + 5 x 9 maxS=-minF = 3x_1+4x_7+2x_3-5x_8+5x_9 maxS=−minF=3x1+4x7+2x3−5x8+5x9
s . t . s.t. s.t.
− 4 x 1 − x 7 − 2 x 3 + x 8 − x 9 = 2 -4x_1-x_7-2x_3+x_8-x_9 = 2 −4x1−x7−2x3+x8−x9=2
x 1 − x 7 + 2 x 3 − x 8 + x 9 + x 5 = 14 x_1-x_7+2x_3-x_8+x_9+x_5 =14 x1−x7+2x3−x8+x9+x5=14
− 2 x 1 − 3 x 7 − x 3 + 2 x 8 − 2 x 9 − x 6 = 2 -2x_1-3x_7-x_3+2x_8-2x_9 - x_6= 2 −2x1−3x7−x3+2x8−2x9−x6=2
x i ≥ 0 , j = 1 , 3 , 5 , 6 , 7 , 8 , 9 x_i \geq 0,j=1,3,5,6,7,8,9 xi≥0,j=1,3,5,6,7,8,9
概念之凸集
- 凸集:如果集合C中任意两点 X 1 , X 2 X_1,X_2 X1,X2,其连线上的所有点也都是集合C中的点,称C为凸集。
- 有限个凸集的交集仍然是凸集
- 顶点:如果凸集C中不存在任何两个不同的点 X 1 , X 2 X_1,X_2 X1,X2,使 X X X成为这两个点连线上的一个点。
线性规划的一些定义
-
定义一:凡是满足 A x = b Ax=b Ax=b及 x ≥ 0 x\geq0 x≥0的解 x = ( x 1 , x 2 , . . , x n ) T x = (x_1,x_2,..,x_n)^T x=(x1,x2,..,xn)T称为线性规划问题的可行解。同时满足 m a x Z = c x max Z = cx maxZ=cx的可行解称为最优解
-
定义二:设线性规划约束方程组的系数矩阵 A m ∗ n A_{m*n} Am∗n的秩为 m m m,则 A A A中某 m m m列组成的任一个 m m m阶可逆阵 B B B称为该线性规划问题的一个基矩阵,简称基。若记 B = ( p 1 , p 2 , … , p m ) B=(p_1,p_2,…,p_m) B=(p1,p2,…,pm),则称 p k ( k = 1 , 2 , … m ) p_k(k=1,2,…m) pk(k=1,2,…m)为基B中的一个基向量。则A中其余n-m个列向量为非基向量。
感觉这里很象最大线性无关组。
-
定义3:当 A x = b Ax=b Ax=b式中A确定了一个基B后,与基向量 p k p_k pk相对应的决策变量 x k x_k xk称为关于基B的一个基变量,而与非基向量所对应的决策变量称为非基变量。
-
定义4:设 B = ( p k 1 , p k 2 , … , p k m ) B=(p_{k_1},p_{k_2},…,p_{k_m}) B=(pk1,pk2,…,pkm)是A中的一个基,对应的基变量为 x k 1 , x k 2 , … , x k m x_{k_1},x_{k_2},…,x_{k_m} xk1,xk2,…,xkm,我们称非基变量的取值均为零且满足约束条件的一个解x,为关于基B的一个基本解。
解的确定
基本解的确定
B为一个基矩阵,
X
B
X_B
XB为对应的基变量,
N
N
N为非基矩阵,
X
N
X_N
XN为对应的非基变量,那么
A
x
=
b
Ax=b
Ax=b可以写成:
B
X
B
+
N
X
N
=
b
BX_B+NX_N=b
BXB+NXN=b
由这个式子可以推出:
X
B
=
B
−
1
b
−
B
−
1
N
X
N
X_B = B^{-1}b-B^{-1}NX_N
XB=B−1b−B−1NXN
同时,根据基本解的定义,非基变量的解都是0,所以,最终的解是:
$$
\left[
\begin{matrix}
X_B\
X_N
\end{matrix}
\right]
\left[
\begin{matrix}
B^{-1}b\
0
\end{matrix}
\right]
$$
这样的解也被称为关于基B的基本解,同时有定义五:
- 满足非负条件 x ≥ 0 x\geq0 x≥0的基本解称为基本可行解
例题
求下列方程组的一个基本解、基本可行解
x 1 + 2 x 2 ≤ 8 x_1 + 2x_2 \leq 8 x1+2x2≤8
x 2 ≤ 2 x_2\leq 2 x2≤2
解:
-
首先将他化成标准形式
x 1 + 2 x 2 + x 3 = 8 x_1+2x_2 +x_3 = 8 x1+2x2+x3=8
x 2 + x 4 = 2 x_2+x_4 = 2 x2+x4=2
-
根据上方方程得到系数矩阵:
A = [ 1 3 1 0 0 1 0 1 ] A=\left[\begin{matrix}1 & 3 & 1 & 0\\0 & 1 & 0 & 1 \end{matrix} \right] A=[10311001]
-
取前两个列向量作为基向量,后两个就是非基向量
B = [ 1 2 0 1 ] B = \left[ \begin{matrix}1 & 2 \\ 0 &1 \end{matrix} \right] B=[1021]
-
令非基变量 x 3 , x 4 = 0 x_3, x_4 = 0 x3,x4=0,可以得到基本解
( 4 , 2 , 0 , 0 ) T (4,2,0,0)^T (4,2,0,0)T
图解法
假设解以下问题
我们可以用图解法的方法解决(初中生就会的那种)
关于图解法的一些定理:
- 定理一:若线性规划问题存在可行解,则该问题的可行域一定是凸集
- 定理二:线性规划问题的基本可行解X对应可行域(凸集)的顶点
- **定理三:**若问题存在最优解,一定存在一个基本可行解是最优解
看到定理二忽然恍然大悟,原来我初中铤而走险,每次都只试交点的方法是有科学依据的(逃
定理三也非常有意义,因为它直接给我们提供了一种解决优化问题的方法:找出所有基本可行解然后再一个一个比较,直接得到最大的,但是可惜的是,这样的做法时间复杂度过高,电脑有点遭不住。