如何建立纸浆约束指标的条件

时间:2019-08-30 18:07:10

标签: python pulp

我正在Python-3中使用PuLP解决MIP问题。

我想创建一个约束,仅对索引i与索引j不同的变量求和,但我找不到正确的语法来做到这一点。

for j in Are:
    for t in Per_fl:
        prob += pulp.lpSum([X[i][j][t] for i != j in Are]) <= 1

上面的代码(对于Are中的i!= j)无效。有没有建立这种约束的方法?

1 个答案:

答案 0 :(得分:0)

您的问题在于如何使用列表理解,您需要将条件位放在最后。

共有三个索引:i, j, t。考虑到您安排for循环的方式,我假设您想要一个约束j中每个Aret中每个Per_fl的约束。

我假设您想对i中的所有Are索引求和,不包括i==j中的索引。您可以按照以下步骤进行操作:

for j in Are:
    for t in Per_fl:
        prob += pulp.lpSum([X[i][j][t] for i in Are if i != j]) <= 1