【发布时间】:2020-07-04 04:23:05
【问题描述】:
我对 Pyomo 很陌生,但对 Python 不熟悉。
我有以下问题:
import pyomo.environ as pyo
model = pyo.ConcreteModel()
model.A = pyo.Set(initialize=range(7))
model.B = pyo.Set(initialize=range(7))
model.AB = pyo.Set(initilize= list((a,b) for a in model.A for b in model.B)
model.X = pyo.Var(model.A, model.B, within=pyo.Binary)
model.objective = pyo.Objective(... maximize)
solver = pyo.SolverFactory('glpk')
result = solver.solve(model)
接下来我想更新 model.B Set() 并修改 de model.AB Set 和 model.X Var,这样我就可以再次解决它。比如我想设置:
model.B = pyo.Set(initialize=range(4)
然后更新model.AB、model.X并再次求解。如果手动完成:
model.B = pyo.Set(initialize=range(4)
model.AB = pyo.Set(initilize= list((a,b) for a in model.A for b in model.B)
model.X = pyo.Var(model.A, model.B, within=pyo.Binary)
result = solver.solve(model)
这不起作用,它给出了以下错误:
RuntimeError: Cannot add component 'X_index' (type <class 'pyomo.core.base.sets._SetProduct'>) to block 'unknown': a component by that name (type <class 'pyomo.core.base.sets._SetProduct'>) is already defined.
【问题讨论】:
标签: python python-3.x pyomo