Changeset 586


Ignore:
Timestamp:
09/29/11 17:35:47 (13 years ago)
Author:
grlod
Message:

Last modifications on dual algorithm

Location:
trunk/yao/include
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/yao/include/ObservationsDual.hpp

    r585 r586  
    196196  public: 
    197197  static double *x; 
     198  static int currentIteration; 
    198199  inline void operator() (Trajectory *aTrajectory, int aStepTime, Module *aModule, int anOutput, int aCoordI, int aCoordJ, int aCoordK, Yst_fobs *anObservation) 
    199200  { 
     
    209210      &epsi); 
    210211    //! m = m - epsi (G) 
    211     //!anObservation->m = anObservation->m - epsi * (anObservation->gradCostValue - anObservation->innovationValue); 
     212    anObservation->m = anObservation->m - (epsi * (anObservation->gradCostValue - anObservation->innovationValue) / currentIteration) ; 
    212213    //anObservation->m = anObservation->m - 0.8 * (anObservation->gradCostValue - anObservation->innovationValue); 
    213214    *x++ = anObservation->m; 
     
    215216}; 
    216217double *OCGradientDescent::x = NULL; 
    217  
     218int OCGradientDescent::currentIteration = 0; 
    218219class OCUpdateState 
    219220{ 
  • trunk/yao/include/RunModelDual.hpp

    r585 r586  
    6868  void costSum(); 
    6969  void setMinimizedM (double *aX); 
    70   void gradientDescent(); 
     70  void gradientDescent(int anIteration); 
    7171protected: 
    7272  int externalLoopId; 
     
    105105  aParam.ctonb = &ctonbe_; 
    106106  strcpy (aParam.normtype, "dfn"); 
    107   aParam.impres = 5; 
     107  aParam.impres = Y3impres; 
    108108  aParam.imode[0] = 0; 
    109109  aParam.imode[1] = 0; 
     
    270270        YItRun++; 
    271271        basicIterationLoop(); 
    272         gradientDescent(); 
     272        gradientDescent(i); 
     273        printf("Cost function value : %f\n",paramM1QN3.f); 
    273274#ifdef DEBUG 
    274275 
     
    10761077} 
    10771078 
    1078 void RunModelDual::gradientDescent() 
     1079void RunModelDual::gradientDescent(int anIteration) 
    10791080{ 
    10801081  OCGradientDescent::x = paramM1QN3.x; 
     1082  OCGradientDescent::currentIteration = anIteration + 1; 
    10811083 
    10821084  for (unsigned int i = 0; i < model->trajectories.size(); i++) 
  • trunk/yao/include/RunModelM1QN3.hpp

    r585 r586  
    8585  aParam.prosca = &euclid_; 
    8686  strcpy(aParam.normtype, "dfn"); 
    87   aParam.impres=1; 
     87  aParam.impres=Y3impres; 
    8888  aParam.imode[0]=0; 
    8989  aParam.imode[1]=0; 
Note: See TracChangeset for help on using the changeset viewer.