在数学中,线性规划(Linear Programming)特指目标函数和约束条件皆为线性的最优化问题。
基本概念
- 线性约束条件:由多个不等式形成的约束条件(在线性规划中,其约束条件一定为非严格不等式,即 ≤ \le ≤或 ≥ \ge ≥,不允许出现 < < <和 > > >)
- 线性目标函数:由多个变量x形成的函数
- 线性规划问题:在线性约束条件下,线性目标函数求极值的问题
- 可行解:满足线性约束条件下的解
- 可行域:由所有可行解组成的集合
- 最优解:使目标函数取得极值的可行解
标准型
max c T x s . t . A x ≤ b x ≥ 0 \begin{aligned}&\max c^Tx\\&s.t.Ax\le b\\&\quad \quad x\ge0\end{aligned} maxcTxs.t.Ax≤bx≥0
标准型中的线性规划是满足线性不等式约束的线性函数的最大化问题。其有以下几个特点:
- 目标函数是求解某个线性问题的最大值
- 所有变量都具有非负约束
- 不存在等式约束
- 所有不等式约束都是 ≤ \le ≤而非 ≥ \ge ≥
下面我们举例介绍如何将一个基本的线性规划问题转化为标准型,如果我们有线性规划问题:
最小化 − 2 x 1 + 3 x 2 -2x_1+3x_2 −2x1+3x2
满足约束 x 1 + x 2 = 7 x_1+x_2=7 x1+x2=7
x 1 − 2 x 2 ≤ 4 \ x_1-2x_2\le4 x1−2x2≤4
x 1 ≥ 0 \ x_1\ \ \ \ \ \ \ \ \ \ge0 x1 ≥0
①我们将目标函数系数取负,得到:
最大化 2 x 1 − 3 x 2 2x_1-3x_2 2x1−3x2
满足约束 x 1 + x 2 = 7 x_1+x_2=7 x1+x2=7
x 1 − 2 x 2 ≤ 4 \ x_1-2x_2\le4 x1−2x2≤4
x 1 ≥ 0 \ x_1\ \ \ \ \ \ \ \ \ \ge0 x1 ≥0
②约束条件里并没有给出 x 2 x_2 x2的非负约束,我们可以采用换元的方式来解决这一问题,即使用 x 2 ′ − x 2 ′ ′ x_2^{'}-x_2^{''} x2′−x2′′来替换 x 2 x_2 x2,并且满足 x 2 ′ ≥ 0 , x 2 ′ ′ ≥ 0 x_2^{'}\ge0,x_2^{''}\ge0 x2′≥0,x2′′≥0:
最大化 2 x 1 − 3 x 2 ′ + 3 x 2 ′ ′ 2x_1-3x_2^{'}+3x_2^{''} 2x1−3x2′+3x2′′
满足约束 x 1 + x 2 ′ − x 2 ′ ′ = 7 x_1+x_2^{'}-x_2^{''}=7 x1+x2′−x2′′=7
x 1 − 2 x 2 ′ + 2 x 2 ′ ′ ≤ 4 \ x_1-2x_2^{'}+2x_2^{''}\le4 x1−2x2′+2x2′′≤4
x 1 , x 2 ′ , x 2 ′ ′ ≥ 0 x_1,x_2^{'},x_2{''}\ge0 x1,x2′,x2′′≥0
③我们将等式约束替换为不等式约束,对于一个线性问题 x ≥ y x\ge y x≥y并且 x ≤ y x\le y x≤y我们就可以推出 x = y x=y x=y,反之亦然:
最大化 2 x 1 − 3 x 2 ′ + 3 x 2 ′ ′ 2x_1-3x_2^{'}+3x_2^{''} 2x1−3x2′+3x2′′
满足约束 x 1 + x 2 ′ − x 2 ′ ′ ≤ 7 x_1+x_2^{'}-x_2^{''}\le7 x1+x2′−x2′′≤7
x 1 + x 2 ′ − x 2 ′ ′ ≥ 7 x_1+x_2^{'}-x_2^{''}\ge7 x1+x2′−x2′′≥7
x 1 − 2 x 2 ′ + 2 x 2 ′ ′ ≤ 4 \ x_1-2x_2^{'}+2x_2^{''}\le4 x1−2x2′+2x2′′≤4
x 1 , x 2 ′ , x 2 ′ ′ ≥ 0 x_1,x_2^{'},x_2{''}\ge0 x