Repository navigation
OMPR Extension to Xpress Solver #451
bmdahl1
started this conversation in
Show and tell
Replies: 1 comment
|
Great work! |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
I'm a big fan of the OMPR syntax for developing MIP models, and I also have access to a FICO Xpress license (full, not community). FICO recently in the last few years extended the functionality of their Xpress optimizer by including an R package
xpressto be able to run optimization models directly in R. Unfortunately, it only includes syntax for developing the model in add row + add column ('m not sure the formal name for that setup) syntax which I'm not that familiar with (all my experience is using algebraic modeling languages).However, I saw Dirk's post (https://x.com/dirk_sch/status/1489965247171543045?s=20) about how it's not that difficult to extend OMPR to other solvers, so I thought I'd give it a try myself and try to create an OMPR extension to be able to run the Xpress algorithm. As such, I've created the
ompr.xpresspackage and have started using OMPR to solve models with Xpress in R.So far, the main issue I've run into is that FICO makes changes to the
xpresspackage that breaks code from previous versions. As such, I can't guarantee the package will work for versions earlier than Xpress 9.4 (pretty much the most recent version). I had originally developed the package while using Xpress 8.13, and had to make a number of revisions to the package once I upgraded my Xpress version.In my experience, the main benefit to using Xpress instead of an open source alternative is that it offers a much richer set of features. In my use I primarily take advantage of the ability to warm start with a pre-loaded solution, perform sensitivity analysis on a MIP problem by fixing integers after the initial solve, perform infeasibility analysis that can often point in the direction of the constraint causing infeasible solutions, and solve large problems in a few seconds that open source solvers can't find solutions to at all (at least in reasonable timeframe).
I initially created this package primarily for individual use, but please feel free to offer feedback on how it can be improved in any way, especially if it can increase it's utility to the open-source world.
(https://github.com/bmdahl1/ompr.xpress)
All reactions