available for testing
https://www.tu-chemnitz.de/~helmberg/ConicBundle/
ConicBundle is a callable library for C/C++ that implements a bundle
method for minimizing the sum of convex functions that are given by
first order oracles or arise from Lagrangian relaxation of particular
conic linear programs.
The library offers a number of special features:
* Upper and lower bounds may be specified for each design variable; in
a less efficient and somewhat experimental variant general linear
constraints are allowed, as well.
* Instead of one common cutting plane model for the entire sum of
functions, each function may either have its own specialized cutting
model – this may help to improve convergence – or it may be grouped
together with others in a common standard cutting plane model.
* It provides substantial support for Lagrangian relaxation, i.e., if
the problem corresponds to finding the optimal dual multipliers
obtained by relaxing linear constraints in a relaxation or
decomposition of a primal problem.
o It allows to generate approximate primal optimal solutions.
o It supports cutting plane approaches by allowing dynamic
addition and deletion of dual variables without loss of quality
in the cutting models.
* The code offers special cutting models for linear programs over the
second order cone and the cone of real symmetric positive
semidefinite matrices.
The library comes with three variants of interfaces:
* Interface to ConicBundle for the Language C
* Interface to ConicBundle for the Language C++
* Interface to ConicBundle for the Language C++ using Matrix Classes
The interface offers the most but may require more time to get
acquainted with. It includes
o an abstract first order oracle for general convex functions
o a specialized box oracle with special purpose cutting model
which together with supported affine argument transformations
supports Lagrangian relaxation of linear programs over box
constrained domains
o an abstract positive semidefinite cone oracle (ConicBundle
exploits this in a special purpose model for the semidefinite
cone or, equivalently, for maximum eigenvalue functions) and an
implemented variant for affine matrix functions
o an abstract second order cone oracle (ConicBundle exploits this
in a special purpose model for the second order cone) and an
implemented variant for affine vector functions
o all oracles can be combined with affine function transformations
o each oracle may be used either as an objective function or as a
penalty function with fixed or adaptive penalty factor
o dynamic submodel selection allows to optimize various oracles
jointly as a sum of convex functions where each oracle's model
moves between being part of a common general cutting model and
forming a dedicated cutting model
o support for various quadratic proximal terms with support for
variable metric
o regarding the groundset of the design variables there is special
support for
+ unconstrained ground sets (no constraints on the design
variables)
+ box constrained ground sets (upper and lower bounds on each
variable)
+ linearly constrained ground sets (may be significantly
slower, testing was limited to simple instances so far)
o dynamic modification support for adding/deleting/modifying
variables, oracles and constraints (needed e.g. for Lagrangian
relaxations of cutting planes; see also the Tutorial
Implementation of the SDP Max-Cut Relaxation with Triangle
Separation)
Anything free comes without guarantee:
The program is distributed is under the terms of the Gnu General Public
License Version 3 or any later version, in the hope that it will be
useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
An Online-Manual is available at the site.
Please give me your feedback on errors and misleading explanations ...
Christoph Helmberg
**********************************************************
*
* Contributions to be spread via DMANET are submitted to
*
* DMANET@zpr.uni-koeln.de
*
* Replies to a message carried on DMANET should NOT be
* addressed to DMANET but to the original sender. The
* original sender, however, is invited to prepare an
* update of the replies received and to communicate it
* via DMANET.
*
* DISCRETE MATHEMATICS AND ALGORITHMS NETWORK (DMANET)
* http://www.zaik.uni-koeln.de/AFS/publications/dmanet/
*
**********************************************************