【发布时间】:2018-12-23 14:30:30
【问题描述】:
我正在创建一个更大的 LP 模型,它需要将产品 k 从生产设施 i 分配给客户 j。我在实施与用集装箱运输产品相关的约束时遇到了麻烦。
z_ij 是从位置 i 运送到 j 的集装箱数量。
x_ijk 是产品 k 从 i 运送到 j 的数量。
如果一个产品占一个容器的 1%,我需要模型知道它应该分配 2 个容器,如果我们运送 150 个产品。
我正在使用 x_ijk 决策变量实现约束。决策变量的总和必须乘以每个 i 和每个 j 的因子(产品占用了多少容器)。
我尝试创建一个名为 container_cap 的字典,显示产品占用了多少容器。将它与我的决策变量相乘应该可以提供所需数量的容器。
#Containers to ship
for i in production:
for j in warehouse:
prob += lpSum([x[i][j][k]] * container_cap[k] for k in product) <= lpSum([z[i][j]])
但是,我得到一个“不能将序列乘以'list' 类型的非整数”-错误。
有什么建议吗?
【问题讨论】: