00001 // BasicQuenchMinimizer.h: interface for the CBasicQuenchMinimizer class. 00002 // 00004 00005 #if !defined(AFX_BASICQUENCHMINIMIZER_H__87968086_C797_47B5_9824_87948AB93E4C__INCLUDED_) 00006 #define AFX_BASICQUENCHMINIMIZER_H__87968086_C797_47B5_9824_87948AB93E4C__INCLUDED_ 00007 00008 #if _MSC_VER > 1000 00009 #pragma once 00010 #endif // _MSC_VER > 1000 00011 00012 #ifndef _WIN32 00013 #define __min min 00014 #define __max max 00015 #endif 00016 //using namespace std; 00017 #include "SimulatedAnnealingStrategy.h" 00018 00019 class CBasicQuenchMinimizer : public CSimulatedAnnealingStrategy 00020 { 00021 public: 00022 CBasicQuenchMinimizer(int nTrialSteps, int nCycles, double initialStepScale, int seed, CParameterFilter *pFilter); 00023 virtual ~CBasicQuenchMinimizer(); 00024 virtual void InitializeTemperature(Minimizable *minimizable); 00025 virtual void GenerateMove(); 00026 virtual bool AcceptMove(double Eold,double Enew); 00027 virtual void Cool(); 00028 virtual bool Terminate(); 00029 virtual bool Equilibrated(); 00030 private: 00031 double m_dStepScale; 00032 double m_dInitialStepScale; 00033 int m_iNCycles; 00034 int m_iNTrialSteps; 00035 }; 00036 00037 #endif // !defined(AFX_BASICQUENCHMINIMIZER_H__87968086_C797_47B5_9824_87948AB93E4C__INCLUDED_)