本章目录
1. 基本概念
1.1 凸集与极点
若集合
C
C
C满足:
∀
x
,
y
∈
C
,
λ
∈
[
0
,
1
]
\forall\boldsymbol{x},\boldsymbol{y}\in C,\lambda\in[0,1]
∀x,y∈C,λ∈[0,1], 都有
λ
x
+
(
1
−
λ
)
y
∈
C
\lambda \boldsymbol{x}+(1-\lambda)\boldsymbol{y}\in C
λx+(1−λ)y∈C, 则称集合
C
C
C为凸集。直观来讲, 如果集合
C
C
C中任意两点的连线也在集合
C
C
C中, 那么集合
C
C
C就是凸集, 图1.1展示了凸集和非凸集的一个例子。
设 C C C是一个凸集, x ∈ C \boldsymbol{x}\in C x∈C, 若 ∀ y , z ∈ C , λ ∈ ( 0 , 1 ) , y ≠ z \forall\boldsymbol{y},\boldsymbol{z}\in C,\lambda\in (0,1),\boldsymbol{y}\ne\boldsymbol{z} ∀y,z∈C,λ∈(0,1),y=z, 都有 λ y + ( 1 − λ ) z ≠ x \lambda\boldsymbol{y}+(1-\lambda)\boldsymbol{z}\ne\boldsymbol{x} λy+(1−λ)z=x, 则称 x \boldsymbol{x} x为 C C C的一个极点或顶点。直观来讲,若 x \boldsymbol{x} x为 C C C的极点, 那么 x \boldsymbol{x} x不能由 C C C中任何两个不同的点线性组合得到。
1.2 可行解、基本解、基本可行解
可行解:满足约束条件的解称为可行解;
基本解:令非基变量为
0
0
0, 得到的解称为基本解;
基本可行解:可行的基本解称为基本可行解。
2. 线性规划的标准形式
任何线性规划问题都有标准形式, 线性规划的标准形式可以写为 min z = c 1 x 1 + c 2 x 2 + ⋯ + c n x n s . t . a 11 x 1 + a 12 x 2 + ⋯ + a 1 n x n = b 1 a 21 x 1 + a 22 x 2 + ⋯ + a 2 n x n = b 2 ⋮ a m 1 x 1 + a m 2 x 2 + ⋯ + a m n x n = b m x j ≥ 0 , j = 1 , 2 , ⋯ , n \begin{matrix} \min & z=c_1x_1+c_2x_2+\cdots+c_nx_n \\ \rm s.t.& a_{11}x_1+a_{12}x_2+\cdots+a_{1n}x_n=b_1 \\ & a_{21}x_1+a_{22}x_2+\cdots+a_{2n}x_n=b_2 \\ & \vdots \\ & a_{m1}x_1+a_{m2}x_2+\cdots+a_{mn}x_n=b_m\\ & x_j\ge0,j=1,2,\cdots,n \end{matrix} mins.t.z=c1x1+c2x2+⋯+cnxna11x1+a12x2+⋯+a1nxn=b1a21x1+a22x2+⋯+a2nxn=b2⋮am1x1+am2x2+⋯+amnxn=bmxj≥0,j=1,2,⋯,n把非标准形式的线性规划问题改写为标准形式的步骤如下:
- 如果目标为极大化, 则对目标函数取负使其变为极小化, 即 max f ( x ) ⇔ min − f ( x ) \max f(\boldsymbol{x})\Leftrightarrow\min -f(\boldsymbol{x}) maxf(x)⇔min−f(x);
- 如果约束的右端项为负数, 则对这条约束左右两边同时取负, 使右端项变为非负数;
- 如果决策变量 x j x_j xj没有非负要求, 则令 x j = x j 1 − x j 2 x_j=x_{j1}-x_{j2} xj=xj1−xj2, 其中 x j 1 , x j 2 ≥ 0 x_{j1},x_{j2}\ge0 xj1,xj2≥0;
- 如果决策变量 x j x_j xj是非正约束, 即 x j ≤ 0 x_j\le0 xj≤0, 则令 x j ′ = − x j ≥ 0 x_j'=-x_j\ge0 xj′=−xj≥0;
- 如果存在不等式约束 a i 1 x 1 + a i 2 x 2 + ⋯ + a i n x n ≥ b i a_{i1}x_1+a_{i2}x_2+\cdots+a_{in}x_n\ge b_i ai1x1+ai2x2+⋯+ainxn≥bi, 则添加变量 y i ≥ 0 y_i\ge0 yi≥0, 约束就改写为 a i 1 x 1 + a i 2 x 2 + ⋯ + a i n x n − y i = b i a_{i1}x_1+a_{i2}x_2+\cdots+a_{in}x_n-y_i= b_i ai1x1+ai2x2+⋯+ainxn−yi=bi;
- 如果存在不等式约束 a i 1 x 1 + a i 2 x 2 + ⋯ + a i n x n ≤ b i a_{i1}x_1+a_{i2}x_2+\cdots+a_{in}x_n\le b_i ai1x1+ai2x2+⋯+ainxn≤bi, 则添加变量 y i ≥ 0 y_i\ge0 yi≥0, 约束就改写为 a i 1 x 1 + a i 2 x 2 + ⋯ + a i n x n + y i = b i a_{i1}x_1+a_{i2}x_2+\cdots+a_{in}x_n+y_i= b_i ai1x1+ai2x2+⋯+ainxn+yi=bi。
标准的线性规划问题可以写为矩阵形式 min z = c T x s . t . A x = b x ≥ 0 \begin{matrix} \min & z=\boldsymbol{c}^{\rm T}\boldsymbol{x} \\ \rm s.t.& \boldsymbol{A}\boldsymbol{x}=\boldsymbol{b}\\ & \boldsymbol{x}\ge\bold{0} \end{matrix} mins.t.z=cTxAx=bx≥0
3. 单纯形方法
使用单纯形方法求解线性规划问题的一般步骤如下:
- 把问题转换为标准形式
- 选取一组基, 列出单纯形表
- 若检验数全为非负数, 则结束
- 选择检验数最小的列对应的变量为进基变量
- 选择 b i b_i bi与系数比值为正数且最小的行对应的变量作为离基变量
- 把基变量对应的矩阵化为单位矩阵, 回第3步
【例1】求解以下线性规划问题
max
4
x
1
+
5
x
2
+
3
x
3
s
.
t
.
8
x
1
+
2
x
2
+
5
x
3
≤
400
4
x
1
+
6
x
2
+
5
x
3
≤
320
7
x
1
+
3
x
2
+
4
x
3
≤
500
x
i
≥
0
,
i
=
1
,
2
,
3
\begin{matrix} \max & 4x_1+5x_2+3x_3 \\ \rm s.t.& 8x_1+2x_2+5x_3\le400 \\ & 4x_1+6x_2+5x_3\le320 \\ & 7x_1+3x_2+4x_3\le500\\ & x_i\ge0,i=1,2,3 \end{matrix}
maxs.t.4x1+5x2+3x38x1+2x2+5x3≤4004x1+6x2+5x3≤3207x1+3x2+4x3≤500xi≥0,i=1,2,3
【解】首先把问题转换为标准形式
min
−
4
x
1
−
5
x
2
−
3
x
3
s
.
t
.
8
x
1
+
2
x
2
+
5
x
3
+
x
4
=
400
4
x
1
+
6
x
2
+
5
x
3
+
x
5
=
320
7
x
1
+
3
x
2
+
4
x
3
+
x
6
=
500
x
i
≥
0
,
i
=
1
,
2
,
⋯
,
6
\begin{matrix} \min & -4x_1-5x_2-3x_3 \\ \rm s.t.& 8x_1+2x_2+5x_3+x_4=400 \\ & 4x_1+6x_2+5x_3+x_5=320 \\ & 7x_1+3x_2+4x_3+x_6=500\\ & x_i\ge0,i=1,2,\cdots,6 \end{matrix}
mins.t.−4x1−5x2−3x38x1+2x2+5x3+x4=4004x1+6x2+5x3+x5=3207x1+3x2+4x3+x6=500xi≥0,i=1,2,⋯,6
第
1
1
1次迭代, 单纯形表为
x 1 x_1 x1 | x 2 x_2 x2 | x 3 x_3 x3 | x 4 x_4 x4 | x 5 x_5 x5 | x 6 x_6 x6 | b b b | |
---|---|---|---|---|---|---|---|
检验数 | − 4 -4 −4 | − 5 -5 −5 | − 3 -3 −3 | 0 0 0 | 0 0 0 | 0 0 0 | 0 0 0 |
x 5 x_5 x5 | 8 8 8 | 2 2 2 | 5 5 5 | 1 1 1 | 0 0 0 | 0 0 0 | 400 400 400 |
x 6 x_6 x6 | 4 4 4 | 6 \color{Red}{6} 6 | 5 5 5 | 0 0 0 | 1 1 1 | 0 0 0 | 320 320 320 |
x 7 x_7 x7 | 7 7 7 | 3 3 3 | 4 4 4 | 0 0 0 | 0 0 0 | 1 1 1 | 500 500 500 |
检验数中, − 5 -5 −5最小, 所以 x 2 x_2 x2为进基变量。由于 min { 400 ÷ 2 , 320 ÷ 6 , 500 ÷ 3 } = 320 ÷ 6 \min \left\lbrace400\div2,320\div6,500\div3 \right \rbrace=320\div6 min{400÷2,320÷6,500÷3}=320÷6, 所以 x 6 x_6 x6为离基变量。
第 2 2 2次迭代, 单纯形表为
x 1 x_1 x1 | x 2 x_2 x2 | x 3 x_3 x3 | x 4 x_4 x4 | x 5 x_5 x5 | x 6 x_6 x6 | b b b | |
---|---|---|---|---|---|---|---|
检验数 | − 2 3 -\dfrac{2}{3} −32 | 0 0 0 | 7 6 \dfrac{7}{6} 67 | 0 0 0 | 5 6 \dfrac{5}{6} 65 | 0 0 0 | 800 3 \dfrac{800}{3} 3800 |
x 5 x_5 x5 | 20 3 \color{Red}\dfrac{20}{3} 320 | 0 0 0 | 10 3 \dfrac{10}{3} 310 | 1 1 1 | − 1 3 -\dfrac{1}{3} −31 | 0 0 0 | 880 3 \dfrac{880}{3} 3880 |
x 2 x_2 x2 | 2 3 \dfrac{2}{3} 32 | 1 1 1 | 5 6 \dfrac{5}{6} 65 | 0 0 0 | 1 6 \dfrac{1}{6} 61 | 0 0 0 | 160 3 \dfrac{160}{3} 3160 |
x 7 x_7 x7 | 5 5 5 | 0 0 0 | 3 2 \dfrac{3}{2} 23 | 0 0 0 | − 2 -2 −2 | 1 1 1 | 340 340 340 |
只有 x 1 x_1 x1的检验数是负的, 所以 x 1 x_1 x1为进基变量。由于 min { 880 3 ÷ 20 3 , 160 3 ÷ 2 3 , 340 ÷ 5 } = 880 3 ÷ 20 3 \min \left\lbrace\dfrac{880}{3}\div\dfrac{20}{3},\dfrac{160}{3}\div\dfrac{2}{3},340\div5 \right \rbrace=\dfrac{880}{3}\div\dfrac{20}{3} min{3880÷320,3160÷32,340÷5}=3880÷320, 所以 x 5 x_5 x5为离基变量。
第 3 3 3次迭代, 单纯形表为
x 1 x_1 x1 | x 2 x_2 x2 | x 3 x_3 x3 | x 4 x_4 x4 | x 5 x_5 x5 | x 6 x_6 x6 | b b b | |
---|---|---|---|---|---|---|---|
检验数 | 0 0 0 | 0 0 0 | 3 2 \dfrac{3}{2} 23 | 1 10 \dfrac{1}{10} 101 | 4 5 \dfrac{4}{5} 54 | 0 0 0 | 296 296 296 |
x 1 x_1 x1 | 1 1 1 | 0 0 0 | 1 2 \dfrac{1}{2} 21 | 3 20 \dfrac{3}{20} 203 | − 1 20 -\dfrac{1}{20} −201 | 0 0 0 | 44 44 44 |
x 2 x_2 x2 | 0 0 0 | 1 1 1 | 1 2 \dfrac{1}{2} 21 | − 1 10 -\dfrac{1}{10} −101 | 1 5 \dfrac{1}{5} 51 | 0 0 0 | 24 24 24 |
x 7 x_7 x7 | 0 0 0 | 0 0 0 | − 1 -1 −1 | − 3 4 -\dfrac{3}{4} −43 | − 7 4 -\dfrac{7}{4} −47 | 1 1 1 | 120 120 120 |
检验数全为非负数, 迭代结束, 得到标准问题的最优解为
x
=
(
44
,
24
,
0
,
0
,
0
,
0
,
120
)
T
\boldsymbol{x}=(44,24,0,0,0,0,120)^{\rm T}
x=(44,24,0,0,0,0,120)T, 最优值为
−
296
-296
−296。
于是, 原问题的最优解为
x
=
(
44
,
24
,
0
)
T
\boldsymbol{x}=(44,24,0)^{\rm T}
x=(44,24,0)T, 最优值为
296
296
296。
4. 两阶段法和大M法
有些时候,我们无法直接得到初始基本可行解,因此需要先设法找到初始基本可行解。
4.1 两阶段法
对于标准形式的线性规划问题,求辅助问题 min ∣ ∣ y ∣ ∣ 1 s . t . A x + y = b x ≥ 0 y ≥ 0 \begin{matrix} \min & ||\boldsymbol{y}||_1 \\ \rm s.t.& \boldsymbol{A}\boldsymbol{x}+\boldsymbol{y}=\boldsymbol{b}\\ & \boldsymbol{x}\ge\bold{0}\\ & \boldsymbol{y}\ge\bold{0} \end{matrix} mins.t.∣∣y∣∣1Ax+y=bx≥0y≥0的最优解和最优值。若辅助问题的最优值不是 0 0 0, 则原问题无最优解, 否则, 求得的最优解即为原问题的一个基本可行解。
【例2】求解以下线性规划问题
min
2
x
1
+
x
2
s
.
t
.
x
1
+
x
2
+
x
3
=
8
x
2
−
x
3
=
−
3
x
i
≥
0
,
i
=
1
,
2
,
3
\begin{matrix} \min & 2x_1+x_2 \\ \rm s.t.& x_1+x_2+x_3=8 \\ & x_2-x_3=-3 \\ & x_i\ge0,i=1,2,3 \end{matrix}
mins.t.2x1+x2x1+x2+x3=8x2−x3=−3xi≥0,i=1,2,3
【解】首先把问题转换为标准形式
min
2
x
1
+
x
2
s
.
t
.
x
1
+
x
2
+
x
3
=
8
−
x
2
+
x
3
=
3
x
i
≥
0
,
i
=
1
,
2
,
3
\begin{matrix} \min & 2x_1+x_2 \\ \rm s.t.& x_1+x_2+x_3=8 \\ & -x_2+x_3=3 \\ & x_i\ge0,i=1,2,3 \end{matrix}
mins.t.2x1+x2x1+x2+x3=8−x2+x3=3xi≥0,i=1,2,3
一阶段问题
min
y
1
+
y
2
s
.
t
.
x
1
+
x
2
+
x
3
+
y
1
=
8
−
x
2
+
x
3
+
y
2
=
3
x
i
≥
0
,
i
=
1
,
2
,
3
y
1
,
y
2
≥
0
\begin{matrix} \min & y_1+y_2 \\ \rm s.t.& x_1+x_2+x_3+y_1=8 \\ & -x_2+x_3+y_2=3 \\ & x_i\ge0,i=1,2,3 \\ & y_1,y_2\ge0 \end{matrix}
mins.t.y1+y2x1+x2+x3+y1=8−x2+x3+y2=3xi≥0,i=1,2,3y1,y2≥0初始的单纯形表为
x 1 x_1 x1 | x 2 x_2 x2 | x 3 x_3 x3 | y 1 y_1 y1 | y 2 y_2 y2 | b b b | |
---|---|---|---|---|---|---|
c c c | 0 0 0 | 0 0 0 | 0 0 0 | 1 1 1 | 1 1 1 | 0 0 0 |
y 1 y_1 y1 | 1 1 1 | 1 1 1 | 1 1 1 | 1 1 1 | 0 0 0 | 8 8 8 |
y 2 y_2 y2 | 0 0 0 | − 1 -1 −1 | 1 1 1 | 0 0 0 | 1 1 1 | 3 3 3 |
第 1 1 1次迭代, 通过初等行变换把第一行变为检验数行, 得到
x 1 x_1 x1 | x 2 x_2 x2 | x 3 x_3 x3 | y 1 y_1 y1 | y 2 y_2 y2 | b b b | |
---|---|---|---|---|---|---|
检验数 | − 1 -1 −1 | 0 0 0 | − 2 -2 −2 | 0 0 0 | 0 0 0 | − 11 -11 −11 |
y 1 y_1 y1 | 1 1 1 | 1 1 1 | 1 1 1 | 1 1 1 | 0 0 0 | 8 8 8 |
y 2 y_2 y2 | 0 0 0 | − 1 -1 −1 | 1 \color{Red}1 1 | 0 0 0 | 1 1 1 | 3 3 3 |
检验数中, − 2 -2 −2最小, 所以 x 3 x_3 x3为进基变量。由于 min { 8 ÷ 1 , 3 ÷ 1 } = 3 ÷ 1 \min \left\lbrace8\div1,3\div1\right \rbrace=3\div1 min{8÷1,3÷1}=3÷1, 所以 y 2 y_2 y2为离基变量。
第 2 2 2次迭代, 单纯形表为
x 1 x_1 x1 | x 2 x_2 x2 | x 3 x_3 x3 | y 1 y_1 y1 | y 2 y_2 y2 | b b b | |
---|---|---|---|---|---|---|
检验数 | − 1 -1 −1 | − 2 -2 −2 | 0 0 0 | 0 0 0 | 2 2 2 | − 5 -5 −5 |
y 1 y_1 y1 | 1 1 1 | 2 \color{Red}2 2 | 0 0 0 | 1 1 1 | − 1 -1 −1 | 5 5 5 |
x 3 x_3 x3 | 0 0 0 | − 1 -1 −1 | 1 1 1 | 0 0 0 | 1 1 1 | 3 3 3 |
检验数中, − 2 -2 −2最小, 所以 x 2 x_2 x2为进基变量。 只有 y 1 y_1 y1对应的系数是正的, 所以 y 1 y_1 y1为进基变量。
第 3 3 3次迭代, 单纯形表为
x 1 x_1 x1 | x 2 x_2 x2 | x 3 x_3 x3 | y 1 y_1 y1 | y 2 y_2 y2 | b b b | |
---|---|---|---|---|---|---|
检验数 | 0 0 0 | 0 0 0 | 0 0 0 | 1 1 1 | 1 1 1 | 0 0 0 |
x 2 x_2 x2 | 1 2 \dfrac{1}{2} 21 | 1 1 1 | 0 0 0 | 1 2 \dfrac{1}{2} 21 | − 1 2 -\dfrac{1}{2} −21 | 5 2 \dfrac{5}{2} 25 |
x 3 x_3 x3 | 1 2 \dfrac{1}{2} 21 | 0 0 0 | 1 1 1 | 1 2 \dfrac{1}{2} 21 | 1 2 \dfrac{1}{2} 21 | 11 2 \dfrac{11}{2} 211 |
检验数全为非负数, 迭代结束, 得到辅助问题的最优值为 0 0 0, 所以 x = ( 0 , 5 2 , 11 2 ) T \boldsymbol{x}=\left(0,\dfrac{5}{2},\dfrac{11}{2}\right)^{\rm T} x=(0,25,211)T是标准形式问题的一个基本可行解。
二阶段问题
令
y
1
=
y
2
=
0
y_1=y_2=0
y1=y2=0, 得到
x 1 x_1 x1 | x 2 x_2 x2 | x 3 x_3 x3 | b b b | |
---|---|---|---|---|
c c c | 2 2 2 | 1 1 1 | 0 0 0 | 0 0 0 |
x 2 x_2 x2 | 1 2 \dfrac{1}{2} 21 | 1 1 1 | 0 0 0 | 5 2 \dfrac{5}{2} 25 |
x 3 x_3 x3 | 1 2 \dfrac{1}{2} 21 | 0 0 0 | 1 1 1 | 11 2 \dfrac{11}{2} 211 |
通过初等行变换把第一行变为检验数行, 得到
x 1 x_1 x1 | x 2 x_2 x2 | x 3 x_3 x3 | b b b | |
---|---|---|---|---|
检验数 | 3 2 \dfrac{3}{2} 23 | 0 0 0 | 0 0 0 | − 5 2 -\dfrac{5}{2} −25 |
x 2 x_2 x2 | 1 2 \dfrac{1}{2} 21 | 1 1 1 | 0 0 0 | 5 2 \dfrac{5}{2} 25 |
x 3 x_3 x3 | 1 2 \dfrac{1}{2} 21 | 0 0 0 | 1 1 1 | 11 2 \dfrac{11}{2} 211 |
检验数全为非负数, 迭代结束, 所以标准问题的最优解为 x = ( 0 , 5 2 , 11 2 ) T \boldsymbol{x}=\left(0,\dfrac{5}{2},\dfrac{11}{2}\right)^{\rm T} x=(0,25,211)T, 最优值为 5 2 \dfrac{5}{2} 25, 此即为原问题的最优解与最优值。
4.2 大M法
对于标准形式的线性规划问题, 设
M
M
M是充分大的正数, 求辅助问题
min
c
T
x
+
M
∣
∣
y
∣
∣
1
s
.
t
.
A
x
+
y
=
b
x
≥
0
y
≥
0
\begin{matrix} \min & \boldsymbol{c}^{\rm T}\boldsymbol{x}+M||\boldsymbol{y}||_1 \\ \rm s.t.& \boldsymbol{A}\boldsymbol{x}+\boldsymbol{y}=\boldsymbol{b}\\ & \boldsymbol{x}\ge\bold{0}\\ & \boldsymbol{y}\ge\bold{0} \end{matrix}
mins.t.cTx+M∣∣y∣∣1Ax+y=bx≥0y≥0的最优解
(
x
∗
T
,
y
∗
T
)
T
\left(\boldsymbol{x}^{*\rm T},\boldsymbol{y}^{*\rm T}\right)^{\rm T}
(x∗T,y∗T)T。若
y
∗
=
0
\boldsymbol{y}^*=\bold{0}
y∗=0, 则
x
∗
\boldsymbol{x}^*
x∗为原问题的最优解, 否则, 原问题无最优解。
【例3】求解以下线性规划问题
min
2
x
1
+
x
2
s
.
t
.
x
1
+
x
2
+
x
3
=
8
x
2
−
x
3
=
−
3
x
i
≥
0
,
i
=
1
,
2
,
3
\begin{matrix} \min & 2x_1+x_2 \\ \rm s.t.& x_1+x_2+x_3=8 \\ & x_2-x_3=-3 \\ & x_i\ge0,i=1,2,3 \end{matrix}
mins.t.2x1+x2x1+x2+x3=8x2−x3=−3xi≥0,i=1,2,3
【解】构造辅助问题
min
2
x
1
+
x
2
+
M
y
1
+
M
y
2
s
.
t
.
x
1
+
x
2
+
x
3
+
y
1
=
8
−
x
2
+
x
3
+
y
2
=
3
x
i
≥
0
,
i
=
1
,
2
,
3
\begin{matrix} \min & 2x_1+x_2+My_1+My_2 \\ \rm s.t.& x_1+x_2+x_3+y_1=8 \\ & -x_2+x_3+y_2=3 \\ & x_i\ge0,i=1,2,3 \end{matrix}
mins.t.2x1+x2+My1+My2x1+x2+x3+y1=8−x2+x3+y2=3xi≥0,i=1,2,3
初始的单纯形表为
x 1 x_1 x1 | x 2 x_2 x2 | x 3 x_3 x3 | y 1 y_1 y1 | y 2 y_2 y2 | b b b | |
---|---|---|---|---|---|---|
c c c | 2 2 2 | 1 1 1 | 0 0 0 | M M M | M M M | 0 0 0 |
y 1 y_1 y1 | 1 1 1 | 1 1 1 | 1 1 1 | 1 1 1 | 0 0 0 | 8 8 8 |
y 2 y_2 y2 | 0 0 0 | − 1 -1 −1 | 1 1 1 | 0 0 0 | 1 1 1 | 3 3 3 |
第 1 1 1次迭代, 通过初等行变换把第一行变为检验数行, 得到
x 1 x_1 x1 | x 2 x_2 x2 | x 3 x_3 x3 | y 1 y_1 y1 | y 2 y_2 y2 | b b b | |
---|---|---|---|---|---|---|
检验数 | 2 − M 2-M 2−M | 1 1 1 | − 2 M -2M −2M | 0 0 0 | 0 0 0 | − 11 M -11M −11M |
y 1 y_1 y1 | 1 1 1 | 1 1 1 | 1 1 1 | 1 1 1 | 0 0 0 | 8 8 8 |
y 2 y_2 y2 | 0 0 0 | − 1 -1 −1 | 1 \color{Red}1 1 | 0 0 0 | 1 1 1 | 3 3 3 |
检验数中, − 2 M -2M −2M最小, 所以 x 3 x_3 x3为进基变量。由于 min { 8 ÷ 1 , 3 ÷ 1 } = 3 ÷ 1 \min \left\lbrace8\div1,3\div1\right \rbrace=3\div1 min{8÷1,3÷1}=3÷1, 所以 y 2 y_2 y2为离基变量。
第 2 2 2次迭代, 单纯形表为
x 1 x_1 x1 | x 2 x_2 x2 | x 3 x_3 x3 | y 1 y_1 y1 | y 2 y_2 y2 | b b b | |
---|---|---|---|---|---|---|
检验数 | 2 − M 2-M 2−M | 1 − 2 M 1-2M 1−2M | 0 0 0 | 0 0 0 | 2 M 2M 2M | − 5 M -5M −5M |
y 1 y_1 y1 | 1 1 1 | 2 \color{Red}2 2 | 0 0 0 | 1 1 1 | − 1 -1 −1 | 5 5 5 |
x 3 x_3 x3 | 0 0 0 | − 1 -1 −1 | 1 1 1 | 0 0 0 | 1 1 1 | 3 3 3 |
检验数中, 1 − 2 M 1-2M 1−2M最小, 所以 x 2 x_2 x2为进基变量。 只有 y 1 y_1 y1对应的系数是正的, 所以 y 1 y_1 y1为进基变量。
第 3 3 3次迭代, 单纯形表为
x 1 x_1 x1 | x 2 x_2 x2 | x 3 x_3 x3 | y 1 y_1 y1 | y 2 y_2 y2 | b b b | |
---|---|---|---|---|---|---|
检验数 | 3 2 \dfrac{3}{2} 23 | 0 0 0 | 0 0 0 | M − 1 2 M-\dfrac{1}{2} M−21 | M + 1 2 M+\dfrac{1}{2} M+21 | − 5 2 -\dfrac{5}{2} −25 |
x 2 x_2 x2 | 1 2 \dfrac{1}{2} 21 | 1 1 1 | 0 0 0 | 1 2 \dfrac{1}{2} 21 | − 1 2 -\dfrac{1}{2} −21 | 5 2 \dfrac{5}{2} 25 |
x 3 x_3 x3 | 1 2 \dfrac{1}{2} 21 | 0 0 0 | 1 1 1 | 1 2 \dfrac{1}{2} 21 | 1 2 \dfrac{1}{2} 21 | 11 2 \dfrac{11}{2} 211 |
检验数全为非负数, 迭代结束, 得到辅助问题的最优解为 ( 0 , 5 2 , 11 2 , 0 , 0 ) T \left(0,\dfrac{5}{2},\dfrac{11}{2},0,0\right)^{\rm T} (0,25,211,0,0)T, 所以原问题的最优解为 x = ( 0 , 5 2 , 11 2 ) T \boldsymbol{x}=\left(0,\dfrac{5}{2},\dfrac{11}{2}\right)^{\rm T} x=(0,25,211)T, 最优值为 5 2 \dfrac{5}{2} 25。
5. 线性规划的对偶问题
5.1 对偶问题
任何一个线性规划问题都有与之对应的对偶问题, 且线性规划问题的对偶问题的对偶问题是原问题。
标准形式的线性规划问题
min
c
T
x
s
.
t
.
A
x
=
b
x
≥
0
\begin{matrix} \min & \boldsymbol{c}^{\rm T}\boldsymbol{x} \\ \rm s.t.& \boldsymbol{A}\boldsymbol{x}=\boldsymbol{b}\\ & \boldsymbol{x}\ge\bold{0} \end{matrix}
mins.t.cTxAx=bx≥0的对偶问题为
max
b
T
x
s
.
t
.
A
T
x
≤
c
\begin{matrix} \max & \boldsymbol{b}^{\rm T}\boldsymbol{x} \\ \rm s.t.& \boldsymbol{A}^{\rm T}\boldsymbol{x}\le\boldsymbol{c} \end{matrix}
maxs.t.bTxATx≤c
线性规划问题
min
c
T
x
s
.
t
.
A
x
≥
b
x
≥
0
\begin{matrix} \min & \boldsymbol{c}^{\rm T}\boldsymbol{x} \\ \rm s.t.& \boldsymbol{A}\boldsymbol{x}\ge\boldsymbol{b}\\ & \boldsymbol{x}\ge\bold{0} \end{matrix}
mins.t.cTxAx≥bx≥0的对偶问题为
max
b
T
x
s
.
t
.
A
T
x
≤
c
x
≥
0
\begin{matrix} \max & \boldsymbol{b}^{\rm T}\boldsymbol{x} \\ \rm s.t.& \boldsymbol{A}^{\rm T}\boldsymbol{x}\le\boldsymbol{c} \\ & \boldsymbol{x}\ge\bold{0} \end{matrix}
maxs.t.bTxATx≤cx≥0
一般地, 可以按照以下步骤写出任何一个线性规划问题的对偶问题:
- 把约束中的 ≤ \le ≤通过两边同乘 − 1 -1 −1的方式变为 ≥ \ge ≥
- 优化目标 min ↔ max \min\leftrightarrow\max min↔max
- 系数向量与右端向量 b ↔ c \boldsymbol{b}\leftrightarrow\boldsymbol{c} b↔c
- 系数矩阵 A ↔ A T \boldsymbol{A}\leftrightarrow\boldsymbol{A}^{\rm T} A↔AT
- 若决策变量有非负约束, 则对偶问题中对应的约束为不等式 ≤ \le ≤约束
- 若决策变量无非负约束, 则对偶问题中对应的约束为等式约束
- 若原问题为等式约束, 则对偶问题中对应的决策变量无非负约束
【例4】写出以下线性规划问题的对偶问题
min
−
x
1
+
4
x
2
s
.
t
.
x
1
+
3
x
2
≤
2
−
x
1
+
2
x
2
≥
4
x
2
≥
0
\begin{matrix} \min & -x_1+4x_2 \\ \rm s.t.& x_1+3x_2\le2 \\ & -x_1+2x_2\ge4 \\ & x_2\ge0 \end{matrix}
mins.t.−x1+4x2x1+3x2≤2−x1+2x2≥4x2≥0
【解】先把原问题等价变换为
min
−
x
1
+
4
x
2
s
.
t
.
−
x
1
−
3
x
2
≥
−
2
−
x
1
+
2
x
2
≥
4
x
2
≥
0
\begin{matrix} \min & -x_1+4x_2 \\ \rm s.t.& -x_1-3x_2\ge-2 \\ & -x_1+2x_2\ge4 \\ & x_2\ge0 \end{matrix}
mins.t.−x1+4x2−x1−3x2≥−2−x1+2x2≥4x2≥0于是, 对偶问题为
max
−
2
x
1
+
4
x
2
s
.
t
.
−
x
1
−
x
2
=
−
1
−
3
x
1
+
2
x
2
≤
4
x
1
,
x
2
≥
0
\begin{matrix} \max & -2x_1+4x_2 \\ \rm s.t.& -x_1-x_2=-1 \\ & -3x_1+2x_2\le4 \\ & x_1,x_2\ge0 \end{matrix}
maxs.t.−2x1+4x2−x1−x2=−1−3x1+2x2≤4x1,x2≥0
5.2 对偶定理
弱对偶定理:设互为对偶的两个线性规划的目标分别是
min
f
(
x
)
\min f(\boldsymbol{x})
minf(x)和
max
g
(
y
)
\max g(\boldsymbol{y})
maxg(y), 且
x
\boldsymbol{x}
x和
y
\boldsymbol{y}
y分别是它们的可行解, 则有
f
(
x
)
≥
g
(
y
)
f(\boldsymbol{x})\ge g(\boldsymbol{y})
f(x)≥g(y)。
强对偶定理:互为对偶问题的两个线性规划问题, 若其中一个问题存在最优值, 则另一个问题也存在最优值, 且两个问题的最优值相等。
5.3 对偶单纯形方法
对偶单纯形方法与单纯形方法计算步骤类似, 不同之处在于:
- 结束条件变为右端向量全部非负;
- 右端向量最小的基变量为离基变量;
- 检验数与对应系数的相反数的商为正数且最小的变量为进基变量。
【例5】用对偶单纯形方法求解以下线性规划问题
min
20
x
1
+
16
x
2
+
25
x
3
s
.
t
.
20
x
1
+
60
x
2
+
30
x
3
≥
1
200
x
1
+
100
x
2
+
175
x
3
≥
2
250
x
1
+
250
x
2
+
200
x
3
≥
3
x
i
≥
0
,
i
=
1
,
2
,
3
\begin{matrix} \min & 20x_1+16x_2+25x_3 \\ \rm s.t.& 20x_1+60x_2+30x_3\ge1 \\ & 200x_1+100x_2+175x_3\ge2 \\ & 250x_1+250x_2+200x_3\ge3\\ & x_i\ge0, i=1,2,3 \end{matrix}
mins.t.20x1+16x2+25x320x1+60x2+30x3≥1200x1+100x2+175x3≥2250x1+250x2+200x3≥3xi≥0,i=1,2,3
【解】首先把问题转换为标准形式
min
20
x
1
+
16
x
2
+
25
x
3
s
.
t
.
20
x
1
+
60
x
2
+
30
x
3
−
x
4
=
1
200
x
1
+
100
x
2
+
175
x
3
−
x
5
=
2
250
x
1
+
250
x
2
+
200
x
3
−
x
6
=
3
x
i
≥
0
,
i
=
1
,
2
,
⋯
,
6
\begin{matrix} \min & 20x_1+16x_2+25x_3 \\ \rm s.t.& 20x_1+60x_2+30x_3-x_4=1 \\ & 200x_1+100x_2+175x_3-x_5=2 \\ & 250x_1+250x_2+200x_3-x_6=3\\ & x_i\ge0, i=1,2,\cdots,6 \end{matrix}
mins.t.20x1+16x2+25x320x1+60x2+30x3−x4=1200x1+100x2+175x3−x5=2250x1+250x2+200x3−x6=3xi≥0,i=1,2,⋯,6
第
1
1
1次迭代, 单纯形表为
x 1 x_1 x1 | x 2 x_2 x2 | x 3 x_3 x3 | x 4 x_4 x4 | x 5 x_5 x5 | x 6 x_6 x6 | b b b | |
---|---|---|---|---|---|---|---|
检验数 | 20 20 20 | 16 16 16 | 25 25 25 | 0 0 0 | 0 0 0 | 0 0 0 | 0 0 0 |
x 4 x_4 x4 | − 20 -20 −20 | − 60 -60 −60 | − 30 -30 −30 | 1 1 1 | 0 0 0 | 0 0 0 | − 1 -1 −1 |
x 5 x_5 x5 | − 200 -200 −200 | − 100 -100 −100 | − 175 -175 −175 | 0 0 0 | 1 1 1 | 0 0 0 | − 2 -2 −2 |
x 6 x_6 x6 | − 250 -250 −250 | − 250 \color{Red}-250 −250 | − 200 -200 −200 | 0 0 0 | 0 0 0 | 1 1 1 | − 3 -3 −3 |
右端向量中, − 3 -3 −3最小, 所以 x 6 x_6 x6为离基变量。由于 min { 20 ÷ 250 , 16 ÷ 250 , 25 ÷ 200 } = 16 ÷ 250 \min \left\lbrace20\div250,16\div250,25\div200 \right \rbrace=16\div250 min{20÷250,16÷250,25÷200}=16÷250, 所以 x 2 x_2 x2为进基变量。
第 2 2 2次迭代, 单纯形表为
x 1 x_1 x1 | x 2 x_2 x2 | x 3 x_3 x3 | x 4 x_4 x4 | x 5 x_5 x5 | x 6 x_6 x6 | b b b | |
---|---|---|---|---|---|---|---|
检验数 | 4 4 4 | 0 0 0 | 61 5 \dfrac{61}{5} 561 | 0 0 0 | 0 0 0 | 8 125 \dfrac{8}{125} 1258 | − 24 125 -\dfrac{24}{125} −12524 |
x 4 x_4 x4 | 40 40 40 | 0 0 0 | 18 18 18 | 1 1 1 | 0 0 0 | − 6 25 -\dfrac{6}{25} −256 | − 7 25 -\dfrac{7}{25} −257 |
x 5 x_5 x5 | − 100 \color{Red}-100 −100 | 0 0 0 | − 95 -95 −95 | 0 0 0 | 1 1 1 | − 2 5 -\dfrac{2}{5} −52 | − 4 5 -\dfrac{4}{5} −54 |
x 2 x_2 x2 | 1 1 1 | 1 1 1 | 4 5 \dfrac{4}{5} 54 | 0 0 0 | 0 0 0 | − 1 250 -\dfrac{1}{250} −2501 | 3 250 \dfrac{3}{250} 2503 |
右端向量中, − 4 5 -\dfrac{4}{5} −54最小, 所以 x 5 x_5 x5为离基变量。由于 min { 4 ÷ 100 , 61 5 ÷ 95 , 8 125 ÷ 2 5 } = 4 ÷ 100 \min \left\lbrace4\div100,\dfrac{61}{5}\div95,\dfrac{8}{125}\div\dfrac{2}{5} \right \rbrace=4\div100 min{4÷100,561÷95,1258÷52}=4÷100, 所以 x 1 x_1 x1为进基变量。
第 3 3 3次迭代, 单纯形表为
x 1 x_1 x1 | x 2 x_2 x2 | x 3 x_3 x3 | x 4 x_4 x4 | x 5 x_5 x5 | x 6 x_6 x6 | b b b | |
---|---|---|---|---|---|---|---|
检验数 | 0 0 0 | 0 0 0 | 42 5 \dfrac{42}{5} 542 | 0 0 0 | 1 25 \dfrac{1}{25} 251 | 6 125 \dfrac{6}{125} 1256 | − 28 125 -\dfrac{28}{125} −12528 |
x 4 x_4 x4 | 0 0 0 | 0 0 0 | − 20 -20 −20 | 1 1 1 | 2 5 \dfrac{2}{5} 52 | − 2 5 \color{Red}-\dfrac{2}{5} −52 | − 3 5 -\dfrac{3}{5} −53 |
x 1 x_1 x1 | 1 1 1 | 0 0 0 | 19 20 \dfrac{19}{20} 2019 | 0 0 0 | − 1 100 -\dfrac{1}{100} −1001 | 1 250 \dfrac{1}{250} 2501 | 1 125 \dfrac{1}{125} 1251 |
x 2 x_2 x2 | 0 0 0 | 1 1 1 | − 3 20 -\dfrac{3}{20} −203 | 0 0 0 | 1 100 \dfrac{1}{100} 1001 | − 1 125 -\dfrac{1}{125} −1251 | 1 250 \dfrac{1}{250} 2501 |
右端向量中, − 3 5 -\dfrac{3}{5} −53最小, 所以 x 4 x_4 x4为离基变量。由于 min { 42 5 ÷ 20 , 6 125 ÷ 2 5 } = 6 125 ÷ 2 5 \min \left\lbrace\dfrac{42}{5}\div20,\dfrac{6}{125}\div\dfrac{2}{5}\right \rbrace=\dfrac{6}{125}\div\dfrac{2}{5} min{542÷20,1256÷52}=1256÷52, 所以 x 6 x_6 x6为进基变量。
第 4 4 4次迭代, 单纯形表为
x 1 x_1 x1 | x 2 x_2 x2 | x 3 x_3 x3 | x 4 x_4 x4 | x 5 x_5 x5 | x 6 x_6 x6 | b b b | |
---|---|---|---|---|---|---|---|
检验数 | 0 0 0 | 0 0 0 | 6 6 6 | 3 25 \dfrac{3}{25} 253 | 11 125 \dfrac{11}{125} 12511 | 0 0 0 | − 37 125 -\dfrac{37}{125} −12537 |
x 6 x_6 x6 | 0 0 0 | 0 0 0 | 50 50 50 | − 5 2 -\dfrac{5}{2} −25 | − 1 -1 −1 | 1 1 1 | 3 2 \dfrac{3}{2} 23 |
x 1 x_1 x1 | 1 1 1 | 0 0 0 | 3 4 \dfrac{3}{4} 43 | 1 100 \dfrac{1}{100} 1001 | − 3 500 -\dfrac{3}{500} −5003 | 0 0 0 | 1 500 \dfrac{1}{500} 5001 |
x 2 x_2 x2 | 0 0 0 | 1 1 1 | 1 4 \dfrac{1}{4} 41 | − 1 50 -\dfrac{1}{50} −501 | 1 500 \dfrac{1}{500} 5001 | 0 0 0 | 2 125 \dfrac{2}{125} 1252 |
右端向量全为非负数, 迭代结束。标准问题的最优解为
x
=
(
1
500
,
2
125
,
0
,
0
,
0
,
3
2
)
T
\boldsymbol{x}=\left(\dfrac{1}{500},\dfrac{2}{125},0,0,0,\dfrac{3}{2}\right)^{\rm T}
x=(5001,1252,0,0,0,23)T, 最优值为
37
125
\dfrac{37}{125}
12537。
所以原问题的最优解为
x
=
(
1
500
,
2
125
,
0
)
T
\boldsymbol{x}=\left(\dfrac{1}{500},\dfrac{2}{125},0\right)^{\rm T}
x=(5001,1252,0)T, 最优值为
37
125
\dfrac{37}{125}
12537。