私は pyomo.environ パッケージの下で作業しています。http://imgur.com/a/pWJ79のような制約を追加しようとしました。i と j はノードのインデックスです。
node_set には、N0 から N5 の合計 6 つのノードが含まれます。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)
ただし、mX[i、j、k] のインデックスには [N1、N1、F1] のようなものがないため、j が i、ここでは e[0] に等しい場合、これはエラーを引き起こすことに気付きました。 . 1 つの考えは、自己ループ アークをアーク セットに追加することです。このエラーを回避できる他の方法はありますか?