我在Windows机器上通过Pyomo/Python使用Bonmin。Bonmin正在通过二进制文件使用,HSL解决器也在使用。我可以成功地更改Bonmin的默认解决程序,但是IPOPT仍然使用腮腺炎作为线性求解器。
我尝试过在文件夹中包含一个bonmin.opt文件(Bonmin的可执行文件或.py文件),但是Pyomo没有解释它。
为了将线性求解器分配给Bonmin,我使用下面的命令行:
选项‘线性求解器’= 'ma27‘
为了在Bonmin中将线性求解器分配给IPOPT,我尝试了许多不同的命令,但没有找到任何有效的命令。示例包括:
选项‘ipopt.linesolver’= 'ma27‘
选项‘’ipopt_linear‘= 'ma27’
以及其他许多不同的语法。我已经搜索过Bonmin和IPOPT的手册,但是如果语法被接受,我仍然会收到同样的警告:
注意:默认情况下,您使用的是Ipopt和腮腺炎线性求解器。其他线性求解器可能更有效(请参阅Ipopt文档)。
否则,语法甚至不被接受。
你有什么意见建议?
发布于 2020-04-20 08:52:40
根据BONMIN文档这里,如果您想为Ipopt设置选项(当在BONMIN中使用时),则必须在文件bonmin.opt中设置它们。
像这样的东西,跳
import pyomo.opt
with pyomo.opt.SolverFactory("bonmin") as solver:
solver.options.option_file_name = "bonmin.opt"
with open("bonmin.opt", "w") as f:
# f.write() # Here you can specify options for BONMIN using the "bonmin." prefix
f.write("linear_solver ma27\n") # This is the IPOPT option
solver.solve(model)有关IPOPT选项文件的更多信息可以找到这里。
https://stackoverflow.com/questions/61313897
复制相似问题