我想将所有整数有界变量附加到我定义的integer_constraints_list中。有没有办法用我的所有变量名获取某种列表或数组来迭代我使用for循环制作的代码?类似的东西variables_list = [inst.x[i], inst.y[i], inst.z[i]]
。
我知道pyomo内核有类似的东西,但我使用environ来定义模型
model.I = RangeSet(1,20)
model.x = Var(model.I, domain=NonNegativeIntegers)
model.y = Var(model.I, domain=NonPositiveIntegers)
model.z = Var(model.I, domain=NonPositiveIntegers)
inst = model.create_instance(data)
integer_constraints_list = []
for i in inst.I:
if "nonnegativeintegers" in str(inst.x[i].domain).lower():
integer_constraints_list.append(inst.x[i])
inst.x[i].domain = NonNegativeReals
类似于
variables_list = [inst.x[i], inst.y[i], inst.z[i]]
for v in variables_list:
for i in inst.I:
if "nonnegativeintegers" in str(v.domain).lower():
integer_constraints_list.append(v[i])
v.domain = NonNegativeReals