Gurobi/Python:设置为列表的元素

问题描述

我有一个优化问题,我试图在 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 表格如下所示:

enter image description here

因此某些单元格可能包含多个以逗号分隔的数字。

显然,不能对 M[i][j] 的某些条目总结约束,因为这些条目被视为字符串。有什么方法可以转换 M[i][j] 中的条目,以便将它们用于约束中的求和?

解决方法

您应该在构建模型之前执行一些数据清理。可以使用 strint 将 Excel 表中的值从 float 转换为 int(value)float(value)。表格中的单个单元格不应包含多个值 - 这是不好的做法,很容易被误解。

很难理解你的问题。请尝试遵循 how to ask good questions 的 Stackoverflow 指南。