2016-12-07 7 views
2

У меня есть модель Pyomo, что в конечном итоге получает решить, как так:Pyomo: Предельное число итераций

solver = SolverFactory('ipopt') 
results = solver.solve(model,tee=False) 

Модель ток проходит за 3000 итераций, прежде чем отказаться.

На мой взгляд, должен быть способ использовать одну из этих двух линий, чтобы ограничить количество итераций. Как я могу это сделать?

ответ

5

Это работает?

solver = SolverFactory('ipopt') 
solver.options['max_iter'] = 10 
results = solver.solve(model,tee=False) 
+0

Это, спасибо! Откуда вы это узнали? Я не нашел его в документации. – Richard

+0

Отлично! В [Online Documentation (18.12 Параметры отправки решателю)] (https://software.sandia.gov/downloads/pub/pyomo/PyomoOnlineDocs.html#_sending_options_to_the_solver) они показывают, как они отправляют параметры решателю. – johannesmik

+0

И в [документации Ipopt] (https://www.coin-or.org/Ipopt/documentation/node40.html#app.options_ref) указан параметр max_iter. Видимо, вы также можете увидеть параметры, запустив 'ipopt -print-options'. – johannesmik