jump-dev / MathOptInterface.jl

A data structure for mathematical optimization problems
http://jump.dev/MathOptInterface.jl/
Other
397 stars 87 forks source link

Integrating MOI into an industry-scale project (e.g. constraint management) #1679

Closed pboes closed 2 years ago

pboes commented 2 years ago

Hi, I have been tasked by my employer to think about a general "Operations Research Framework" that guides future operations research projects, both at the level of project management (how to organise this in an agile way, processes, etc.) but also at the level of best practices for the codebase. The types of optimization problem that this should cover are quite general (sometimes simple LPs but also sometimes highly nonlinear problems with black-box character for which anytime algos or metaheuristics would be the right choice) and MOI seems like the right level of abstraction to formulate how models should be written down, constraints documented and annotated, etc.

Part of the requirement will be that it should very simple to present one's current understanding of the optimization problem to stakeholders, in a language that they understand and including giving a full list of all constraints that are in place. For this reason I'm thinking about how to integrate MOI into some kind of constraint management system. For instance, there could be Constraint structs with human-readable metadata and descriptions but also fields that correspond to the MOI ConstraintIndex and then these could be stored an SQL database or something like this. It would be great if this could be done without dislinking the "stakeholder-facing" version of the problem from the "solver-facing" version, in order to avoid the two versions moving out of sync, etc.

I find it hard to get started on this, moving the model definition away from the simple enumeration of variables-constraints-objective in a single file, and am wondering about how other people manage the OR problems in practice, whether tools for this exist, etc. Any help on this is much appreciated.

Cheers, Paul

odow commented 2 years ago

Let's keep the discussion to the community forum. I'll reply to you there: https://discourse.julialang.org/t/integrating-mathoptinterface-into-an-industry-scale-project-e-g-constraint-management/71943