【问题标题】:Can s_j=max{ a_j, s_i+t_ij } be formulated as a linear constraint?s_j=max{ a_j, s_i+t_ij } 可以表述为线性约束吗?
【发布时间】:2013-10-26 12:30:31
【问题描述】:

我的问题是是否有技巧将以下内容表示为线性约束?

S_j=max{ a_j, S_i+t_ij }

其中 a_j 和 t_ij 是常数

在此先感谢

【问题讨论】:

    标签: linear-programming linearization


    【解决方案1】:

    是的,您可以通过引入一个新的二进制变量 y_j(0 或 1)和几个线性约束来做到这一点。

    我们可以将你的约束重写为:

    Sj = a      if a > Si + T
    Sj = Si + T if a < Si + T
    
    
    Sj = a y_j + (Si + T) (1 - yj)       .....(1)
    

    如果 a 更大,假设 y_j = 0

    y_j = 1 如果 a 小于 Si + T

    M y_j + a - (Si + T) > 0   ....(2) 
    where M is a big number, much bigger than a or Si or T.
    

    如果 y_j 为 1,则上面的约束条件很简单,Sj 将等于 a。 如果 y_j 为 0,a 必须更大才能满足约束,Sj = Si + T

    在您的公式中,只需包含 (1) 和 (2),您将强制执行 max 约束。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多