【发布时间】:2021-11-20 15:17:46
【问题描述】:
我创建了目标函数,发现下面的 Excess 语法错误。
*Excess = (inv[m]+order[m]for m in material) - sum(produce[i]usage[i][m]for m in material for i in product)
超额成本 =(库存 + 数量订单)- 使用的总数量
约束 使用的材料数量 我想确定用于生产的材料数量不会超过我们拥有的总库存加上我们订购的总数量。
所以使用的材料数量
任何人都可以为我的失踪提供建议吗?
product = ['S1', 'S2']
material = ['A', 'B', 'C', 'D', 'E', 'F', 'I', 'G', 'H', 'J', 'K', 'L', 'M']
inv_bf = 40000
product_cost = {'S1': 4.28, 'S2': 4.28,}
usage = {'S1': {'A': 12.24,
'D': 12.24,
'E': 0.014,
'F': 0.095,
'G': 12.24,
'H': 0.589,
'J': 24.24,
'K': 0.005,
'L': 0.0105},
'S2': {'A': 12.24,
'D': 12.24,
'E': 0.014,
'F': 0.095,
'G': 12.24,
'H': 0.589,
'J': 24.24,
'K': 0.005,
'L': 0.0105}}
inv = {'A': 7645.8, 'B': 2470, 'C': 4526,
'D': 6678, 'J': 4180.92, 'G': 6879,
'E': 159.5, 'F': 717.4, 'I': 764.1,
'H': 1302.69, 'K': 248.79, 'L': 235,
'M': 179.4}
cost = {'A': 0.03, 'B': 0.03, 'C': 0.056,
'D': 0.151, 'J': 0.024, 'G': 0.88,
'E': 5.156, 'F': 13.04, 'I': 11.09,
'H': 6.833, 'K': 11.261, 'L': 10.118,
'M': 11.914}'''
# Define variables
# How many unit will produce ?
produce = LpVariable.dicts("produce", product, lowBound=0, cat='Integer')
# How many quantity of material to order more ?
order = LpVariable.dicts("order", material, lowBound=0, cat='Integer')
# Define and initialize model
model = LpProblem("total_cost", LpMinimize)
# Objective Function
Total_ProCost = lpSum(product_cost[i]*produce[i] for i in product)
Total_MatCost = lpSum(order[m]*cost[m] for m in material)
Excess = lpSum(inv[m]+order[m]for m in material) - \
lpSum(produce[i]*usage[i][m]for m in material for i in product if m in usage[i].keys())
objective = Total_ProCost + Total_MatCost + lpSum(Excess*cost[m]for m in material)
model.setObjective(objective)
# Define Constraints
# Material Quantity used
for i in product:
model += lpSum(produce[i]*usage[i][m]for m in material for i in product if m in usage[i].keys()) <= lpSum(inv[m] +\
order[m] for m in material)
【问题讨论】:
-
您收到的错误信息是什么?
-
我收到如下信息。回溯(最后一次调用):文件“C:\\PycharmProjects\pythonProject1\sim.py”,第 81 行,在
ExcessCost = (inv[m]+order[m]for m in material) - sum( produce[i]*usage[i][m]for m in material for i in product) -
其余的回溯在哪里?请记住,您可以(并且应该)编辑您的帖子以添加它,而不是在评论中发布。
-
@jjramsey 我在帖子中添加了更多细节和问题。可以请教吗?
-
将所有的回溯添加到您的帖子,而不仅仅是最后一行。
标签: python linear-programming pulp minimization