线性规划的标准形

线性规划(Linear Programming)是一类考虑目标函数和约束条件的优化问题。它要求目标函数和约束条件是线性的。

比如这样的问题:
max ⁡   7 x 1 + 6 x 2 s.t.  3 x 1 + x 2 ≤ 120 x 1 + 2 x 2 ≤ 160 x 1 ≤ 35 \begin{aligned} \max~ & 7x_1 + 6 x_2\\ \text{s.t.}~ & 3x_1 + x_2 \leq 120 \\ & x_1 + 2x_2 \leq 160 \\ & x_1 \leq 35 \\ \end{aligned} max s.t. 7x1+6x23x1+x2120x1+2x2160x135
第一行是目标函数,其中 max ⁡ \max max​​​​ 代表优化方向,即最大化。

第二行至最后,是约束条件,用不等式描述(s.t. 是 subject to 的缩写)。它要求 x = ( x 1 , x 2 ) x = (x_1, x_2) x=(x1,x2)​ 满足所有不等式,这样的 x x x 称为 可行解

求解上述问题,就是要找到一个可行解 x x x​​,使得目标函数值最大。

标准形

一般情况下,目标可能是最大化,也可能是最小化;约束可以是等式,也可以是不等式;需要求解的变量可以为正,也可以为负。

为了简化问题,可以通过一些技巧,把线性规划问题标准化。

1、决策变量非负。

x ∈ R x \in\mathbb{R} xR​​​​,引入非负变量 x + = max ⁡ ( x , 0 ) , x − = − min ⁡ ( x , 0 ) x^+ = \max(x, 0), x^- = -\min(x, 0) x+=max(x,0),x=min(x,0)​​​​ 。这样一来, x x x 可以表示成 x = x + − x − x = x^+ - x^- x=x+x​​​​​​​。

2、约束条件是等式。

已知 f ( x ) ≤ b f(x) \leq b f(x)b,引入松弛变量 y ≥ 0 y\geq 0 y0,得到等式 f ( x ) + y = b f(x) + y = b f(x)+y=b

3、等式右边的常数非负。

如果等式右边为负,则两边同时乘以 − 1 -1 1​。

4、最大化与最小化可以互相转化。

max ⁡ f ( x ) \max f(x) maxf(x)​​​ 可转化为 min ⁡ − f ( x ) \min -f(x) minf(x)​​​​​​​​​​​ ,最优解不变。同理, min ⁡ f ( x ) \min f(x) minf(x)​ 可转化为 max ⁡ − f ( x ) \max -f(x) maxf(x)​。

综上所述,下面用向量和矩阵描述线性规划的 标准形
min ⁡   c T x s.t.  A x = b x ≥ 0 \begin{aligned} \min~ & c^T x\\ \text{s.t.}~ & Ax=b\\ & x\geq 0 \end{aligned} min s.t. cTxAx=bx0
其中 c , x ∈ R n c, x \in \mathbb{R}^n c,xRn​​​, A ∈ R m × n A\in\mathbb{R}^{m\times n} ARm×n​​​, b ∈ R m ≥ 0 b\in\mathbb{R}^m \geq \mathbf{0} bRm0​​​。

几何理解

下面我们从几何的角度来理解线性规划问题。

线性规划问题的约束由 m m m 个等式定义。从几何上看,每个等式代表一个超平面。 m m m 个超平面相交构成了一个多面体(Polyhedron)。

在三维空间中,如下图所示。

注意,这个多面体是凸凸的。

作为对比,下面这个多面体就不是凸的:

在这里插入图片描述

求解线性规划问题,就是要在一个凸多面体 P P P​ 中找到一个点 x x x​,使得目标函数 c T x c^Tx cTx​ 最小。

d = c / ∣ ∣ c ∣ ∣ d = c / ||c|| d=c/c​,把 d d d​ 看成一个超平面 H H H​ 的法向量。注意到 c T x = ∣ ∣ c ∣ ∣ ⋅ d T x c^Tx = ||c|| \cdot d^Tx cTx=cdTx​,因此最小化 c T x c^Tx cTx​ 等价于最小化 d T x d^Tx dTx​。

这样一来,线性规划问题可以这样描述:找一个点 x ∈ P x\in P xP​,离超平面 H H H​ 最近。

在这里插入图片描述

什么点离超平面最近?

最优解在多面体的顶点上(证明略)。

有了这样的认知,只要枚举所有顶点,然后看看哪个顶点对应的目标函数值最小,即可找到最优解。但是枚举的效率太低,还有更好的方法,比如单纯形法、内点法。

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值