【问题标题】:Converting conditional constraints to linear constraints for Linear Programming将条件约束转换为线性规划的线性约束
【发布时间】:2020-12-14 07:18:21
【问题描述】:

我有两个变量:C 是二进制的,X 是非负的

如果 C = 0 那么 X = 0; 如果 C = 1 那么 X = X(意味着对 X 没有约束)

我应该如何将此条件约束格式化为 LP 的线性约束?

【问题讨论】:

    标签: linear-programming


    【解决方案1】:

    请注意,严格来说 LP 模型仅包含连续变量。所以我们假设这是一个要使用 MIP 求解器求解的 MIP 模型。

    这里有三种方法可以解决这个问题,具体取决于求解器的能力。

    (1) 如果你使用支持指标约束的求解器,你可以简单地使用:

     c=0 ==> x=0
    

    (2) 对于其他求解器,您可以使用:

     x <= M*c
    

    其中 M 是 x 的(尽可能紧的)上界。

    (3) 最后,如果您的求解器支持 SOS1(类型 1 的特殊有序集)集,您可以使用:

     d = 1-c
     {d,x} ∈ SOS1
     d >= 0
    

    (1) 和 (3) 的优点是不需要边界。如果你对 x 有一个好的、紧的界限,那么 (2) 是一个不错的选择。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多