A linear-time algorithm to compute the conjugate of nonconvex bivariate piecewise linear-quadratic functions
Tanmaya Karmarkar, Yves Lucet
TL;DR
This work addresses computing the conjugate of nonconvex bivariate PLQ functions defined on polyhedral domains. It introduces a three-step framework that first convexifies each piece, then conjugates the convex pieces, and finally takes a maximum to assemble the global conjugate on a parabolic subdivision; the algorithm achieves linear time under triangulated domains. Theoretical contributions include establishing that the conjugate is a piecewise quadratic function on a parabolic subdivision and demonstrating that fractional forms do not arise, along with a complete recipe for Step 3 to obtain the final conjugate. An open-source MATLAB implementation using symbolic rational arithmetic is provided to avoid floating-point errors and to merge adjacent pieces efficiently, with experiments validating correctness and illustrating performance trends.
Abstract
We propose the first linear-time algorithm to compute the conjugate of (nonconvex) bivariate piecewise linear-quadratic (PLQ) functions (bivariate quadratic functions defined on a polyhedral subdivision). Our algorithm starts with computing the convex envelope of each quadratic piece obtaining rational functions (quadratic over linear) defined over a polyhedral subdivision. Then we compute the conjugate of each resulting piece to obtain piecewise quadratic functions defined over a parabolic subdivision. Finally we compute the maximum of all those functions to obtain the conjugate as a piecewise quadratic function defined on a parabolic subdivision. The resulting algorithm runs in linear time if the initial subdivision is a triangulation (or has a uniform upper bound on the number of vertexes for each piece). Our open-source implementation in MATLAB uses symbolic computation and rational numbers to avoid floating-point errors, and merges pieces as soon as possible to minimize computation time.
