Julia is a programming language oriented performance and scientific computing, but in doing so he created a very productive environment for the creation of specific languages ​​(DSL) : Julia has thus created a niche in mathematical optimization, JuMP is a modeling layer integrated into the programming language (like Pyomo in Python), but with a performance worthy of the best tools (like AMPL).

Version 0.20 of JuMP has just been released, with a series of minor improvements, such as defect fixes (all quite minor), improved documentation and more accurate error messages.

In addition, JuMP has functions to create a sensitivity ratio of the linear program solved (by exploiting the dual solution): lp_objective_perturbation_range allows to recover the range of variation of the coefficients of the objective such that the current base remains optimal, lp_rhs_perturbation_range of even for the right members of the constraints. These functions have theoretical limits: if the base is degenerate (several bases to represent the same solution), the indicated intervals will be much smaller than expected. See the documentation.

Other functions are appearing, of more specific utility. dual_objective_value allows to recover the dual value of the objective (often equal to the primal value, but not always, especially when the optimality is not reached). raw_status returns the solver return code directly, without translation from JuMP. set_parameter allows you to change the solver settings. set_objective_coefficient allows variable coefficient changes in the objective, when solving a sequence of problems, with a lower impact on performance than a complete change in objective function. set_normalized_rhs, normalized_rhs and add_to_function_constant deal with the constant part of the constraints.

JuMP 0.20 also relies on the abstraction layer of the MathOptInterface 0.9 solvers, which brings a lot of novelties, some of which are necessary for the contributions of JuMP 0.20 (like the attribute DualObjectiveValue). Older versions of Julia are no longer supported, I only work with Julia 1.0 at least. The submit function has made its appearance to submit attributes to the solver, such as heuristic solutions or delayed constraints, very useful notions for the implementation of advanced optimization algorithms and very effective (but not yet fully available in ME) . The dual_set function returns the dual set associated with a domain, which serves to efficiently dualis optimization problems (especially with Dualization). In addition, the test infrastructure has been enriched for the latest news, it also includes a module for testing the performance of solvers.

Source : JuMP

Related Articles
Leave a Reply

Your email address will not be published.