40 fConvValue( FLT_MAX ),
42 fBestResult( FLT_MAX ),
43 fLastResult( FLT_MAX )
66 if( fSteps < 0 || fImprovement < 0 )
return kFALSE;
69 fConvValue = fCurrentValue;
72 if( withinConvergenceBand )
73 improvement =
TMath::Abs(fCurrentValue - fConvValue);
75 improvement = fConvValue - fCurrentValue;
76 if ( improvement <= fImprovement || fSteps<0) {
80 fConvValue = fCurrentValue;
82 if (fCounter < fSteps)
return kFALSE;
91 if( fCounter > fMaxCounter )
92 fMaxCounter = fCounter;
113 if ( fBestResult > fLastResult || fSuccessList.size() <=0 ) {
114 fLastResult = fBestResult;
115 fSuccessList.push_front( 1 );
117 fSuccessList.push_front( 0 );
119 while( ofSteps <= fSuccessList.size() )
120 fSuccessList.erase( fSuccessList.begin() );
123 std::deque<Short_t>::iterator vec = fSuccessList.begin();
124 for (; vec != fSuccessList.end() ; vec++) {
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)
ConvergenceTest()
constructor
~ConvergenceTest()
destructor
Float_t SpeedControl(UInt_t ofSteps)
this function provides the ability to change the learning rate according to the success of the last g...