BIE |
/home/weinberg/src/BIE/include/TemperedDifferentialEvolution.h00001 // This is really -*- C++ -*- 00002 00003 #ifndef TemperedDifferentialEvolution_h 00004 #define TemperedDifferentialEvolution_h 00005 00006 #include <LikelihoodComputation.h> 00007 #include <MHWidth.h> 00008 #include <MHWidthOne.h> 00009 #include <Simulation.h> 00010 #include <DifferentialEvolution.h> 00011 #include <Chain.h> 00012 00013 #include "Serializable.h" 00014 00015 00016 namespace BIE { 00017 00018 //+ CLICLASS TemperedDifferentialEvolution SUPER DifferentialEvolution 00052 class TemperedDifferentialEvolution : public DifferentialEvolution 00053 { 00054 private: 00055 int Nlevels, pk; 00056 unsigned tcount; 00057 unsigned jcount; 00058 00059 public: 00060 00062 static int Ninter; 00063 00065 static double tpow; 00066 00068 static int minmc; 00069 00071 static unsigned tfreq; 00072 00074 //+ CLICONSTR int int int string int double BaseDataTree* Model* Integration* Converge* MixturePrior* LikelihoodComputation* MCAlgorithm* 00076 //+ CLICONSTR int int int string int double BaseDataTree* Model* Integration* Converge* MixturePrior* LikelihoodComputation* MCAlgorithm* Simulation* 00078 TemperedDifferentialEvolution(int max, int ndim, int number, 00079 string deinit, int minmc_p, double maxT, 00080 BaseDataTree* d, 00081 Model* m, 00082 Integration* i, 00083 Converge* c, 00084 MixturePrior* mp, 00085 LikelihoodComputation* l, 00086 MCAlgorithm* mca, 00087 Simulation* last=0); 00088 00089 //+ CLIMETHOD void SetTempFreq int 00091 void SetTempFreq(int n) { tfreq = n; } 00092 00093 //+ CLIMETHOD void SetEquilSteps int 00095 void SetEquilSteps(int n) { Ninter = n; } 00096 00097 //+ CLIMETHOD void SetTpow double 00099 void SetTpow(double x) { tpow = x; } 00100 00101 //+ CLIMETHOD void SetMinMC int 00103 void SetMinMC(int n) { minmc = n; } 00104 00107 virtual void PrintStepDiagnostic(); 00108 00109 00110 protected: 00111 00113 vector<double> up; 00114 00116 vector<double> down; 00117 00119 vector<double> beta; 00120 00122 vector<double> factor; 00123 00125 int curswp; 00126 00128 int curtry; 00129 00131 int totswp; 00132 00134 int tottry; 00135 00137 double MaxT; 00138 00140 vector<unsigned long> mstat0, stat0T; 00141 00143 vector<unsigned long> mstat1, stat1T; 00144 00146 bool tstat; 00147 00149 virtual void MCMethod(); 00150 00152 virtual void OneDifferentialEvolutionStep(); 00153 00155 virtual void PowerUP(int); 00156 00158 virtual void PowerDOWN(int); 00159 00160 // AUTO GENERATED BY ../persistence/autopersist.py 00161 protected: 00162 TemperedDifferentialEvolution() {} 00163 private: 00164 friend class boost::serialization::access; 00165 template<class Archive> 00166 void serialize(Archive & ar, const unsigned int version) { 00167 this->pre_serialize(ar, version); 00168 try { 00169 ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(DifferentialEvolution); 00170 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00171 } 00172 try { 00173 ar & BOOST_SERIALIZATION_NVP(Nlevels); 00174 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00175 } 00176 try { 00177 ar & BOOST_SERIALIZATION_NVP(tcount); 00178 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00179 } 00180 try { 00181 ar & BOOST_SERIALIZATION_NVP(jcount); 00182 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00183 } 00184 try { 00185 ar & BOOST_SERIALIZATION_NVP(Ninter); 00186 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00187 } 00188 try { 00189 ar & BOOST_SERIALIZATION_NVP(tpow); 00190 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00191 } 00192 try { 00193 ar & BOOST_SERIALIZATION_NVP(minmc); 00194 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00195 } 00196 try { 00197 ar & BOOST_SERIALIZATION_NVP(tfreq); 00198 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00199 } 00200 try { 00201 ar & BOOST_SERIALIZATION_NVP(up); 00202 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00203 } 00204 try { 00205 ar & BOOST_SERIALIZATION_NVP(down); 00206 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00207 } 00208 try { 00209 ar & BOOST_SERIALIZATION_NVP(beta); 00210 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00211 } 00212 try { 00213 ar & BOOST_SERIALIZATION_NVP(factor); 00214 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00215 } 00216 try { 00217 ar & BOOST_SERIALIZATION_NVP(curswp); 00218 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00219 } 00220 try { 00221 ar & BOOST_SERIALIZATION_NVP(curtry); 00222 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00223 } 00224 try { 00225 ar & BOOST_SERIALIZATION_NVP(totswp); 00226 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00227 } 00228 try { 00229 ar & BOOST_SERIALIZATION_NVP(tottry); 00230 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00231 } 00232 try { 00233 ar & BOOST_SERIALIZATION_NVP(MaxT); 00234 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00235 } 00236 try { 00237 ar & BOOST_SERIALIZATION_NVP(mstat0); 00238 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00239 } 00240 try { 00241 ar & BOOST_SERIALIZATION_NVP(stat0T); 00242 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00243 } 00244 try { 00245 ar & BOOST_SERIALIZATION_NVP(mstat1); 00246 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00247 } 00248 try { 00249 ar & BOOST_SERIALIZATION_NVP(stat1T); 00250 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00251 } 00252 try { 00253 ar & BOOST_SERIALIZATION_NVP(tstat); 00254 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00255 } 00256 this->post_serialize(ar, version); 00257 } 00258 00259 }; 00260 } 00261 00262 BIE_CLASS_TYPE_INFO(BIE::TemperedDifferentialEvolution) 00263 BIE_CLASS_EXPORT_KEY(BIE::TemperedDifferentialEvolution) 00264 #endif Send suggestions, questions, and feedback to WEINBERG at ASTRO dot UMASS dot EDU. Documentation generated at Fri Mar 26 00:35:11 2010 by
|