Groups keyboard shortcuts have been updated
Dismiss
See shortcuts

Setting MIP and NLP solvers path using Pyomo MindtPySolver

37 views
Skip to first unread message

Zhongyu Zhang

unread,
May 10, 2024, 5:22:47 PM5/10/24
to Pyomo Forum

I am using Pyomo 5.6.8 and trying to resolve a non linear optimization problem using MindtPySolver.


I have no issue on my local machine, simply calling the solve method with these arguments:

SolverFactory('mindtpy').solve(model, mip_solver='cbc', nlp_solver='ipopt') 


However, when I go cloud on Azure, Pyomo doesn't get the path to the CBC and IPOPT solvers. When needing to resolve a problem that is linear, I can bypass the issue using the following command, by adding executable argument when creating SolverFactory instance with a LP solver:

SolverFactory("cbc", executable="/path/to/my/virtual/env/bin/cbc")


In my non-linear programming case, MindtpySolver doesn't accept additional argument. I looked at the doc & source code and couldn't find option to specify solver path, that is unfortunately not recognized by default on my Azure environment.


I tried to pass options using the "solver_args" options found on source code like this:

SolverFactory('mindtpy').solve(  model, nlp_solver_args={ "executable": "/path/to/my/virtual/env/bin/ipopt" }, mip_solver_args={ "executable": "/path/to/my/virtual/env/bin/cbc" }, mip_solver='cbc', nlp_solver='ipopt', )

But I'm still getting "WARNING: Could not locate the 'ipopt' executable, which is required for solver" like errors. I insist on the fact that all solvers (here cbc and ipopt) can be found in my virtual environment. Is there a way to specify solvers path using MindtPySolver?

Reply all
Reply to author
Forward
0 new messages