What is GpoSolver?
Global polynomial optimization can be a powerful tool
when applied to engineering problems. One of the most
successful methods for solving such problems is based
on convex linear matrix inequality (LMI) relaxations.
Software implementations of this approach can be found
for example in Matlab
toolboxes
GloptiPoly and YALMIP.
Matlab language makes
it very easy when it comes to modeling polynomial
problems. However, when using these toolboxes,
Matlab is also required
for the problem solving. GpoSolver aims at bridging
this gap by providing a Matlab-based problem modeling
toolbox supplemented by a problem solving backend in a
form of a C++ template library. Once a problem is
conveniently modeled and parametrized in Matlab, a C++ class is
automatically generated by GpoSolver. This class can be
easily included into an existing codebase and used to
solve different instances of the problem based on the
supplied parameters.
GpoSolver is developed at Center for Machine
Perception, the Czech Technical University in
Prague, Czech Republic. The primary developers are
- Jan Heller, homepage, <hellej1 AT cmp.felk.cvut.cz>
- Tomas Pajda, homepage, <pajdla AT cmp.felk.cvut.cz>
GpoSolver workflow. The
workflow is divided into the problem modeling phase and
the problem solving phase. In the next figure, the
problem parameters are denoted in blue. The concrete
values of these parameters are not determined until the
problem solving phase. There, the parameters can be
easily updated and different problem instances can be
conveniently solved.
Polynomial matrix inequalities optimization problem
Let
be multivariate polynomials in
, i.e.,
. GpoSolver is able to solve the
following polynomial matrix inequalities optimization
(PMI) problems:
Problem 1
Here,
stands for the set of
symmetric matrices with polynomial
entries and the condition
means that the polynomial matrix
is positive semidefinite. Note that if
,
becomes a simple polynomial,
. Also note that if the polynomial
degree of
and maximal polynomial degree of all
entries of
,
, is one, the above problem becomes a
Semidefinite Programming (SDP) problem.
Platforms & Dependencies
The Matlab toolbox will
run on every Matlab
supported platform provided that Symbolic Math Toolbox
with MuPAD engine is available. The C++ template
library is also platform agnostic, however, there are
several dependencies as well. It is based on C++ linear
algebra library Eigen and it needs to
be linked against one of these SDP solvers: CSDP, SDPA, or MOSEK. Both parts were tested
on Ubuntu Linux and Windows 7 64-bit.
Licence
GpoSolver is free software: you can redistribute it
and/or modify it under the terms of the GNU Lesser General
Public License as published by the Free Software
Foundation, either version 3 of the License, or (at
your option) any later version.