CovarianceMatrixAdaptation.hpp

00001 // This file is part of the imaging2 class library.
00002 //
00003 // University of Innsbruck, Infmath Imaging, 2009.
00004 // http://infmath.uibk.ac.at
00005 //
00006 // All rights reserved.
00007 
00008 
00009 #ifndef MINIMIZE_COVARIANCEMATRIXADAPTATION_H
00010 #define MINIMIZE_COVARIANCEMATRIXADAPTATION_H
00011 
00012 #include <minimize/EnergyInterface.hpp>
00013 #include <minimize/MinimizerInterface.hpp>
00014 
00015 namespace imaging
00016 {
00022   class CovarianceMatrixAdaptation : public MinimizerInterface
00023   {
00024     std::size_t _lambda;
00025     float_t _sigma;
00026     std::size_t _mu;
00027     ublas::vector<float_t> _w;
00028     float_t _c_sigma;
00029     float_t _d_sigma;
00030     float_t _mu_eff;
00031     float_t _mu_cov;
00032     float_t _c_cov;
00033     float_t _c_c;
00034     std::size_t _n;
00035     ublas::matrix<float_t> _C;
00036     ublas::vector<float_t> _p_sigma;     
00037     ublas::vector<float_t> _p_c; 
00038     bool _terminated;
00039       
00040     EnergyInterface & _energy;
00041     
00042     float_t _min_update;
00043     
00044     void init(float_t sigma, float_t min_update, std::size_t lambda);
00045   
00046   public:
00048     CovarianceMatrixAdaptation(EnergyInterface & energy, float_t sigma, float_t min_update, std::size_t lambda);  
00049       
00051     CovarianceMatrixAdaptation(EnergyInterface & energy, float_t sigma, float_t min_update); 
00052 
00053     bool minimize(size_t n_max_steps, size_t & n_actual_steps);
00054   };
00055 
00056 }
00057 
00058 #endif

Generated on Tue Feb 10 10:01:30 2009 for imaging2 by  doxygen 1.5.5