Я работаю под пакетом pyomo.environ. Я попытался добавить ограничение примерно так: https://imgur.com/a/pWJ79. я и 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] . У меня есть одна идея, что добавить дуги собственной петли к набору дуг. Есть ли другой способ избежать этой ошибки?