00001 // EvolutionStrategyChromosome.h: interface for the CEvolutionStrategyChromosome class. 00002 // 00004 00005 #if !defined(AFX_EVOLUTIONSTRATEGYCHROMOSOME_H__1E22383C_E578_4EDE_B401_FEC45761A74F__INCLUDED_) 00006 #define AFX_EVOLUTIONSTRATEGYCHROMOSOME_H__1E22383C_E578_4EDE_B401_FEC45761A74F__INCLUDED_ 00007 00008 #if _MSC_VER > 1000 00009 #pragma once 00010 #endif // _MSC_VER > 1000 00011 00012 class CEvolutionStrategyChromosome 00013 { 00014 public: 00015 CEvolutionStrategyChromosome(int nObject, int nStrategy); 00016 virtual ~CEvolutionStrategyChromosome(); 00017 int GetNObjectParameters() {return m_iNObjectParameters;} 00018 int GetNStrategyParameters() {return m_iNStrategyParameters;} 00019 void SetObjectParameters(double *newOPs); 00020 void SetStrategyParameters(double *newSPs); 00021 void SetObjFuncValue(double newVal) {m_dObjFuncValue = newVal;} 00022 double GetObjectParameter(int index) {return m_pdObjectParameters[index];} 00023 double GetStrategyParameter(int index) {return m_pdStrategyParameters[index];} 00024 double GetObjFuncValue() {return m_dObjFuncValue;} 00025 double *GetObjectParameters() {return m_pdObjectParameters;} 00026 double *GetStrategyParameters() {return m_pdStrategyParameters;} 00027 // necessary to sort a vector of pointers to chromosomes 00028 class CEvolutionStrategyChromosomeComparator 00029 { 00030 public: 00031 CEvolutionStrategyChromosomeComparator() {return;} 00032 virtual ~CEvolutionStrategyChromosomeComparator() {return;} 00033 bool operator()(CEvolutionStrategyChromosome *c1, CEvolutionStrategyChromosome *c2) 00034 { 00035 return c1->GetObjFuncValue() < c2->GetObjFuncValue(); 00036 } 00037 }; 00038 private: 00039 double m_dObjFuncValue; 00040 int m_iNObjectParameters; 00041 int m_iNStrategyParameters; 00042 double *m_pdObjectParameters; 00043 double *m_pdStrategyParameters; 00044 }; 00045 00046 #endif // !defined(AFX_EVOLUTIONSTRATEGYCHROMOSOME_H__1E22383C_E578_4EDE_B401_FEC45761A74F__INCLUDED_)