45 fConvValue( FLT_MAX ),
47 fBestResult( FLT_MAX ),
48 fLastResult( FLT_MAX )
68 if( fSteps < 0 || fImprovement < 0 )
return kFALSE;
71 fConvValue = fCurrentValue;
74 if( withinConvergenceBand )
75 improvement =
TMath::Abs(fCurrentValue - fConvValue);
77 improvement = fConvValue - fCurrentValue;
78 if ( improvement <= fImprovement || fSteps<0) {
82 fConvValue = fCurrentValue;
84 if (fCounter < fSteps)
return kFALSE;
93 if( fCounter > fMaxCounter )
94 fMaxCounter = fCounter;
115 if ( fBestResult > fLastResult || fSuccessList.size() <=0 ) {
116 fLastResult = fBestResult;
117 fSuccessList.push_front( 1 );
119 fSuccessList.push_front( 0 );
121 while( ofSteps <= fSuccessList.size() )
122 fSuccessList.erase( fSuccessList.begin() );
125 std::deque<Short_t>::iterator vec = fSuccessList.begin();
126 for (; vec != fSuccessList.end() ; ++vec) {
~ConvergenceTest()
destructor
Bool_t HasConverged(Bool_t withinConvergenceBand=kFALSE)
gives back true if the last "steps" steps have lead to an improvement of the "fitness" of the "indivi...
Float_t Progress()
returns a float from 0 (just started) to 1 (finished)
Float_t SpeedControl(UInt_t ofSteps)
this function provides the ability to change the learning rate according to the success of the last g...
ConvergenceTest()
constructor
static uint64_t sum(uint64_t i)