【发布时间】:2021-12-08 01:53:29
【问题描述】:
我正在尝试在钢中添加合金,以便以最低成本将钢的碳含量提高到一定范围。 但一个限制是,在现实生活中,机器最多只能添加 50 公斤的合金。因此,如果我们添加某种合金,那么它可以是 50/60/70 公斤等,如果我们不添加该特定合金,则可以是 0 公斤。我将如何添加相同的约束?
提前致谢!
下面是我写的函数:
def optimizer_pd(test):
# declare problem
prob = LpProblem("Minimize Alloy Cost",LpMinimize)
# percentage of carbon in each alloy
percs = ele_percs['carbon']
# alloy_vars is a list of all possible alloys
# constraints
prob += lpSum([percs[i] * alloy_vars[i] for i in alloys]) >= minimum_carbon
prob += lpSum([percs[i] * alloy_vars[i] for i in alloys]) <= maximum_carbon
# objective function
prob += lpSum([costs[i] * alloy_vars[i] for i in alloys])
# solving
sol = prob.solve()
# results
var_dict = {}
for var in prob.variables():
var_dict[var.name] = var.value()
return var_dict
【问题讨论】:
标签: python optimization linear-programming pulp