NDOSolver / FiOracle
Interfaces and Solvers for NonDifferentiable Optimization
Loading...
Searching...
No Matches
Polyak Class Reference

#include <Polyak.h>

Inheritance diagram for Polyak:
Stepsize

Public Member Functions

 Polyak (SubGrad *slvr, std::istream *iStrm)
 
void SetSTPLog (ostream *outs=0, const char lvl=0)
 
void Format (void)
 
void NewStep (void)
 
- Public Member Functions inherited from Stepsize
 Stepsize (SubGrad *slvr, istream *iStrm=0)
 
virtual void SetSTPLog (std::ostream *outs=0, const char lvl=0)
 
virtual bool NeedsdkM1Gk (void)
 
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)
 
- Protected Member Functions inherited from Stepsize
HpNum GetCoeffDefl (void)
 
FiOracleGetOracle (void)
 
HpNum GetGiNorm (void)
 
HpNum GetDNorm (void)
 
HpNum GetdGk (void)
 
HpNum GetdkM1Gk (void)
 
Index GetNItIcr (void)
 
HpNum ReadFkVal (void)
 
HpNum ReadFiBar (void)
 

Additional Inherited Members

- Protected Attributes inherited from Stepsize
SubGradSolver
 (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
 

Detailed Description

Definition of the class Polyak. This class implements a target value stepsize rule, whereby \(\beta_i\) and \(f^{lev}_i\) are constant (they do not depend on $i$).

Constructor & Destructor Documentation

◆ Polyak()

Polyak ( SubGrad * slvr,
std::istream * iStrm )
inline

Constructor of the class. Since the constructor of Polyak is executed after the one of Stepsize, the following parameters specific for the Polyak have to be found in the stream after those of the base class [see the comments in the constructor of Stepsize].

  1. HpNum Beta [ 1e-2 ] beta value.

Member Function Documentation

◆ Format()

void Format ( void )
inlinevirtual

The method initializes the stepsize rule.

Reimplemented from Stepsize.

◆ NewStep()

void NewStep ( void )
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.

◆ UpdateTargetLevel()

bool UpdateTargetLevel ( void )
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.


The documentation for this class was generated from the following file: