GloptiPoly 3- moments, optimization and semidefinite programming

Developed by Didier Henrion, Jean-Bernard Lasserre and Johan Loefberg.


GloptiPoly 3 is intended to solve, or at least approximate, the Generalized Problem of Moments (GPM), an infinite-dimensional optimization problem which can be viewed as an extension of the classical problem of moments. From a theoretical viewpoint, the GPM has developments and impact in various areas of mathematics such as algebra, Fourier analysis, functional analysis, operator theory, probability and statistics, to cite a few. In addition, and despite a rather simple and short formulation, the GPM has a large number of important applications in various fields such as optimization, probability, finance, control, signal processing, chemistry, cristallography, tomography, etc.

The present version of GloptiPoly 3 can handle moment problems with polynomial data. Many important applications in e.g. optimization, probability, financial economics and optimal control, can be viewed as particular instances of the GPM, and (possibly after some transformation) of the GPM with polynomial data.

The approach is similar to that used in the former version 2 of GloptiPoly. The software allows to build up a hierarchy of semidefinite programming (SDP), or linear matrix inequality (LMI) relaxations of the GPM, whose associated monotone sequence of optimal values converges to the global optimum.


The public release of GloptiPoly 3 was annonced during the IMA Workshop on Optimization and Control in January 2007 in Minneapolis.

GloptiPoly 3 is described in:

  • D. Henrion, J. B. Lasserre, J. Loefberg. GloptiPoly 3: moments, optimization and semidefinite programming. Optimization Methods and Software, Vol. 24, Nos. 4-5, pp. 761-779, 2009.

    The GPM and its SDP formulation are described in:

  • J. B. Lasserre. A Semidefinite programming approach to the generalized problem of moments. Mathematical Programming, Vol. 112, pp. 65-92, 2008.


    GloptiPoly 3.10 (5 July 2021) can be downloaded as a zip archive, including this documentation for version 3.3. It is developed for Matlab 7.2 and higher.

    It is a freeware subject to the General Public Licence (GPL) policy.


    GloptiPoly 3.6 benefited from feedback by Damien Bily, Florian Bugarin, Mathieu Claeys, Akin Delibasi, Martin Mevissen, Carlo Savorgnan and Tung Phan Thanh.

    Gloptipoly 3.7 benefited from feedback by Milan Korda and Jiawang Nie.

    Gloptipoly 3.8 fixes a bug in the YALMIP interface pointed out by Mathieu Claeys.

    GloptiPoly 3.9 fixes a bug in the case of no objective function as pointed by Swann Marx, Quentin Vila and Tillmann Weisser.

    Gloptipoly 3.10 fixes a bug in the @mpol/subs function as reported by Lu Wang and Eloise Berthier.

    Please forward comments, suggestions and bug reports to Didier Henrion.

    Last updated on 5 July 2021.