Setting MIP and NLP solvers path using Pyomo MindtPySolver

14 views
Skip to first unread message

Zhongyu Zhang

unread,
May 10, 2024, 5:22:47 PMMay 10
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