PGR Matlab function

PGR is a Matlab function that solves the polyhedral gauge recovery problem (minimization of a polyhedral gauge on an affine subspace, with uniqueness detection).

Description of the function

PGR solves the optimization problem
$ \left\{\begin{array}{l} \inf_x\; f(x) \\ Ax = b, \end{array}\right. $
where $f$ is a polyhedral gauge on $\mathbb{R}^n$, $A$ is an $m\times n$ matrix and $b\in\mathbb{R}^n$.

A gauge is a function $f:\mathbb{R}^n\to\mathbb{R}_+\cup\{+\infty\}$ that is convex, nonnegative ($f(x)\geq0$ for all $x\in\mathbb{R}^n$), positively homogeneous of degree one ($f(tx)=t\,f(x)$ for all $x\in\mathbb{R}^n$ and $t>0$), and that vanishes at the origin ($f(0)=0$). The gauge is said to be polyhedral if its epigraph is a polyhedron. The polyhedral gauge is supposed to be defined by its polyhedral 1-sublevel set $\{x\in\mathbb{R}^n: f(x)\leq1\}$, which is the convex hull of the columns of a given matrix $C$ plus the conic (convex) hull of the columns of a given matrix $D$. It is assumed that zero belongs to that sublevel set, but nothing is done to check this (it would require too much computational effort); hence the answer may not be correct if the assumption is not verified.

The problem is rewritten as a linear optimization problem and solved using the Matlab function Linprog. The solver can detect uniqueness of the computed solution if any.

Author

Jean Charles Gilbert (INRIA-Paris, France).

Documentation

There is no other documentation than the one inside the function, which is accessible by entering
help pgr
in a Matlab window.

Associated publication

You are invited to read and cite the following paper, on which the code is grounded:
On the solution uniqueness characterization in the L1 norm and polyhedral gauge recovery, by J.Ch. Gilbert, Journal of Optimization Theory and Applications, 172:1 (2017) 70-101. [doi]

Version

Version 1.0 (2015).

License

The function is distributed under the QPL license.

Download

pgr