2017-04-06 7 views
0

Pyomo 솔버 호출은 명령 줄 사용 또는 Python 스크립트를 통해 수행 할 수 있습니다.SolverFactory.solve 요약 옵션

예에

pyomo solve model.py input.dat --solver=glpk --summary 

요약 플래그 명령 행 호출 번역 않는 방법 파이썬 스크립트에서 SolverFactory 클래스의 사용법?

특히 다음 예에서 요약 옵션을 어떻게 지정할 수 있습니까? SolverFactory.solve에 대한 (문서화되지 않은) 인수입니까?

from pyomo.opt import SolverFactory 
import pyomo.environ 

from model import model 

opt = SolverFactory('glpk') 

instance = model.create_instance('input.dat') 

results = opt.solve(instance) 

답변

1

--summary 옵션은 pyomo 명령에만 적용됩니다. 솔버 옵션이 아닙니다. 나는 진짜로 모든 라인을 쉽게 스크립트에 추가 할 수있는 해결 후

pyomo.environ.display(instance) 

을 실행 믿습니다. 솔루션을 쿼리하는 더 직접적인 방법은 모델 변수의 값이나 목표를 "평가"하여 액세스하는 것입니다. 예를 들어,

instance.some_objective() 
instance.some_variable() 
instance.some_indexed_variable[0]() 

또는

pyomo.environ.value(instance.some_objective) 
pyomo.environ.value(instance.some_variable) 
pyomo.environ.value(instance.some_indexed_variable) 

나는 이전 선호하지만, 당신은 불변, 인덱스 파람 객체의 값을 액세스하는 경우 후자가 더 적합합니다. 또한 변수에 직접 액세스 할 수있는 .value 속성이 있습니다 (웜 스타트를 제공하려는 경우 업데이트).