Pulp:在循环中添加多个 LpSum

Pulp: Adding multiple LpSum in a loop

我有一个这样的列表:

list = [var_1, var_2, var_3]

使用 Pulp 库,我试图通过 for 循环将它们定义为变量:

LpVariable(list[i] for i in range(len(list)))

然后我尝试将它们全部相加并将其分配给模型:

model += LpVariable(list[i] for i in range(len(list)))

在这两种情况下,我都收到一条错误消息,显示 预期的字符串或类似字节的对象

谁能帮帮我?

此致

我没有检查语法,但 lpSum 可以对 LpVariables 列表求和,所以你想要一些看起来更像的东西吗

model += LpSum([LpVariable(i) for i in list])

这假设您的列表的元素是名称字符串并且您想要创建新的 LpVariables。

如果是这样,您可能希望首先将这些新的 LpVariables 保存在列表或字典中,以便您可以在约束中使用它们,然后将它们作为 objective 添加到模型中

如果列表中的元素已经是 LpVariables,那么您只需要

model += LpSum(list)