Disciplined Bilevel Programming

arXiv:2609.00644 · math.OC, cs.CE, cs.LG, cs.MS · Submitted 2026-09-01 · Read on arXiv

math.OC, cs.CE, cs.LG, cs.MS

Submitted: 2026-09-01

Updated: 2026-10-01

Code: https://github.com/dxogrp/blvpy

License: http://creativecommons.org/licenses/by/4.0/

The gist: Bilevel optimization provides a natural modeling language for hierarchical decision problems.

Terminology

Abstract

Bilevel optimization provides a natural modeling language for hierarchical decision problems. However, applying existing numerical solvers usually requires substantial manual analysis and reformulation. In this paper, we introduce disciplined bilevel programming (DBLP), a symbolic framework that allows users to specify and solve optimistic bilevel problems in a high-level, human-readable way that is close to the mathematical formulation. For problems with a disciplined nonlinear upper problem and a convex lower problem satisfying the disciplined parameterized programming rules, DBLP automatically canonicalizes the lower problem into conic form and constructs an equivalent single-level reformulation using the conic Karush-Kuhn-Tucker conditions. We relax the resulting complementarity constraint and use a gap continuation procedure to approximately solve a sequence of smooth nonlinear problems. We implement DBLP in the open-source Python package BLVPY, an extension of CVXPY for bilevel programming. We demonstrate the modeling and solution capabilities of BLVPY on a range of bilevel optimization problems from several application domains. The proposed framework and implementation allow users to specify and solve bilevel optimization problems within a few lines of code, without prior expertise in bilevel modeling and numerical optimization.

Sources

Related papers