【发布时间】:2016-12-08 10:32:28
【问题描述】:
我在 pyomo.environ 包下工作。我尝试添加类似http://imgur.com/a/pWJ79 的约束。 i 和 j 是节点的索引。
node_set 包含 N0 到 N5,总共六个节点。 Arc_set 是一个存储节点之间链接的集合,例如 [N1, N2],它不包含任何自循环弧,例如 [N1, N1]。 F集包含[F1,F2,F3]
所以,我做了这样的事情:
def c1_rule(m, j):
return sum(m.X[e[0], j, f] for e in m.arc_set if e[1] != 'N0' for f in m.f_set) == 1
m.c1_cons = pe.Constraint(m.node_set, rule= c1_rule)
但是,我意识到这会在我的 j 等于 i 时触发错误,这里是 e[0],因为 m.X[i, j, k] 的索引没有 [N1, N1 , F1]。我有一个想法是将自循环弧添加到弧集中。有没有其他方法可以避免这个错误?
【问题讨论】:
标签: python python-2.7 linear-programming integer-programming pyomo