线性规划的基本性质

1. 线性规划的梯度

对于线性目标函数 f ( x ) = ∑ i = 1 n c i x i = c T x f(\mathbf{x})=\sum_{i=1}^n c_i x_i = \mathbf{c}^T \mathbf{x} f(x)=i=1ncixi=cTx,显然其梯度为 ∇ f = c \nabla f=\mathbf{c} f=c。因此对于最小化问题,改进方向的条件为 c T Δ x < 0 \mathbf{c}^T \Delta \mathbf{x}<0 cTΔx<0,即与梯度的夹角大于90°;对于最大化问题,改进方向的条件为 c T Δ x > 0 \mathbf{c}^T \Delta \mathbf{x}>0 cTΔx>0,即与梯度的夹角小于90°。

并且由于线性目标函数的梯度是常数,因此一个改进方向在所有点上都是改进的。

从代数上讲, c T Δ x < 0 \mathbf{c}^T \Delta \mathbf{x}<0 cTΔx<0就是更新后的函数值等于上一步的函数值加上一个负值, c T Δ x > 0 \mathbf{c}^T \Delta \mathbf{x}>0 cTΔx>0就是更新后的函数值等于上一步的函数值加上一个正值。

梯度的几何解释可参考:
https://blog.csdn.net/Xiaoyao_Ma/article/details/137508195?spm=1001.2014.3001.5501

2. 线性规划中可行方向的代数条件

对于线性约束,当且仅当对所有起作用大于等于约束 a T x ≥ b \mathbf{a}^T\mathbf{x}\geq b aTxb有:
a T Δ x = ∑ j a j Δ x j ≥ 0 \mathbf{a}^T\Delta\mathbf{x}=\sum_j a_j\Delta x_j\geq 0 aTΔx=jajΔxj0
对所有起作用小于等于约束 a T x ≤ b \mathbf{a}^T\mathbf{x}\leq b aTxb有:
a T Δ x = ∑ j a j Δ x j ≤ 0 \mathbf{a}^T\Delta\mathbf{x}=\sum_j a_j\Delta x_j\leq 0 aTΔx=jajΔxj0
对所有等式约束 a T x = b \mathbf{a}^T\mathbf{x}= b aTx=b有:
a T Δ x = ∑ j a j Δ x j = 0 \mathbf{a}^T\Delta\mathbf{x}=\sum_j a_j\Delta x_j= 0 aTΔx=jajΔxj=0
时,搜索方向 Δ x \Delta\mathbf{x} Δx对于解 x \mathbf{x} x是可行的。(起作用约束的等号成立,将更新变量代入约束即可证明)

3. 线性规划的经典问题

  1. 资源分配问题:每种资源的总量固定,决策变量表示每种资源分配给每种使用方式的数量;
  2. 混料问题:资源的需求总量固定,决策变量代表为了生产某种产品,每种资源的使用数量;
  3. 运营规划问题:产品的需求数量固定,决策变量表示每个工厂生产某种商品的数量;

下面介绍两种寻找初始可行解的方法,也适用于非线性规划

4. 寻找初始可行解——两阶段法

两阶段法是指:在第一阶段检验原问题的可行性,并找到一个初始可行解,在第二阶段寻找最优解。第一阶段的步骤如下:

  1. 选择一个原问题的解(可能不满足全部约束,一般取范围约束的端点,如零点),给不满足的约束添加人工变量,且人工变量为正值
    例如:在如下约束中,取(0,0)点,三个耦合的不等式约束都不满足。
    原问题约束
    每个不满足的约束都需要添加一个人工变量,因此直接添加三个人工变量 x 3 , x 4 , x 5 x_3, x_4, x_5 x3,x4,x5,构成如下约束:
    带人工变量的约束

  2. 以最小化人工变量之和为目标,构建第一阶段模型,并构造初始可行解。
    上例中的第一阶段模型为:
    第一阶段模型
    代入 x 1 = 0 , x 2 = 0 x_1=0, x_2=0 x1=0,x2=0,每个人工变量取满足约束的最小值,可得一个人工初始解(0, 0, 2, 1.5, 0.5)。

  3. 从人工初始解开始寻找最优解,判断原问题是否可行。
    由于第一阶段的目标函数始终大不小于0,最优解有以下三种情形:
    a. 目标值=0,即人工变量都为0,则最优解中的原问题变量构成原问题的一个可行解;
    b. 目标值>0,搜索在全局最小点处停止,则原问题没有可行解;
    c. 目标值>0,搜索在局部最小点处停止,则无法判断,需要重新构造初始解并重新搜索。

5. 寻找初始可行解——大M法

与两阶段法不同的是,大M法通过一次搜索既可以判定原问题的可行性,又可以找到(可能是局部)最优解。

  1. 与两阶段法相同,首先给原变量赋值,给不满足的约束添加人工变量,且人工变量为正值
  2. 构建目标函数,对于最小化问题,新问题为 min ⁡ 原目标 + M ( 人工变量和 ) \min 原目标+M(人工变量和) min原目标+M(人工变量和)对于最大化问题,新问题为 max ⁡ 原目标 − M ( 人工变量和 ) \max 原目标-M(人工变量和) max原目标M(人工变量和),其中 M M M表示一个足够大的正数,是一个惩罚因子。
  3. 与两阶段法类似,大 M M M法的搜索结果也有三种情况:
    a. 人工变量和=0,搜索在局部最优解处停止,当前的原问题变量构成原问题的一个局部最优解;
    b. 人工变量和>0,搜索在全局最优解处停止且M足够大,原问题无可行解;
    c. 人工变量和>0,搜索在局部最优解处停止或M不够大,需要调整初始解或增大M重新计算。

6. 可线性化的非线性目标函数

6.1 max-min问题

原问题: max ⁡ f ≜ min ⁡ { g ( x 1 ) , . . . , g ( x n ) } \max f\triangleq\min\{ g(x_1),...,g(x_n)\} maxfmin{g(x1),...,g(xn)}
可线性化为:
max ⁡ f s . t . f ≤ g ( x i ) , i = 1 , . . . , n \begin{align*}\max &f \\ s.t. & f\leq g(x_i), i=1,...,n \end{align*} maxs.t.ffg(xi),i=1,...,n
max-min问题同理。

6.2 最小偏差问题

对于包含 ∣ p ( x ) − q ( x ) ∣ |p(x)-q(x)| p(x)q(x)的目标函数,其中 p ( x ) , q ( x ) p(x),q(x) p(x),q(x)是线性函数,引入非负偏差变量 s + , s − s^+,s^- s+,s,引入约束条件
p ( x ) − q ( x ) = s + − s − p(x)-q(x)=s^+-s^- p(x)q(x)=s+s,目标函数 ∣ p ( x ) − q ( x ) ∣ |p(x)-q(x)| p(x)q(x) s + + s − s^++s^- s++s代替,从而将最小偏差目标函数转化为线性函数。

为什么这样转换与原问题等价,即为什么 s + + s − s^++s^- s++s最小化时上述两个替代能成立?因为根据约束 p ( x ) − q ( x ) = s + − s − p(x)-q(x)=s^+-s^- p(x)q(x)=s+s可知 s + s^+ s+ s − s^- s的差值固定,而 s + s^+ s+ s − s^- s都非负,且目标是最小化两者之和,因此在最优解处,必然有一个变量为0,则上述两个替代都成立。

  • 12
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值