我正在使用 AMPL 对一个产品进行建模,其中我有两个我不太确定如何处理的特定约束。
subject to Constraint1 {t in T}:
prod[t] = sum{i in I} x[i,t]*u[i] + Recycle[f]*RecycledU[f];
subject to Constraint2 {t in T}:
Solditems[t]+Recycle[t]=prod[t];
编辑:其中 x[i,t] 是供应点 i 的产品数量。u[i] 表示从供应点 i 到生产产品的原材料的“交换率”。即一定比例的原材料将成为成品,而一些原材料将被浪费。RecycledU[f] 也是如此,其中 f 在 F 中,表示已对其进行精炼的精炼站。不同之处在于 RecycledU[f] 的浪费百分比要低得多,因为 Recycled 已经是 f 的成品(尽管利润要低得多)。即 Recycle 已经“经历”了较早成为原材料的过程,x,但在某个较早的阶段已成为成品,或者希望(如果可以建模)在与此相同的时间段内。在实际模型中作为“产品”
我想要完成的是,生产的产品数量是时间段 t 内销售的所有物品和时间段 t回收的产品数量的总和(回收的意思是成品保存在生产现场以供进一步使用)在某个时间步长 g, g>t) 中进行细化。
是否可以像我一样为 prod[t] 写两个等号?另外,如何处理 Recycle[t]?AMPL 能否“理解”由于这些是在同一时间步表示的,AMPL 必须递归处理约束,即计算 Recycle[t] 的解决方案,然后尝试在每个时间步改进该解决方案?
编辑:时间段以年表示,这就是为什么我想避免使用 Recycle[t-1] 的表达式。
EDIT2: prod 和 x 是参数, Recycle 和 Soliditems 是变量。
希望任何人都可以对此有所了解!
森德泽