2017-05-24 9 views
0

Pyomo를 사용할 때 (BARON 해석기를 사용하여) 최대한 많은 함수 계산을 설정하고 싶습니다. 내 코드 :Pyomo - 바론 해석을 사용하여 함수 계산의 최대 개수 설정

from __future__ import division 
from pyomo.environ import * 
opt = SolverFactory('baron') 
m = ConcreteModel() 
m.x1 = Var(bounds=(-10.0, 10.0)) 
m.x2 = Var(bounds=(-10.0, 10.0)) 
m.o = Objective(expr=(2.0 * m.x2 + m.x1 - 7.0) ** 2.0 + (2.0 * m.x1 + m.x2 - 5.0) ** 2.0) 
results = opt.solve(m) # maxEvaluations=5 
print results 

여기에서 expr은 부스 기능에 해당합니다. 기능 평가의 최대 수를 종료 기준으로 설정하고 싶습니다. 이것을 어떻게 할 수 있습니까?

더 자세한 결과물을 출력 할 수 있으면 기능적 평가 횟수가 가장 많은 최상의 결과를 나열하는 것이 이상적입니다.

답변

1

solve 방법의 경우 options 키워드 인수를 사용하여 해결사에게 옵션을 보낼 수 있습니다. 옵션은 솔버에 그대로 전달됩니다. 개별 솔버 문서에서 지원하는 옵션을 확인해야합니다 (BARON의 경우 here 참조). 예를 들어 :

solver.solve(model, options={'MaxIter': 5}, tee=True) 

으로 거의 모든 솔버 : 당신은 실시간으로 해석 과정을보고 싶은 경우

solver = SolverFactory('baron') 
solver.solve(model, options={'MaxIter': 5}) 

, 당신은 tee 옵션을 사용하여 솔버 표준 출력/표준 에러 출력을 억제하지 Pyomo을 알 수 있습니다 가 별도의 하위 프로세스로 실행되면 솔로 실행 중에 Pyomo가 침입 정보 (예 : 현재 기존 변수 값)를 얻을 방법이 없습니다.