pythonoptimizationpyomoamplscip

Problems in Interfacing Scip with Pyomo


I am trying to solve a nonlinear optimization problem using Pyomo. At first, I tried the Ipopt solver and I got the things running. I then wanted to try the solver Scip to try for global optimization since Ipopt is a local solver. However, I get an error that I can not understand while using it.

Getting Scip working with Pyomo was not straightforward, however through some help on internet and through some trial and error, I was able to get scip executable for windows from here. I named the executable as scipampl and added it to my PATH.

Pyomo is able to see the solver as when I run the following command, it returns True.

SolverFactory('scip').available() 

Feeling confident that I got the things working, I then tried to run my code. I setup my Solverfactory as follows:

solver     =  'scip'               
solver_io  =  'nl'                  
opt        =   SolverFactory(solver, solver_io = solver_io)

But to my disappointment, I receive the following error in the end:

[Errno 2] No such file or directory: 'C:\\Users\\NITINN~1.SIN\\AppData\\Local\\Temp\\tmpc0hzo5_7.pyomo.sol'

I have tried to look on the internet as to what does this mean, but so far I have been out of luck. I would appreciate if anyone can throw some light over what the possible cause for this might be ?

Thanks.


Solution

  • You need an executable of the SCIP/AMPL interface. The normal SCIP executable, which is probably the one you got, doesn't contain one. Currently, the last available one for Windows on the SCIP download page is this one: https://scip.zib.de/download.php?fname=scipampl-6.0.0.win.x86_64.intel.opt.spx2.exe.zip