Python 的总结以及如何将集合与向量相关联
Summatory with Python and how associate sets with vectors
我有一组节点:
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 与这组对没有关联。
我必须怎么写?
提前致谢!
我不确定是否完全理解您的解释,但您似乎只需要同时迭代向量 d 不是吗?
prod = [d[i]*Z[p]) for i, p in enumerate(pairs)]
sum_ = sum(prod)
我有一组节点:
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 与这组对没有关联。
我必须怎么写? 提前致谢!
我不确定是否完全理解您的解释,但您似乎只需要同时迭代向量 d 不是吗?
prod = [d[i]*Z[p]) for i, p in enumerate(pairs)]
sum_ = sum(prod)