CNDSM  1.00
Volume Class Reference

Definition of the class Volume. More...

#include <Volume.h>

Inheritance diagram for Volume:
Deflection

Public Member Functions

 Volume (SubGrad *slvr, istream *iStrm=0)
 < Constructor of the class. More...
 
Other initializations
void SetVOLLog (ostream *outs=0, const char lvl=0)
 
void Format (void)
 
Reading the solution
void NewDEF (void)
 
cHpNum GetDFLCoeff (void)
 
const bool DoSS (void)
 
cHpNum Delta (void)
 
- Public Member Functions inherited from Deflection
 Deflection (SubGrad *slvr)
 Constructor of the class. More...
 
virtual ~Deflection ()
 

Additional Inherited Members

- Protected Member Functions inherited from Deflection
FiOracleGetOracle (void)
 Returns the pointer to FiOracle. More...
 
HpNum GetStepsize (void)
 Returns the stepsize $\nu_i$. More...
 
cHpNum GetGiNorm (void)
 Returns the norm of the subgradient $ g_i $. More...
 
cHpNum GetDNorm (void)
 Returns the norm of the direction $ d_i $. More...
 
cHpNum GetdGk (void)
 Returns the scalar product $ g_i^{\top} d_i $. More...
 
cHpNum GetSigma (void)
 Returns the linearization error $ \sigma_i $. More...
 
cHpNum GetEpsilon (void)
 Returns the linearization error $ \epsilon_i $. More...
 
cHpNum ReadFVal (void)
 Returns the full function $ f(\lambda_i) $. More...
 
- Protected Attributes inherited from Deflection
SubGradSolver
 (pointer to) the SubGrad solver
 
ostream * VOLLog
 the output stream object
 
char VOLLLvl
 the "level of verbosity"
 

Detailed Description

Definition of the class Volume.

This class implements the Volume algorithm. The method is revisited and incorporated in the SubGrad solver. The deflection coefficient is found solving a quadratic problem that involves the subgradient $ g_i $, the direction $ d_{i-1} $, and their respective linearization errors $ \sigma_i $ and $ \epsilon_{i-1} $ at the stability center $ \bar{\lambda}_i$, namely

\[ \tau_i = \arg\min \left\{ \; \nu_{i-1} \left\| \tau g_i + (1 - \tau) d_{i-1} \right\|^2/2 + \tau \sigma_i(\bar{\lambda}_i) + (1 - \tau)\epsilon_{i-1}(\bar{\lambda}_i) \;:\; \tau \in [0, 1]\; \right\} \]

Constructor & Destructor Documentation

Volume ( SubGrad slvr,
istream *  iStrm = 0 
)
inline

< Constructor of the class.

The parameter `iStrm', if provided, is taken as a pointer to a istream from which the algorithmic parameters for the Volume are sequentially read in the following order. Each parameter must be placed at the beginning of a separate line, max 255 characters long, with all the rest of the line up to the first newline character '
' (apart from a separating whitespace) being available for comments. Any line whose first character is '#' and any blank line is ignored. If 0 is passed, the file ends before reaching a given parameter, or some parameter is in the wrong format, each non-specified parameter is given a default value, shown in [] below.

  1. HpNum tauInit [0.05] $ \tau_0 $
  2. HpNum tauMin [1e-4] safety threshold of $ \tau:~ \tau_{\min}$
  3. HpNum tauFactor [0.5] factor $ \tau_{f} $
  4. HpNum tauIter [50] $$
  5. HpNum m [1e-3] descent parameter

References Deflection::Format(), and Deflection::SetVOLLog().