ConicBundle
|
Classes | |
class | ConicBundle::QPSolver |
QPSolver is the access point for ConicBundle to the internal constrained QP Solver, see Internal QP Solver for linearly constrained groundsets. More... | |
class | ConicBundle::QPSolverBasicInterface |
defines the abstract interface for QPSolverBasicStructures that the basic routines there need to access the cost and constraint data; it also defines the interface to QPSolverBasicStructures, how to call those routines and how to retrieve the results. More... | |
class | ConicBundle::QPSolverParameters |
parameters for steering the termination criteria and solution method of the solver More... | |
class | ConicBundle::QPKKTSolverObject |
abstract class for setting up and solving the primal dual KKT System within QPSolverBasicStructures More... | |
class | ConicBundle::QPDirectKKTSolver |
implements a direct KKT Solver variant of QPKKTSolverObject More... | |
class | ConicBundle::QPKKT_SolverStats |
Used for collecting statics in QPKKTSolverComparison: For each bundle subproblem there is a block QPKKT_ProbStats, which holds for each KKT system a block of QPKKT_KKTStats, which holds for each solver a block QPKKT_SolverStats (this). More... | |
class | ConicBundle::QPKKT_KKTStats |
Used for collecting statics in QPKKTSolverComparison: For each bundle subproblem there is a block QPKKT_ProbStats, which holds for each KKT system a block of QPKKT_KKTStats (this), which holds for each solver a block QPKKT_SolverStats. More... | |
class | ConicBundle::QPKKT_ProbStats |
Used for collecting statics in QPKKTSolverComparison: For each bundle subproblem there is a block QPKKT_ProbStats (this), which holds for each KKT system a block of QPKKT_KKTStats, which holds for each solver a block QPKKT_SolverStats. More... | |
class | ConicBundle::QPKKTSolverComparison |
This is a pseudosolver designed for producing comparative statistics on the performance of mainly iterative solvers for the interior point KKT systems of QPSolver. More... | |
class | ConicBundle::QPIterativeKKTSolver |
Iterative solver for the full symmetric, in general indefinite primal dual KKT System within QPSolverBasicStructures. More... | |
class | ConicBundle::QPIterativeKKTHASolver |
Iterative solver for the reduced symmetric, in general indefinite primal dual KKT System within QPSolverBasicStructures, where only H and A blocks remain, B and C are removed by Schur complements. If there is no A, PCG may used. More... | |
class | ConicBundle::QPIterativeKKTHAeqSolver |
Iterative solver for the reduced symmetric, in general indefinite primal dual KKT System within QPSolverBasicStructures, where only the block H and the equality rows of A remain, the inequalities of A as well as B and C are removed by Schur complements. If there are no equalities in A, PCG may used, but MinRes seems to be more stable. More... | |
class | ConicBundle::QPKKTPrecondObject |
Abstract Interface for preconditioners to be used with a QPIterativeKKTSolver and a CH_Matrix_Classes::IterativeSolverObject, see Interfaces and Classes for Iterative Solvers like PCG, MINRES and PSQMR. It will depend on the system setup and the solver method which preconditioning routines are called and what requirements the preconditioners have to fulfill. Feasible combinations lie in the responsibility of the caller and are not checked for correctness. More... | |
class | ConicBundle::QPKKTSubspaceHPrecond |
Subspace projection preconditioner for the H-block of the KKT-System assuming that B and C have been Schur complemented into the H-block. For the A-Block, if it is there, the identity is used. If there is no A-block, PCG may be used. More... | |
class | ConicBundle::QPModelBlockObject |
abstract interface for model blocks in the constrained QPSolver More... | |
class | ConicBundle::QPModelBlock |
combines and provides basic functionalities of QPModelDataObject and QPModelBlockObject, but is still abstract More... | |
class | ConicBundle::QPSumModelBlock |
implements a (virtual) cutting model being built of a (possibly recursive) sum of QPModelBlock cutting model instances for QPSolver More... | |
class | ConicBundle::QPConeModelBlock |
implements a QPModelBlock for conic cutting models in QPSolver More... | |
class | ConicBundle::InteriorPointBlock |
abstract interface for interior point vector/matrix variables and routines specific to primal dual complementarity conditions of symmetric cones More... | |
class | ConicBundle::NNCIPBlock |
interface for the interior point variable vector and routines specific to the primal dual complementarity conditions of the nonnegative cone More... | |
class | ConicBundle::SOCIPBlock |
interface for interior point variable and routines specific to primal dual complementarity conditions of a second order cone More... | |
class | ConicBundle::InteriorPointBundleBlock |
abstract interface for interior point routines specific to primal dual complementarity conditions of a symmetric cone with special routines for handling the bundle and the trace constraint More... | |
class | ConicBundle::NNCIPBundleBlock |
interior point variables and routines specific to primal dual complementarity conditions of a nonnegative cone with special routines for handling the bundle and the trace constraint More... | |
class | ConicBundle::SOCIPBundleBlock |
interior point variables and routines specific to primal dual complementarity conditions of a second order cone with special routines for handling the bundle and the trace constraint More... | |
class | ConicBundle::QPPSCOracleDataObject |
defines an interface for passing on oracle information to PSCIPBundleBlock More... | |
If the groundset (see e.g. LPGroundset) of the convex optimization problem involves box constraints with a general quadratic proximal term (i.e. not just a diagonal) or general linear constraints even with diagonal proximal term, a constrained QP solver is required to determine the next candidate as the solution of the bundle subproblem. Because ConicBundle is designed to handle also nonpolyhedral cutting models arising from support functions over the second order cone and positive semidefinite cone the general solver is an intererior point method. More precisely, it implements a primal dual predictor corrector method.
The main visible object is QPSolver. This mainly serves as an interface for ConicBundle as it implements a QPSolverObject (for finding the next candidate via solving the quadratic bundle subproblem) and a QPDataPointer (for collection the cutting model information). The internal solver routines are mostly defined in QPSolverBasicStructures. The basic structures serve to describe all parts in connection with the linearly constraint groundset and the general iterative procedure of when to collect which data, when to solver the primal dual KKT-system and when to perform line searches. The central part of setting up and solving the primal dual KKT-system is supplied externally via the QPSolverParameters, which must specify a QPKKTSolverObject. Currently the following options exist for such an QPKKTSolverObject:
The cutting models are realized by two implemtented classes derived from QPModelBlock which brings together the abstract classes QPModelDataObject (interface for the cutting modles of ConicBundle) and QPModelBlockObject (interface for QPSolverBasicInterface and the QPKKTSolverObject)