ConicBundle
|
SOCSupportFunction is an implementation of ConicBundle::SOCOracle for the minimization of the support function over the second order cone with x0=1, which may be used for Lagrangian relaxation of linear programs over the second order cone. More...
Classes | |
class | ConicBundle::SOCSupportMinorantExtender |
Implementation of MinorantExtender for SOCSupportFunction. More... | |
class | ConicBundle::SOCSupportFunction |
general purpose implementation of SOCOracle as explained in implemention of a SOCOracle (SOCSupportFunction) More... | |
class | ConicBundle::SOCSupportModification |
Collects modifications for SOCSupportFunction for appending, deleting or reassigning variables. More... | |
SOCSupportFunction is an implementation of ConicBundle::SOCOracle for the minimization of the support function over the second order cone with x0=1, which may be used for Lagrangian relaxation of linear programs over the second order cone.
The class SOCSupportFunction implements a general purpose version of SOCOracle for minimizing the support function
When adding this function to the solver by MatrixCBsolver::add_function(), one may specify a weight , a ConicBundle::FunctionTask, and an AffineFunctionTransformation for given and . Depending on the ConicBundle::FunctionTask, the solver actually minimizes the following:
If in setting up the groundset within MatrixCBSolver the variables are introduced with a linear cost vector and appropriate sign constraints, this corresponds to Lagrangian relaxation of the linear constraints in the second order cone program
or, as above in the Lagrangean relaxation setting
or, as above in the Lagrangean relaxation setting
The standard use of a SOCSupportFunction is to initialize it on construction with dimension>=1 and then to add this function to the MatrixCBSolver. If dynamic changes to this SOCSupportFunction are required afterwards (only adding, deleting, rearranging coordinates with index != 0 is allowed), use the class ConicBundle::SOCSupportModification within the corresponding problem modification routines of the MatrixCBSolver interface.
The minorant generated for the input cost vector is a maximizing element of the second order cone, so it is itself the basic primal data and no extra primal data is needed.
For facilitating input and output, SOCSupportFunction offers