Issue1199

Title Support to additional LP solvers
Priority feature Status chatting
Superseder Nosy List florian, gustavo, jendrik, malte
Assigned To gustavo Keywords
Optional summary
- We've added support for Gurobi and HiGHS. 
- The implementation is a simple prototype, which we will use as our starting 
point. 
- We ran some experiments comparing Gurobi, HiGHS, CPLEX, and Soplex on the 
default optimal benchmark suite. 
- A branch with the prototype is here:  
https://github.com/remochristen/downward/tree/lpsolvers_hack

Created on 2026-02-09.10:45:00 by gustavo, last changed by florian.

Summary
- We've added support for Gurobi and HiGHS. 
- The implementation is a simple prototype, which we will use as our starting 
point. 
- We ran some experiments comparing Gurobi, HiGHS, CPLEX, and Soplex on the 
default optimal benchmark suite. 
- A branch with the prototype is here:  
https://github.com/remochristen/downward/tree/lpsolvers_hack
Files
File name Uploaded Type Edit Remove
experiment.md gustavo, 2026-02-09.16:16:28 text/markdown
Messages
msg12028 (view) Author: florian Date: 2026-02-23.11:56:24
When we changed the LP interface a few years back from OSI to our custom interface, the performance of SoPlex dropped by 13 tasks. We have been trying to analyze this in issue1124 and tracked it down to changes and bugs in SoPlex. Since you are running tests with SoPlex versions 6 and 8, it would be good to also check if we regain the lost performance with this upgrade. Of course more things could have changed between version 6 and 8 but at least the bug fixed in version 6.0.4 should also be fixed in version 8.
msg11972 (view) Author: gustavo Date: 2026-02-09.16:16:28
We have some initial results to share, which can be found here:

https://ai.dmi.unibas.ch/_experiments/gustavo/sprint2026_lpsolvers/data/sprint20
26_lpsolvers-benchmark_solvers-eval/sprint2026_lpsolvers-
benchmark_solvers.html#summary

A complete description of the experimental setup and an analysis of the results 
are in the attached file.
msg11971 (view) Author: gustavo Date: 2026-02-09.10:45:00
We want to explore LP solvers, such as Gurobi, HiGHS, Google OR-Tools, and FICO 
Xpress. So far, we have implemented interfaces for Gurobi and HiGHS. The 
implementations currently use some 'hacks' to change two-sided constraints into 
one-sided versions during model creation. As one of the next steps, we want to 
change the LP interface to only support one-sided constraints.
History
Date User Action Args
2026-02-23 11:56:24floriansetmessages: + msg12028
2026-02-09 16:16:28gustavosetfiles: + experiment.md
messages: + msg11972
summary: Branch with changes not meant for merging yet: https://github.com/remochristen/downward/tree/lpsolvers_hack -> - We've added support for Gurobi and HiGHS. - The implementation is a simple prototype, which we will use as our starting point. - We ran some experiments comparing Gurobi, HiGHS, CPLEX, and Soplex on the default optimal benchmark suite. - A branch with the prototype is here: https://github.com/remochristen/downward/tree/lpsolvers_hack
2026-02-09 10:45:00gustavocreate