0

我有一组节点:

nodes = ["uno","dos","tres","cuatro","cinco","seis"]

及其所有可能对的集合

pairs = [(i,j) for i in nodes for j in nodes if i!=j]

另外,我有这组对的向量

d = [9, 26, 19, 13, 12, 11, 14, 26, 7, 18, 30, 19, 30, 24, 8, 21, 9,
         11, 22, 16, 14, 14, 8, 9, 20, 26, 1, 22, 24, 13]

该向量的每个元素都与该组对的每个元素相关联。第一对是 9,第二对是 26,以此类推。

有二进制变量

Z = mdl.binary_var_dict(pairs, name = "Z") 

与对的集合相关联

问题是我正在尝试编写表达式

sum((d[p]*Z[p]) for p in pairs)

但我不能这样做,因为向量 d 与这组对没有关联。

我必须怎么写?提前致谢!

4

1 回答 1

1

我不确定是否完全理解您的解释,但似乎您只需要同时迭代向量 d 不是吗?

prod = [d[i]*Z[p]) for i, p in enumerate(pairs)]
sum_ = sum(prod)
于 2018-06-21T07:15:51.060 回答