In this paper we present BilevelJuMP, 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. Due to the generality and flexibility 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 JuMP supported constraints in the upper level (Conic, Quadratic, Non-Linear, Integer, etc.). Moreover, the user-defined problem can be subsequently solved by various techniques relying on mathematical program with equilibrium constraints (MPEC) reformulations. Manipulations on the original problem data are possible due to MathOptInterface.jl's structures and Dualization.jl features. Hence, the proposed package allows quickly model, deploy, and thereby experiment bilevel models based on off-the-shelf mixed integer linear programming and nonlinear solvers.
翻译:在本文中,我们展示了Bilevel JuMP, 这是一个新的Julia软件包, 用于支持JuMP框架内双级优化。 这个软件包是一个Julia 图书馆, 使用户能够用JuMP代数语法描述上层和下层优化问题。 由于我们图书馆从JuMP的语法中继承下来的通用性和灵活性, 我们的软件包可以让用户模拟下层相似限制的双级优化问题, 所有 JuMP 都支持上层的限制( Conic, Quadratic, Non- Linear, Integer 等 ) 。 此外, 用户定义的问题随后可以通过依赖数学程序、 平衡限制( MPEC) 重新校定的各种技术来解决 。 由于 MathOpt Interface.jl 的结构和两极化. jl 特性, 原始问题数据的配置是可能的。 因此, 拟议的软件包可以快速进行模型、 部署, 并从而实验基于离层混合线性线性编程和非线性解算器的双级模型 。