2016-12-07 26 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

太棒了!在[在線文檔(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