{ompr} 1.0 release + mini roadmap #397
dirkschumacher
started this conversation in
General
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Hey everyone,
I worked hard in the recent weeks to publish a new version of {ompr} together with a new version of {ompr.roi} 🙌. {ompr.roi} will land on CRAN in the coming days, once the new {ompr} package has propagated through CRAN mirrors.
What is new?
The most important change is a redesign of the
MIPModel
backend, based on what I learned building rmpk. The new backend is now easier to maintain, faster for larger models, has fewer bugs (hopefully) and some new features. It should be backwards compatible. Should you notice any problem with your existing code, please let me know.sum_over
sum_expr
is now calledsum_over
. The reason is thatsum_expr
does not create an expression anymore as in the originalMIPModel
version, it rather sums over variables. In fact, it is now a regular function.sum_expr
will stay in the package for now to not break anything.set_bounds
supports (in)equalitiesInspired by @sbmack's issue #365,
MIPModel
now supports (in)equalities for setting bounds which gives you more options to specify variable bounds.All quantifiers are now managed by the package {listcomp}
I extracted the quantifier logic out of {rmpk} and built {listcomp}. This gives you now a consistent way of specifying quantifiers that support dependent indexes and {rlangs}' quotation syntax. It works the same for
add_variable
,add_constraint
,set_bounds
andsum_over
.You can now access additional solver specific information from {ompr.roi}
{ROI} has two generic status codes
0
and1
. Where0
means "success" and1
otherwise. These will now be mapped to "success" or "error" in {ompr.roi}. However the solver itself reveals more information that can be accessed usingadditional_solver_output(solution)
(available in v1.0.1). For example, when you set a time limit in GLPK,ROI
returnscode=1
, but the actual solver code fromGLPK
isGLP_FEAS
. You can now access that for a specific solver.Take a look at the full release-notes for {ompr} and {ompr.roi} for all the details.
If you fnd any bugs, please report issues and post your question in the Discussion section of the repository.
What is next?
I do not have a big master plan, but here are some ideas for the future:
MILPModel
turned out to be too complicated for complex use-cases and it produces a lot of problems, as far as I can tell. As the newMIPModel
is reasonable fast and could be made even faster, I strongly tend towards removingMILPModel
from the package at some point in the future.As I am developing all of that in my free time, I don't want to promise anything. But starting this year I went full-time freelance, which might give me more opportunities to work on {ompr} and related packages. You can follow me on Twitter, if you want to get regular updates on {ompr} et al. Or even work with me on optimization projects.
Beta Was this translation helpful? Give feedback.
All reactions