问题描述
我有一个优化问题,我试图在 gurobi/python 的帮助下解决。
某些约束必须根据其他指标在不同的集合上进行总结,例如:
for i in range(nJobs):
for j in range(n[i]):
model.addConstr(quicksum(y[i][j][k][l] for k in range(nJobs) for l in range(nJobs)))
在上述约束中,M[i][j] 和 W[i][j] 依赖于索引 i 和 j。
这些集合是从 Excel 导入的:
M = [[0]* n[i] for i in range(nJobs)]
iter_i = 0
for i in range(nJobs):
if i != 0:
iter_i = iter_i+n[i-1]
for j in range(n[i]):
M[i][j] = DataSheet.cell(5 + j + iter_i,5).value
包含 M[i][j] 值的 Excel 表格如下所示:
因此某些单元格可能包含多个以逗号分隔的数字。
显然,不能对 M[i][j] 的某些条目总结约束,因为这些条目被视为字符串。有什么方法可以转换 M[i][j] 中的条目,以便将它们用于约束中的求和?
解决方法
您应该在构建模型之前执行一些数据清理。可以使用 str
或 int
将 Excel 表中的值从 float
转换为 int(value)
或 float(value)
。表格中的单个单元格不应包含多个值 - 这是不好的做法,很容易被误解。
很难理解你的问题。请尝试遵循 how to ask good questions 的 Stackoverflow 指南。