Создайте Set
, содержащий кортежи (k,p)
, и используйте его как набор, который определяет и вашу переменную, и ваш параметр.
Определите элементы вашего набора:
kp = []
for k in model.K:
for p in model.P:
foo_tuple = (k, p)
kp.append(foo_tuple)
Примечание. Поскольку вы будете использовать CSV-файл для загрузки ваших данных, в этом случае можно также выполнить совокупность g kp
со всеми комбинациями K и P.время.
Затем создайте Set
, используя элементы в kp
:
model.S = Set(initialize=kp)
Я рекомендую не использовать значения по умолчанию в параметре model.KP
, если он вам не нужен.Это сообщит вам о пропущенном значении для элемента, в котором оно должно быть.Но допустим, что вы все еще хотите, чтобы все значения параметра model.PK
были равны 0
, когда для кортежа (p,k)
не было предоставлено никакого значения, и продолжайте использовать значения по умолчанию, вы должны определить свой параметр следующим образом:
model.KP = Param(model.S, default=0)
Тогда определение вашей переменной будет:
model.X = Var(model.S)