【发布时间】:2020-12-03 14:51:23
【问题描述】:
我正在使用 gurobipy 在 Python 中制作作业车间调度模型,因为免费版本的 GAMS 无法处理这个特定问题的维度,但我完全是新手。
我的部分目标函数如下:
(sum((i,ii,c)$(ord(ii)>ord(i)),w(i,ii,c)*u(i,ii))*R)
ord() 给出了集合中元素的索引,因此w * u 的求和只针对那些索引大于i 的ii 元素。
我想知道是否有一种优雅的方式可以在 python 中编写这段代码,到目前为止我已经看到我可以使用 enumerate 函数来循环一维参数并保留索引,例如:
bs = [7, 6, 5, 4, 1]
cs = [2, 8, 3, 9, 0]
for i, b in enumerate(bs):
for j, c in enumerate(cs):
if i > j:
print(b, " * ", c, " = ", b * c)
但我不知道如何使用多维参数和变量来做到这一点?
【问题讨论】: