Pyomo 5.1.1에서 추상 모델을 만든 다음 Python 내에서 값을 채우려고합니다 (예 : AMPL 파일 사용 안 함). 나는 기본적으로 Pyomo documentation example을 따르지만, "Constant objective detected"를 얻고 있습니다.추상 pyomo 모델에서 콘크리트 모델을 인스턴스화
import pyomo.environ as oe
model = oe.AbstractModel()
model.I = oe.Set()
model.J = oe.Set()
model.a = oe.Param(model.I,model.J)
model.b = oe.Param(model.I)
model.c = oe.Param(model.J)
model.x = oe.Var(model.J,domain=oe.NonNegativeReals)
def obj_expression(model):
return oe.summation(model.c,model.x)
model.OBJ = oe.Objective(rule=obj_expression)
def ax_constraint_rule(model,i):
return sum(model.a[i,j]*model.x[j] for j in model.J) >= model.b[i]
model.AxbConstraint = oe.Constraint(model.I,rule=ax_constraint_rule)
그리고, 나는 실제 값 나는 다음과 같은 오류 얻을
aa = np.array([[1,2,1,4],[5,2,2,4]])
bb = np.array([2,4])
cc = np.array([1,2,4,2])
cmodel = model.create_instance()
cmodel.a.values = aa
cmodel.b.values = bb
cmodel.c.values = cc
opt = oe.SolverFactory("glpk")
results = opt.solve(cmodel)
으로이 모델을 초기화하려고 :
WARNING:pyomo.core:Constant objective detected, replacing with a placeholder to prevent solver failure. WARNING:pyomo.core:Empty constraint block written in LP format - solver may error WARNING: Constant objective detected, replacing with a placeholder to prevent solver failure. WARNING: Empty constraint block written in LP format - solver may error
을 분명하게 나는 방법에 뭔가 문제가있다 cmodel
초기화하지만 파이썬 내에서 초기화를 설명하는 설명서를 찾을 수 없습니다.