Есть ли способ изменить индексирование Set с 1 на 0 в Pyomo? Очень сложно сохранить все прямо, когда вы имеете дело с несколькими объектами, где на Pyomo ссылается 1, а на все остальное из Python ссылается 0.
Причина в том, чтобы сгенерировать процедуру подгонки модели для нескольких схемных устройств. Вместо того, чтобы воссоздавать всю модель снова и снова, я хочу один раз определить ее с помощью AbstractModel. Затем я могу просто перезагрузить данные и разрешить их для каждого устройства.
В моей целевой функции я определяю промежуточные значения, используя понимание списка. После того, как эти промежуточные значения сгенерированы, на них теперь ссылаются 0. Пример того, что я делаю, приведен ниже. Как видите, мне нужно, чтобы некоторые параметры были объявлены с помощью [i], а другие - с помощью [i-1]. Когда функции становятся большими, становится сложно и сбивать с толку. Было бы намного больше смысла, если бы все было просто 0, чтобы это соответствовало стандартному коду Python. Я надеялся, что есть какой-то простой вариант или параметр, чтобы объявить, ссылается ли Set на 0 или 1.
y11intre = [1 / m.Ra[1] + 1 / m.Rb[1] for i in m.n]
y11intim = [m.w[i] * (m.Ca[1] + m.Cb[1]) for i in m.n]
y12intre = ...
...
z11intre = [-y22intim[i-1] * ... for i in m.n]
...
z11re = [m.Rae[1] + z11intre[i-1] for i in m.n]
z11im = [m.w[i] * m.Lae[1] + z11intim[i-1] for i in m.n]