BilevelJuMP.jl: Modeling and Solving Bilevel Optimization Problems in Julia

Informs Journal on Computing, 2023

BilevelJuMP.jl: Modeling and Solving Bilevel Optimization Problems in Julia

In this paper, we present BilevelJuMP.jl, a new Julia package to support bilevel optimization within the JuMP framework. The package is a Julia library that enables the user to describe both upper and lower-level optimization problems using the JuMP algebraic syntax. Because of the generality and flexibility that our library inherits from JuMP’s syntax, our package allows users to model bilevel optimization problems with conic constraints in the lower level and all constraints supported by JuMP in the upper level including conic, quadratic, and nonlinear constraints. Moreover, the models defined with the syntax from BilevelJuMP.jl can be solved by multiple techniques that are based on reformulations as mathematical programs with equilibrium constraints (MPEC). Manipulations on the original problem data are possible due to MathOptInterface.jl’s structures and Dualization.jl features. Hence, the proposed package allows quick modeling, deployment, and thereby experimenting with bilevel models based on off-the-shelf mixed-integer linear programming and nonlinear solvers.

Link
Fale Conosco