我正在尝试优化来自多个工厂的采购订单。我需要的数量已设置。我可以在服从每个工厂的能力的同时轻松解决问题,只是它将产品的生产分配给在运输时制造部分容器的工厂。作为公司政策,我们不订购部分容器。几乎不可能得到准确的容器,所以我想确保如果我们从工厂订购,所有包含产品的容器都需要 99% 满,并写下以下纸浆约束:
for f in factory:
model += (lp.lpSum([m3.loc[i,f] * qty[i,f]] for i in items) / m3_per_container) / \
math.ceil(lp.lpSum([m3.loc[i,f] * qty[i,f]] for i in items) / m3_per_container) * M) \
>= 0.99
但是,当我使用此约束运行问题时,我收到此错误:
TypeError: must be real number, not LpAffineExpression
我猜,这是因为在解决问题并首先为其赋值之前,我无法将 LpVariable 舍入到最接近的更高整数。
有没有人有办法实现确保在工厂下订单的容器在 0.99 的倍数(0.99、1.98、2.97 等)和 1 的倍数(1、2、3 等)之间的目标。 ) 没有遇到这个错误?
提前致谢!