使用cplex python编写约束

ej83mcc0  于 2022-11-28  发布在  Python
关注(0)|答案(1)|浏览(282)

我分享了模型的参数、变量和符号:

我很难用cplex编写方程7,这是模型的约束之一。我编写的代码块如下:

mdl.add_constraints(T[i, j, k] >=  mdl.sum(p[l]*y[i, l, s] + s[l]*x[i, l, s] for l in N for s in ???)- d[j] - 100000*(1 - x[i, j, k])   
                for i in M
                for j in N
                for k in N) #7

你能帮助我吗?这将是非常受欢迎的。如果需要的话,我也可以分享我写的所有模型代码。

7bsow1i6

7bsow1i61#

该约束中的“难点”(困难部分)是s上的和的范围由索引k限定。因为索引是数字的,所以可以使用range命令来生成相应的子集。

**注意:**您有两个名为s的元素,因此您需要重命名其中一个。我更改了您的索引变量。

同时:

  • 你有mdl.sum()你不需要mdl.吗?
  • 你的变量/集合都不是“模型对象”,除非你之前重命名了它们(不推荐)。我希望看到像mdl.x[...]等和mdl.M等这样的东西。
代码:
mdl.add_constraints(T[i, j, k] >=  sum(p[l]*y[i, l, s_idx] + s[l]*x[i, l, s_idx] for l in N for s_idx in range(1, k+1))- d[j] - 100000*(1 - x[i, j, k])   
                for i in M
                for j in N
                for k in N) #7

相关问题