线性规划标准型精解
线性规划的标准型及其转化过程是理解和求解线性规划问题的基础。通过引入松弛变量、剩余变量和将自由变量转化为两个非负变量,可以将任意形式的线性规划问题转化为标准型。标准型的线性规划问题便于使用单纯形法等算法进行求解,从而找到最优解。了解这些概念和技巧,对于深入掌握线性规划理论和实践应用都非常重要。
一、线性规划的标准型
线性规划问题通常有两种常见的表示方式:一种是标准形式的线性规划形式,另一种是矩阵形式。
1.1 一般形式的标准型
- 目标函数
\[Max \quad Z = c_1 x_1 + c_2 x_2 + \ldots + c_n x_n
\]
- 约束条件
\[ a_{11} x_1 + a_{12} x_2 + \ldots + a_{1n} x_n = b_1 \\a_{21} x_1 + a_{22} x_2 + \ldots + a_{2n} x_n = b_2 \\
\vdots \\
a_{m1} x_1 + a_{m2} x_2 + \ldots + a_{mn} x_n = b_m \]
- 非负性约束
\[x_1, x_2, \ldots, x_n \geq 0
\]
- 即
\[ Max \quad Z = c_1 x_1 + c_2 x_2 + \ldots + c_n x_n
\\ \quad {s.t.} \left\{
\begin{array}{l}
a_{11} x_1 + a_{12} x_2 + \ldots + a_{1 n} x_n = b_1 \\
a_{21} x_1 + a_{22} x_2 + \ldots + a_{2 n} x_n = b_2 \\
\ldots \ldots \ldots \\
a_{m 1} x_1 + a_{m 2} x_2 + \ldots + a_{m n} x_n = b_m \\
x_1, x_2, \ldots, x_n \geq 0
\end{array}
\right. \]
线性规划的标准型有4个要求:目标最大化;变量均非负;右端均非负;约束为等式。
1.2 矩阵形式的标准型
- 目标函数
\[Max \quad Z = C^T X
\]
- 约束条件
\[AX = b
\]
- 非负性约束
\[X \geq 0
\]
- 即
\[ Max \quad Z =C^T X
\\ \quad {s.t.} \left\{
\begin{array}{l}
AX = b \\
X \geq 0
\end{array}
\right. \]
其中
- \(X\)是一个\(n\)维变量向量,表示决策变量:\[X^T = (x_1,x_2, \ldots ,x_n ) \]
- \(C\)是一个\(n\)维系数向量,表示目标函数中的系数:\[C^T= (c_1 ,c_2,\ldots,c_n ) \]
- \(A\)是一个\(m \times n\)的矩阵,表示约束条件中的系数:\[A = \begin{bmatrix} a_{11} & a_{12} & \ldots & a_{1n} \\ a_{21} & a_{22} & \ldots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1} & a_{m2} & \ldots & a_{mn} \end{bmatrix} \]
- \(b\) 是一个 $ m $ 维向量,表示每个约束条件的右端常数项:\[b^T = (b_1,b_2,\ldots , b_m ) \]
这两种形式都可以用来描述线性规划的最大化问题,并且它们之间是等价的。线性规划形式更直观,而矩阵形式更紧凑,通常用于理论分析和算法实现。
二、线性规划标准型的转化
线性规划模型:
\[\begin{aligned} \text{Max } \quad Z = 3x_1 + 4x_2 \\ \text{Subject to } \quad \begin{cases} x_1 + x_2 \leq 6 \\ x_1 + 2x_2 \leq 8 \\ x_1, x_2 \geq 0 \end{cases} \end{aligned}
\]
线性规划的标准化涉及将所有约束转换为等式形式。通过引入松弛变量来将不等式约束转化为等式。
- 对于约束\(x_1 + x_2 \leq 6\),引入松弛变量\(x_3 \geq 0\),使得:\[x_1 + x_2 + x_3 = 6 \]
- 对于约束\(x_1 + 2x_2 \leq 8\),引入松弛变量\(x_4 \geq 0\),使得:\[x_1 + 2x_2 + x_4 = 8 \]
将以上引入的松弛变量加入到模型中,得到标准化的形式:
\[\begin{aligned} \text{Max } \quad Z = 3x_1 + 4x_2 \\ \text{Subject to } \quad \begin{cases} x_1 + x_2 + x_3 = 6 \\ x_1 + 2x_2 + x_4 = 8 \\ x_1, x_2, x_3, x_4 \geq 0 \end{cases} \end{aligned}
\]
2.1 处理目标函数
- 目标函数如果是最小化问题,需要将其转换为最大化问题。通常,通过对目标函数的系数取负来实现这一点。
- 如果目标函数已经是最大化形式,则直接使用。
假设初始目标函数为:
\[\text{Min } Z = -2x_1 + 3x_2
\]
将其转化为最大化问题:
\[\text{Max } Z' = 2x_1 - 3x_2
\]
2.2 处理约束条件
- 将所有不等式约束转化为等式约束。这通常通过引入松弛变量或剩余变量来实现:
- 对于“小于等于”(≤)的约束,添加松弛变量使其变为等式。
- 对于“大于等于”(≥)的约束,添加剩余变量并乘以-1以将其转化为等式。
假设有以下约束条件:
\[\begin{cases} x_1 + 2x_2 \leq 10 \\ 3x_1 + x_2 \geq 15 \end{cases}
\]
- 对于第一个约束\(x_1 + 2x_2 \leq 10\),引入松弛变量$ s_1 \geq 0 $,得到:\[x_1 + 2x_2 + s_1 = 10 \]
- 对于第二个约束\(3x_1 + x_2 \geq 15\),引入剩余变量$ s_2 \geq 0 $,得到:
\[3x_1 + x_2 - s_2 = 15
\]
2.3 处理决策变量
- 确保所有决策变量均为非负。如果有些变量没有非负约束,可以通过替换变量的方法使其满足非负性。例如,将变量\(x\) 替换为\(x = x' - x''\),其中\(x', x'' \geq 0\)。
假设变量\(x_1\)没有非负约束,则可以引入两个新变量\(x_1^+\)和\(x_1^-\),使得:
\[x_1 = x_1^+ - x_1^-, \quad x_1^+, x_1^- \geq 0
\]
三、整合练习
\[ Min \quad Z = x_1 + 2x_2 + 3x_3\\
\begin{aligned}
& -2x_1 + x_2 + x_3 \leq 9 \\
& -3x_1 + x_2 + 2x_3\geq 4 \\
& 4x_1 - 2x_2 - 3x_3 = -6 \\
x_1 &\leq 0, \quad x_2 \geq 0, \quad x_3 \text{ 取值无约束}
\end{aligned}
\]
- 处理目标函数,将最小化问题转化为最大化问题:
\[\text{Max } Z' = -x_1 - 2x_2 - 3x_3
\]
- 处理约束条件,将所有不等式约束转化为等式约束。使用松弛变量\(s_1 \geq 0\)和剩余变量$ s_2 \geq 0$。
\[\begin{aligned}
-2x_1 + x_2 + x_3 + s_1 & = 9 \quad (s_1 \geq 0) \\
-3x_1 + x_2 + 2x_3 - s_2 & = 4 \quad (s_2 \geq 0) \\
4x_1 - 2x_2 - 3x_3 & = -6
\end{aligned}\]
-
处理决策变量。
将\(x_1 \leq 0\)转化为\(x_1 = -x_1', \, x_1' \geq 0\)
对于\(x_3\)无约束的情况,将\(x_3 = x_3^+ - x_3^-\),其中\(x_3^+, x_3^- \geq 0\)。 -
标准型
\[ \text{Max } Z' = x_1' - 2x_2 - 3x_3^+ + 3x_3^-\\
\begin{aligned}
2x_1' + x_2 + x_3^+ - x_3^- + s_1 &= 9 \\
3x_1' + x_2 + 2x_3^+ - 2x_3^- - s_2 &= 4 \\
-4x_1' - 2x_2 - 3x_3^+ + 3x_3^- &= -6 \\
x_1', x_2, x_3^+, x_3^-, s_1, s_2 &\geq 0
\end{aligned}\]
- 总结
目标函数: \(Z' = x_1' - 2x_2 - 3x_3^+ + 3x_3^-\)
约束条件:
\[2x_1' + x_2 + x_3^+ - x_3^- + s_1 = 9\\3x_1' + x_2 + 2x_3^+ - 2x_3^- - s_2 = 4 \\-4x_1' - 2x_2 - 3x_3^+ + 3x_3^- = -6
\]
决策变量非负性: $x_1', x_2, x_3^+, x_3^-, s_1, s_2 \geq 0 $
以上就是将给定的线性规划模型转换为标准型的具体过程。