# Disciplined Biconvex Programming

arXiv: https://arxiv.org/abs/2511.01813 · HTML: https://mlsanity.com/paper/2511.01813/

## Key facts

- Cited by 2 papers in the map (data through 14 Oct 2026).
- Builds on 18 of its 74 references that are in the map.
- First posted on arXiv 3 Nov 2025.

## Builds on (most cited first, 18 of 18)

- [Convex optimization](https://mlsanity.com/paper/2106.01946/) (2021)
- [CVXPY: A Python-Embedded Modeling Language for Convex Optimization](https://mlsanity.com/paper/1603.00943/) (2016)
- [A Rewriting System for Convex Optimization Problems](https://mlsanity.com/paper/1709.04494/) (2017)
- [OSQP: An Operator Splitting Solver for Quadratic Programs](https://mlsanity.com/paper/1711.08013/) (2017)
- [Generalized Low Rank Models](https://mlsanity.com/paper/1410.0342/) (2014)
- [Clarabel: An interior-point solver for conic programs with quadratic objectives](https://mlsanity.com/paper/2405.12762/) (2024)
- [Disciplined Convex-Concave Programming](https://mlsanity.com/paper/1604.02639/) (2016)
- [Cardinal Optimizer (COPT) User Guide](https://mlsanity.com/paper/2208.14314/) (2022)
- [Convex Optimization in Julia](https://mlsanity.com/paper/1410.4821/) (2014)
- [Disciplined Geometric Programming](https://mlsanity.com/paper/1812.04074/) (2018)
- [Disciplined Quasiconvex Programming](https://mlsanity.com/paper/1905.00562/) (2019)
- [Sparse Bilinear Logistic Regression](https://mlsanity.com/paper/1404.4104/) (2014)
- [Disciplined Multi-Convex Programming](https://mlsanity.com/paper/1609.03285/) (2016)
- [Disciplined Saddle Programming](https://mlsanity.com/paper/2301.13427/) (2023)
- [Convergence of online k-means](https://mlsanity.com/paper/2202.10640/) (2022)
- [Bayesian Active Learning for Discrete Latent Variable Models](https://mlsanity.com/paper/2202.13426/) (2022)
- [Implementing a unified solver for nonlinearly constrained optimization](https://mlsanity.com/paper/2406.13454/) (2024)
- [Multi-convex Programming for Discrete Latent Factor Models Prototyping](https://mlsanity.com/paper/2504.01431/) (2025)

## Built on by (most cited first, 2 of 2)

- [Fitting Reinforcement Learning Model to Behavioral Data under Bandits](https://mlsanity.com/paper/2511.04454/) (2025)
- [Disciplined Bilevel Programming](https://mlsanity.com/paper/2609.00644/) (2026)

## Abstract (arXiv)

We introduce disciplined biconvex programming (DBCP), a modeling framework for specifying and solving biconvex optimization problems. Biconvex optimization problems arise in various applications, including machine learning, signal processing, computational science, and control. Solving a biconvex optimization problem in practice usually involves heuristic methods based on alternate convex search (ACS), which iteratively optimizes over one block of variables while keeping the other fixed, so that the resulting subproblems are convex and can be efficiently solved. However, designing and implementing an ACS solver for a specific biconvex optimization problem usually requires significant effort from the user, which can be tedious and error-prone. DBCP extends the principles of disciplined convex programming to biconvex problems, allowing users to specify biconvex optimization problems in a natural way based on a small number of syntax rules. The resulting problem can then be automatically split and transformed into convex subproblems, for which a customized ACS solver is then generated and applied. DBCP allows users to quickly experiment with different biconvex problem formulations, without expertise in convex optimization. We implement DBCP in the open-source Python package dbcp, as an extension to the well known domain specific language CVXPY for convex optimization.
