dynamic submodel selection


class  ConicBundle::SumBundle
 class for use with SumBlockModel and BundlData for storing and managing a common bundle describing (part of) the model More...
class  ConicBundle::SumBundleHandler
 routines for updating and handling SumBundle components, possibly by cooperating over several recursive levels More...

Detailed Description

Dynamic submodel selection is switched on or off via MatrixCBSolver::set_sumbundle().

Dynamic submodel selection works for sums of convex functions by maintaining a common model part for a dynamic selection of the oracles. For each oracle in the sum it can be decided whether it has a specialized separate model (called local model) or whether it contriubtes to the common model. A possible contributor to a sum of convex functions may itself be a sum of convex functions resulting in a recursive tree structure with the sums being the inner nodes and the leaves being the final oracles representing "elementary" functions. A common model may be initiated as the local model of any node (inner or leaf) which then acts as the root of this particular common model.

Internally dynamic sumbundle selection builds upon the following common structures in SumBlockModel, which is the abstract contributing block to the inner SumModel nodes (these organize sums of models of separate oracles, they are the inner nodes and typical roots of common models):