ConicBundle
Classes
dynamic modification support for adding/deleting/modifying variables, oracles and constraints

Most classes are specializations/reinterpretations of the class Modification. More...

Classes

class  ConicBundle::ModificationBase
 basic routines for the base classes for reorganizing maps More...
 
class  ConicBundle::Modification
 base class for collecting and organizing a sequence of changes to linear data so that it can be carried out in one step later on; this class comprises all features, derived ones are specializations with partial reinterpretations. More...
 
class  ConicBundle::GroundsetModification
 Collects modifications for the unconstrained Groundset for appending, deleting or reassigning variables. More...
 
class  ConicBundle::LPGroundsetModification
 Collects modifications for the linearly constrained LPGroundset for appending, deleting or reassigning variables (with bounds and starting values) and constraints (with bounds) More...
 
class  ConicBundle::AFTModification
 collects modifications for an AffineFunctionTransformation for the scaling and offset constants as well as for appending, deleting or reassigning columns and rows of the transformation data More...
 
class  ConicBundle::FunctionObjectModification
 abstract interface for informing the bundle model routines about changes in the oracle function and, possibly, for modifying the affine transformation of the oracle function's arguments. More...
 

Detailed Description

Most classes are specializations/reinterpretations of the class Modification.

Dynamic additions and deletions of variables during the optimization process occur frequently in Lagrangian relaxation of primal linear cutting planes that are separated on basis of a current approximate solution. In the context of sums of convex functions they frequently represent coupling ressource constraints between function subgroups that compete for this ressource. The typical features are thus

If the Lagrangian relaxation of a changing set of linear constraints is modelled via an AffineFunctionTransformation on the support function of the primal groundset, then all aspects can be handled and checked by ConicBundle directly. Indeed, in this case, the function representing the ground set will not be affected by the changes in the argument function. In several applications, however, the changes might also affect the function itself (e.g. if it uses a column generation approach on the primal side) and ConicBundle then needs the cooperation of the function in order to keep a model alive as long as possible. The attempt to support this in any thinkable form entails rather cumbersome details.

Examples modifications for the various oracle classes are NNCBoxSupportModification, SOCSupportModification, PSCAffineModification and AFTModification. The classes Modification and GroundsetModification come in handy in this.