📄 ga1darraysolution.h
字号:
#ifndef _GA1DARRAYSOLUTION_
#define _GA1DARRAYSOLUTION_
#include <vector>
using namespace std;
#include "CommonBase.h"
#include "PopSolution.h"
class GA1DArraySolution : public PopSolution
{
public:
UOFIdentity("GA1DArraySolution class",1);
public:
GA1DArraySolution(size_t length, UOFInitializer *init, UOFEvaluator *eval);
GA1DArraySolution(UOFInitializer *init, UOFEvaluator *eval);
GA1DArraySolution(const GA1DArraySolution&);
GA1DArraySolution& operator=(const GA1DArraySolution&);
virtual ~GA1DArraySolution();
virtual GA1DArraySolution* clone() const;
virtual void copy(const GA1DArraySolution&);
virtual void PrintSelf(ostream& os);
virtual void SelfInit();
virtual double score()
{
if(m_Age==0)
m_score = (*m_pEval)(static_cast<void*>(&(this->m_Array)));
m_Age++;
return m_score;
}
public:
vector<double> m_Array;
Crossover *m_pCros;
Mutator *m_pMutr;
int m_Age;
class MyOnePointCrossover : public Crossover
{
public:
virtual int operator()(PopSolution* p1, PopSolution* p2, PopSolution* c1, PopSolution* c2);
};
class MyNumericOnePointCrossover : public Crossover
{
public:
virtual int operator()(PopSolution* p1, PopSolution* p2, PopSolution* c1, PopSolution* c2);
};
class MyMutator : public Mutator
{
public:
virtual int operator()(PopSolution* src);
};
class MyNumericMutator : public Mutator
{
public:
virtual int operator()(PopSolution* src);
};
class MyInsertMutator : public Mutator
{
public:
virtual int operator()(PopSolution* src);
};
class ScrambleMutator : public Mutator
{
public:
virtual int operator()(PopSolution* src);
};
class InversionMutator : public Mutator
{
public:
virtual int operator()(PopSolution* src);
};
};
inline ostream& operator <<(ostream& os, GA1DArraySolution& s){s.PrintSelf(os); return os;}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -