线性规划 - 根据累积计数重新设置变量
Linear Programming - Re-setting a variable based on it's cumulative count
详细业务问题:
我正在尝试解决如下生产调度业务问题:
- 我有两个工厂分别生产 FG A 和 B。
- 两种产品消耗相同的 Raw Material x
- 我需要根据 Raw Material 可用性创建一个 30 天的生产计划。
- 如果当天有足够的 material 可用原料,则可以生产 FG A 和 B。
- 每生产 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=1
,t=0,-1,-2,..
的值是已知的。
您的累加器方法本身并没有错。我们经常用它来建模库存。库存容量是对累计库存量的限制。
详细业务问题:
我正在尝试解决如下生产调度业务问题:
- 我有两个工厂分别生产 FG A 和 B。
- 两种产品消耗相同的 Raw Material x
- 我需要根据 Raw Material 可用性创建一个 30 天的生产计划。
- 如果当天有足够的 material 可用原料,则可以生产 FG A 和 B。
- 每生产 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=1
,t=0,-1,-2,..
的值是已知的。
您的累加器方法本身并没有错。我们经常用它来建模库存。库存容量是对累计库存量的限制。