Is there a bridge from GNU MathProg to solvers other than GLPK (Clp/Cbc, HiGHS...)?

This is a basic question for which my web search didn’t bring useful answer. Question:

Are there tools to solve an MILP optimization problem formulated using GNU MathProg (the modeling language bundled with GLPK) using solvers other than GLPK (e.g. Clp/Cbc, HiGHS)?

I’m asking because in my memory, MathProg was tied to the GPLK solver. However, while reformating my notes from the Grenoble workshop, I had noticed during @JN_Louis presentation that IRENA FlexTool (developped at VTT for what I understand) is written in MathProg but solved using Clp or HiGHS. So, if this is correct, this means that there exists a bridge: a general one or an internal bridge baked in FlexTool?

We have bridged mathprog to HiGHS using GLPK. We ask GLPK to generate an MPS file, feed that into HiGHS and then run GLPK again with the HiGHS generated solution file to output results.

We are using GLPK from here: GitHub - mingodad/GLPK: Mirror of GLPK versions and changes made by me and by others elsewhere (there was some issue with the original GLPK when doing this).

The steps are basically these:

  1. glpsol --check --model flexModel3.mod -d FlexTool3_base_sets.dat --wfreemps flexModel3.mps
  2. highs flexModel3.mps --options_file=highs.opt
  3. glpso --model flexModel3.mod -d FlexTool3_base_sets.dat -r flexModel3.sol
1 Like

Ah OK, so MPS is the bridge. Good to know, thanks!

Here is the definitive documentation on the question of interoperability:

Only the native GLPK solver is accessible directly. Other solvers must be passed text-based representations of the optimization problem in either CPLEX or MPS formats. HTH, R