我正在制定采购优化模型,下面是一些相关的输入:
stets:
参数:
变量:
我努力编写一个约束,在时间(t)之前(LT)天之前订购数量=现在在时间(t)收到的数量,其中LT是每个供应商所需的提前期。 这就是我想象的约束,但我不知道如何写它:
按时间排序的数量(t - 提前期)=在时间(t)收到的数量,所有时间(t),品牌(b)和供应商
非常感谢您的时间和帮助!
答案 0 :(得分:2)
假设模型中的时间点都是整数,并且从model.t
中的一个点减去提前期将给出另一个有效的model.t
索引,那么以下内容应该有效:
def compute_received(m,b,t,s):
if t - m.lt[s] < min(m.t):
# Deliveries at this time would have to be placed before the beginning of the model
return Constraint.Skip
return m.q[b,t,s] == m.pr[b,t-m.lt[s],s]
model.compute_received = Constraint(model.b, model.t, model.s, rule=compute_received)