Pyomo / pyomo

An object-oriented algebraic modeling language in Python for structured optimization problems.
https://www.pyomo.org
Other
2.01k stars 516 forks source link

APPSI interface for GLPK #2558

Open ldeluigi opened 2 years ago

ldeluigi commented 2 years ago

Summary

Do you plan to add an APPSI interface for GLPK?

Rationale

I see from the documentation that the interface is already available for cbc, cplex, gurobi and ipopt. I'm a GLPK user and I'm using it to solve many similar problems with small changes, which is the use case for APPSI.

Description

Source: https://pyomo.readthedocs.io/en/stable/library_reference/appsi/appsi.html Probably this list should be updated, and GLPK should be included in available APPSI. GLPK is faster than cbc in for my use case and is also much easier to install (especially on Alpine Linux).

Additional information

In addition, are APPSI available for windows users? By simply using pip install it seems that they don't get installed at all.

jsiirola commented 2 years ago

APPSI is a developmental solver interface where we are exploring ideas for supporting efficient model updates / resolves. Long term we hope to support all Pyomo solvers; however, at the moment, I am not aware of any developers actively working on additional solver interfaces. Pull requests are always welcome, and we would be happy to work with you if you want to tackle adding GLPK support.

As for Windows, yes: APPSI works and is tested on Windows. However you will need to build the interfaces locally. We attempted including pre-built interfaces in the wheels / conda packages a while back and were running into portability challenges on Windows. Again, if you have expertise in building portable compiled Python extensions in Windows and want to tackle that, pull requests are most welcome!

ldeluigi commented 2 years ago

Atm I'm too busy for such a task, but I wanted to let the community know that pyomo needs such a feature in the hope that someone picks this issue up and tries to implement one. Thanks to everyone for the good work done so far.