线性规划 - 根据累积计数重新设置变量

Linear Programming - Re-setting a variable based on it's cumulative count

详细业务问题:

我正在尝试解决如下生产调度业务问题:

  1. 我有两个工厂分别生产 FG A 和 B。
  2. 两种产品消耗相同的 Raw Material x
  3. 我需要根据 Raw Material 可用性创建一个 30 天的生产计划。
  4. 如果当天有足够的 material 可用原料,则可以生产 FG A 和 B。
  5. 每生产 6 天后,工厂必须进行维护,当天的产量将为零。
  6. Objective 是为了最大化利润率,查看可用的日级别 Raw material 并遵守生产限制(即每 6 天后关闭)

我需要建立一个线性规划来解决以下问题:

变量 y:(二进制) 变量 z:y 的累加

当z > 6 时y = 0。我还需要在这之后重新设置z 的累积。

期望的输出:

如何构建 MILP 约束语句。有没有解决这个问题的技术。谢谢。

我认为您可以对维护进行不同的建模。只是禁止 y 的任何 7 个序列。即

 y[t-6]+y[t-5]+y[t-4]+y[t-3]+y[t-2]+y[t-1]+y[t] <= 6 for t=1,..,T

这比使用累加器更容易。请注意,开头需要注意:您可以为此使用历史数据。即,在 t=1t=0,-1,-2,.. 的值是已知的。

您的累加器方法本身并没有错。我们经常用它来建模库存。库存容量是对累计库存量的限制。