NDOSolver / FiOracle
Interfaces and Solvers for NonDifferentiable Optimization
|
#include <ColorTV.h>
Public Types | |
Public types | |
The ColorTV defines one main public types: | |
enum | condition { green , yellow , red } |
Public Member Functions | |
ColorTV (SubGrad *slvr, std::istream *iStrm=0) | |
void | SetSTPLog (ostream *outs=0, const char lvl=0) |
void | Format (void) |
void | NewStep (void) |
bool | NeedsdkM1Gk (void) |
![]() | |
Stepsize (SubGrad *slvr, istream *iStrm=0) | |
virtual void | SetSTPLog (std::ostream *outs=0, const char lvl=0) |
virtual HpNum | GetStepsize (bool StepIsIncr=false) |
virtual HpNum | GetLev (void) |
virtual HpNum | GetBeta (void) |
virtual void | SetMaxBeta (const HpNum alpha) |
Protected Member Functions | |
bool | UpdateTargetLevel (void) |
![]() | |
HpNum | GetCoeffDefl (void) |
FiOracle * | GetOracle (void) |
HpNum | GetGiNorm (void) |
HpNum | GetDNorm (void) |
HpNum | GetdGk (void) |
HpNum | GetdkM1Gk (void) |
Index | GetNItIcr (void) |
HpNum | ReadFkVal (void) |
HpNum | ReadFiBar (void) |
Private Member Functions | |
condition | coloring (void) |
Private Attributes | |
Index | greentestinvl |
maximum number of consecutive green iteration | |
Index | yellowtestinvl |
maximum number of consecutive yellow iteration | |
Index | redtestinvl |
maximum number of consecutive red iteration | |
Index | lastgreeniter |
the last green iteration | |
Index | lastyellowiter |
the last yellow iteration | |
Index | lastrediter |
the last red iteration | |
HpNum | BetaZero |
HpNum | LwrBnd |
lower bound | |
HpNum | lastvalue |
the previous function value | |
HpNum | FiLmbd |
current FiLambda | |
Index | NrIter |
Additional Inherited Members | |
![]() | |
SubGrad * | Solver |
(pointer to) the SubGrad solver | |
std::ostream * | STPLog |
the output stream object | |
char | STPLLvl |
the "level of verbosity" | |
HpNum | FiLev |
the target level \( f^{lev}_i \) | |
HpNum | Beta |
beta factor \( \beta_i \) | |
HpNum | MaxBeta |
maximum value for beta factor | |
HpNum | LpsFct |
scaling factor | |
Definition of the class ColorTV. This class implements the target stepsize used in the original Volume algorithm. The method is based on classifying the iterations based on the obtained improvement of the function Fi().
enum condition |
Constructor of the class. Since the constructor of ColorTV is executed after the one of Stepsize, the following parameters specific for ColorTV have to be found in the stream after those of the base class [see the comments to the constructor of Stepsize]:
|
inlinevirtual |
The method initializes the stepsize rule.
Reimplemented from Stepsize.
|
inlinevirtual |
Returns true if the stepsize requires the scalar product \( d_{i-1}^{\top} g_i\). The default implementation don't require this value.
Reimplemented from Stepsize.
|
inlinevirtual |
This method must be called before GetStepsize() [see below]. This is indeed the core of every derived class, producing a new step.
If the derived class implements a target value stepsize rule, the method must compute both the scalar \( \beta_i \) and the level \( f^{lev}_i \).
Typically, the previous step will be unavailable after the call to NewStep() [see GetStepsize()].
Implements Stepsize.
|
inlineprotectedvirtual |
It tries to provide a new target level \( f^{lev}_i \). It true is returned, the level has been changed. By default, it returns false.
Reimplemented from Stepsize.