Difference of Convex Functions Algorithm (DCA)
- Difference-of-Convex functions Algorithm (DCA) is a method that represents a nonconvex function as the difference of two convex functions to simplify optimization.
- The Boosted DC Algorithm (BDCA) enhances classical DCA by incorporating an extrapolation step, leading to significant convergence speedups and robust descent properties.
- BDCA is practically effective for linearly constrained DC programming, with rigorous convergence guarantees to KKT points and demonstrated efficiency in applications like quadratic programming and copositivity detection.
A difference-of-convex (DC) function is any function that can be represented as the difference of two convex functions, i.e. with convex and proper. The Difference of Convex functions Algorithm (DCA) is a foundational method for DC programming, iteratively linearizing the “concave” part and minimizing a convex surrogate. The Boosted DC Algorithm (BDCA) extends classical DCA by incorporating an extrapolation step along the DCA descent direction, typically using a line-search. This simple but effective acceleration mechanism yields provable and substantial improvements in convergence properties and empirical performance, enabling broad applicability to linearly constrained DC programs and quadratic programming with box or trust-region constraints. BDCA guarantees monotonic descent, generalizes to large-scale and nonsmooth settings, and provides rigorous convergence to Karush–Kuhn–Tucker points under Slater-type conditions, with geometric rates in specific quadratic scenarios (Artacho et al., 2019).
1. Problem Formulation and DC Decomposition
The relevant problem class is linearly-constrained DC programming: where are proper, closed, convex; is differentiable, and both and are -strongly convex for some . The feasible set is a polyhedron , and the problem is equivalently
with the indicator of . Analysis assumes:
- (A1) , are -strongly convex,
- (A2) subdifferentiable everywhere, ,
- (A3) Slater: there exists strictly feasible.
2. Classical DCA: Structure and Descent
At each iteration :
- Select ,
- Form the convex surrogate: ,
- Compute its unique minimizer: ,
- Set .
The key property is strong convexity descent: monotonic decrease of the objective, and .
3. The Boosted DC Algorithm (BDCA): Algorithmic Acceleration
BDCA augments DCA’s surrogate minimization with extrapolation:
- Compute ,
- If (criticality), stop.
- Check feasibility of extrapolation at (active constraints).
- Initialize , backtrack (with ) until
for some . Else, .
- Update .
BDCA pseudocode (see full details (Artacho et al., 2019)) guarantees: and descent holds with finitely many backtracking steps.
4. Convergence Theory: Stationarity and Linear Rates
BDCA exhibits the following under (A1)-(A3) (strong convexity, subdifferentiability, Slater):
- Every cluster point is a KKT point for .
- The sequence is nonincreasing and convergent.
- .
- For quadratic objectives
one can split , with .
- Under Slater, global -linear convergence:
for some KKT point .
5. Algorithmic Complexity, Practical Implementation, and Numerical Performance
Empirical tests compare DCA and BDCA on three classes:
- Copositivity detection (): BDCA is on average faster, with speedup growing in .
- , trust-region subproblems: BDCA achieves () and () speedup.
- Piecewise quadratic programs with box constraints: BDCA uniformly outperforms DCA; speedup improves with the number of pieces.
In all cases, BDCA yields greater per-iteration descent, and overhead for feasibility and objective evaluations is offset by significant improvements in convergence. BDCA always produces solutions with at least as small or better objective value compared to DCA. Boosting is activated in of iterations depending on the problem type.
| Problem Class | BDCA Speedup over DCA | Fraction of Boosted Steps | Scaling with Problem Size |
|---|---|---|---|
| Copositivity | Increases with | ||
| trust-region | Stable across | ||
| trust-region | Stable across | ||
| Piecewise Quadratic | varies (increases with ) | varies | Grows with number of pieces |
6. Theoretical Significance and Practical Guidelines
BDCA generalizes the classical DCA with a robust extrapolation mechanism, resulting in provably stronger descent steps, improved convergence rates, and practical scalability. The global KKT property, rigorous monotonicity, and linear rates in the quadratic and box-constrained cases match those found in best-in-class convex optimization algorithms (Artacho et al., 2019). Whenever the inner DCA subproblem is tractable (e.g. projection onto feasible set), it is highly recommended to adopt BDCA: line-search/extrapolation yields substantial acceleration with no loss in theoretical guarantees. The overhead of feasibility and function checking is negligible compared to gains from larger steps.
7. Extensions, Limitations, and Comparative Perspective
Though BDCA is formulated and proven for linearly constrained, strong-convexity DC programs with smooth surrogates, practical variants exist for nonsmooth and block-structured problems—see the referenced works for extensions. Limitations include reliance on strong convexity for global guarantees, and the need for efficiently computable projections or inner subproblems. In practice, BDCA’s boosting is automatically shut off at criticality, guaranteeing justification of acceleration only when empirically effective. Comparison with classical DCA in large-scale numerical tests validates the advantage of BDCA across a range of domains.
Key Reference:
"The Boosted DC Algorithm for linearly constrained DC programming" (Artacho et al., 2019)