我正在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)无效。有没有建立这种约束的方法?
答案 0 :(得分:0)
您的问题在于如何使用列表理解,您需要将条件位放在最后。
共有三个索引:i, j, t
。考虑到您安排for循环的方式,我假设您想要一个约束j
中每个Are
和t
中每个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