Я решаю MINLP, используя Pyomo, который берет вектор целочисленных входных данных (пропускную способность графика) и возвращает потерю пакетов в сети. Что делает словарь edge_enum, он перечисляет все ребра графа. Например,
{0: (0, 4),
1: (1, 4),
2: (1, 5), ...
a=0
for e in G.edges():
edge_enum[a]=e
a+=1
model=ConcreteModel
key_list=list(edge_enum.keys())
edge_list=list(edge_enum.values())
model.A=Set(initialize=edge_list)
lb={}
for j in edge_list:
lb[j]=pmf_maxima(j,lamd,q)
ub={}
for j in edge_list:
ub[j]=pmf_length(j,lamd,q)
def fb(model,i):
return (lb[i],ub[i])
model.vars=Var(model.A,domain=PositiveIntegers,bounds=fb)
print(model.vars[edge_enum[0]].value)
Мой вопрос: как я могу получить доступ к каждому элементу переменного вектора 'vars', потому что это мой вектор входной емкости. Мне нужно получить доступ к каждому из них, чтобы определить мою целевую функцию.