# Disciplined Convex-Concave Programming

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

## Key facts

- Cited by 29 papers in the map (data through 14 Oct 2026).
- First posted on arXiv 10 Apr 2016.

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

- [Strategic Classification Made Practical](https://mlsanity.com/paper/2103.01826/) (2021)
- [Re-weighting Based Group Fairness Regularization via Classwise Robust Optimization](https://mlsanity.com/paper/2303.00442/) (2023)
- [Aleatoric and Epistemic Discrimination: Fundamental Limits of Fairness Interventions](https://mlsanity.com/paper/2301.11781/) (2023)
- [Loss-Aversively Fair Classification](https://mlsanity.com/paper/2105.04273/) (2021)
- [Modeling Techniques for Machine Learning Fairness: A Survey](https://mlsanity.com/paper/2111.03015/) (2021)
- [Decision-Focused Learning with Directional Gradients](https://mlsanity.com/paper/2402.03256/) (2024)
- [Through the Data Management Lens: Experimental Analysis and Evaluation of Fair Classification](https://mlsanity.com/paper/2101.07361/) (2021)
- [Risk-Averse Stochastic Shortest Path Planning](https://mlsanity.com/paper/2103.14727/) (2021)
- [Correlation inference attacks against machine learning models](https://mlsanity.com/paper/2112.08806/) (2021)
- [Efficient Fairness-Performance Pareto Front Computation](https://mlsanity.com/paper/2409.17643/) (2024)
- [Risk-Averse Decision Making Under Uncertainty](https://mlsanity.com/paper/2109.04082/) (2021)
- [Revisiting Frank-Wolfe for Structured Nonconvex Optimization](https://mlsanity.com/paper/2503.08921/) (2025)
- [Disciplined Biconvex Programming](https://mlsanity.com/paper/2511.01813/) (2025)
- [Stochastic Neural Networks for Automatic Cell Tracking in Microscopy Image Sequences of Bacterial Colonies](https://mlsanity.com/paper/2104.13482/) (2021)
- [Analysis and Detectability of Offline Data Poisoning Attacks on Linear Dynamical Systems](https://mlsanity.com/paper/2211.08804/) (2022)
- [Towards Assumption-free Bias Mitigation](https://mlsanity.com/paper/2307.04105/) (2023)
- [Training Single-Layer Morphological Perceptron Using Convex-Concave Programming](https://mlsanity.com/paper/2401.02296/) (2024)
- [Scalable DC Optimization via Adaptive Frank-Wolfe Algorithms](https://mlsanity.com/paper/2507.17545/) (2025)
- [Accelerating Regularized Attention Kernel Regression for Spectrum Cartography](https://mlsanity.com/paper/2604.25138/) (2026)
- [Towards interpretability of Mixtures of Hidden Markov Models](https://mlsanity.com/paper/2103.12576/) (2021)
- [Accounting for Model Uncertainty in Algorithmic Discrimination](https://mlsanity.com/paper/2105.04249/) (2021)
- [Least-Squares Linear Dilation-Erosion Regressor Trained using a Convex-Concave Procedure](https://mlsanity.com/paper/2107.05682/) (2021)
- [An Encoder-Decoder Approach for Packing Circles](https://mlsanity.com/paper/2308.07335/) (2023)
- [Finding Moving-Band Statistical Arbitrages via Convex-Concave Optimization](https://mlsanity.com/paper/2402.08108/) (2024)
- [Morphological Perceptron with Competitive Layer: Training Using Convex-Concave Procedure](https://mlsanity.com/paper/2509.05697/) (2025)
- [RDD: Pareto Analysis of the Rate-Distortion-Distinguishability Trade-off](https://mlsanity.com/paper/2509.24805/) (2025)
- [The Spectral Neuron](https://mlsanity.com/paper/2608.08003/) (2026)
- [Difference-of-Convex Regularization for Graph Learning by Differentiable Programming](https://mlsanity.com/paper/2608.12757/) (2026)
- [Disciplined Bilevel Programming](https://mlsanity.com/paper/2609.00644/) (2026)

## Abstract (arXiv)

In this paper we introduce disciplined convex-concave programming (DCCP), which combines the ideas of disciplined convex programming (DCP) with convex-concave programming (CCP). Convex-concave programming is an organized heuristic for solving nonconvex problems that involve objective and constraint functions that are a sum of a convex and a concave term. DCP is a structured way to define convex optimization problems, based on a family of basic convex and concave functions and a few rules for combining them. Problems expressed using DCP can be automatically converted to standard form and solved by a generic solver; widely used implementations include YALMIP, CVX, CVXPY, and Convex.jl. In this paper we propose a framework that combines the two ideas, and includes two improvements over previously published work on convex-concave programming, specifically the handling of domains of the functions, and the issue of nondifferentiability on the boundary of the domains. We describe a Python implementation called DCCP, which extends CVXPY, and give examples.
