第5讲 线性规划与单纯形法(概念、建模、标准型)
线性规划问题及其数学模型
线性规划问题
定义:在线性约束条件下,寻找线性目标函数的最优化问题。
线性规划问题的共同特征
- 每一个问题都用一组决策变量 ( x 1 , x 2 , ⋯ , x n ) \left(x_{1}, x_{2}, \cdots, x_{n}\right) (x1,x2,⋯,xn)表示某一方案,这组决策变量的值就代表一个具体方案。一般这些变量取值是非负且连续的。(如果实际要求变量不是连续的,那么先把变量当做连续的去求解,最后再进行讨论。)
- 要有建模的有关数据,如资源拥有量、消耗资源定额、创造新价值量等,并构成互不矛盾的约束条件,这些约束条件可以用一组线性等式或线性不等式来表示。
- 都有一个要求达到的目标,它可用决策变量及其有关的价值系数构成的线性函数(称为目标函数)来表示。按问题的不同,要求目标函数实现最大化或最小化。
线性规划模型的标准型
之所以要将问题化为标准型,主要是为了便于之后使用单纯形等方法进行求解。
线性规划数学模型一般有如下形式:
目标函数
max
(
min
)
z
=
c
1
x
1
+
c
2
x
2
+
⋯
+
c
n
x
n
\quad \max (\min ) z=c_{1} x_{1}+c_{2} x_{2}+\cdots+c_{n} x_{n}
max(min)z=c1x1+c2x2+⋯+cnxn
满足约束条件
{
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
1
,
x
2
,
⋯
,
x
n
⩾
0
}
\left\{\begin{array}{c}a_{11} x_{1}+a_{12} x_{2}+\cdots+a_{1 n} x_{n} \leqslant(=, \geqslant) b_{1} \\ a_{21} x_{1}+a_{22} x_{2}+\cdots+a_{2 n} x_{n} \leqslant(=, \geqslant) b_{2} \\ \vdots \\ a_{m 1} x_{1}+a_{m 2} x_{2}+\cdots+a_{m n} x_{n} \leqslant(=, \geqslant) b_{m} \\ x_{1}, \quad x_{2}, \cdots, \quad x_{n} \geqslant 0\end{array}\right\}
⎩⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎧a11x1+a12x2+⋯+a1nxn⩽(=,⩾)b1a21x1+a22x2+⋯+a2nxn⩽(=,⩾)b2⋮am1x1+am2x2+⋯+amnxn⩽(=,⩾)bmx1,x2,⋯,xn⩾0⎭⎪⎪⎪⎪⎪⎬⎪⎪⎪⎪⎪⎫
标准化的步骤:
- 目标函数需要化为 m a x max max。若原本的目标函数是 m i n min min,则令 z ′ = − z z^{'}=-z z′=−z,然后求 m a x z ′ max z^{'} maxz′。
- 约束条件需要化为 = = =。若原本的约束条件是 ≤ \leq ≤,则约束条件变为原本的约束条件减去一个新的非负变量。若原本的约束条件是 ≥ \geq ≥,则约束条件变为原本的约束条件加上一个新的非负变量。
- 变量需要化为 ≥ 0 \ge0 ≥0。若原本的变量是 = 0 =0 =0,则直接改为 ≥ 0 \ge0 ≥0,但实际上这种情况并不会出现,因为如果变量 = 0 =0 =0,那么改变量就不会在目标函数和约束条件中出现。若原本的变量是 ≤ 0 \le0 ≤0,则令 x i ′ = − x i x_i^{'}=-x_i xi′=−xi,并令 x i ′ ≥ 0 x_i^{'}\ge0 xi′≥0,同时目标函数和约束条件中进行替换。若原本的变量没有约束( ∈ \in ∈R),则令 x i = x i ′ − x i ′ ′ x_i=x_i^{'}-x_i^{''} xi=xi′−xi′′,并令 x i ′ ≥ 0 x i ′ ′ ≥ 0 x_i^{'}\ge0\ x_i^{''}\ge0 xi′≥0 xi′′≥0,同时目标函数和约束条件中进行替换。
线性规划问题的处理流程
- 数学建模。得到目标函数和约束条件。
- 化标准型(详解上述标准化的3个步骤)。
- 单纯形法求解。
- 对于解的讨论。
补充说明
线性规划数学模型一般有如下形式:
目标函数
max
(
min
)
z
=
c
1
x
1
+
c
2
x
2
+
⋯
+
c
n
x
n
\quad \max (\min ) z=c_{1} x_{1}+c_{2} x_{2}+\cdots+c_{n} x_{n}
max(min)z=c1x1+c2x2+⋯+cnxn
满足约束条件
{
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
1
,
x
2
,
⋯
,
x
n
⩾
0
}
\left\{\begin{array}{c}a_{11} x_{1}+a_{12} x_{2}+\cdots+a_{1 n} x_{n} \leqslant(=, \geqslant) b_{1} \\ a_{21} x_{1}+a_{22} x_{2}+\cdots+a_{2 n} x_{n} \leqslant(=, \geqslant) b_{2} \\ \vdots \\ a_{m 1} x_{1}+a_{m 2} x_{2}+\cdots+a_{m n} x_{n} \leqslant(=, \geqslant) b_{m} \\ x_{1}, \quad x_{2}, \cdots, \quad x_{n} \geqslant 0\end{array}\right\}
⎩⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎧a11x1+a12x2+⋯+a1nxn⩽(=,⩾)b1a21x1+a22x2+⋯+a2nxn⩽(=,⩾)b2⋮am1x1+am2x2+⋯+amnxn⩽(=,⩾)bmx1,x2,⋯,xn⩾0⎭⎪⎪⎪⎪⎪⎬⎪⎪⎪⎪⎪⎫
其中 c i c_i ci为价值系数, b i b_i bi为限额系数, a i j a_{ij} aij为技术系数。这些名称来源于生产问题,可以结合实际的生产问题加以理解。
一般情况下 m < n m<n m<n,即方程个数 < < <未知数个数。(也就是说求出的解是无穷多个的,KKT定理可能会失效。)
总结
线性规划问题是指,在线性约束条件下,寻找线性目标函数的最优化问题。
对于线性规划问题,可以按照KKT方法进行处理,更推荐的是先化为标准型然后再用单纯形法求解。