📄 cgaqueen.h
字号:
#include "CGenome.h"
class CgaQueen
{
public:
vector<CGenome> m_vecGenomes;//群体
vector<CGenome>::iterator m_vecGenomes_it;//相应的迭代器
CGenome m_CSolve;
int m_iQueen;//皇后的个数,也就是染色体的个数
int m_iChromoLength;//染色体的位数
int m_iPopSize;//群体大小
double m_dCrossRate;//杂交率
double m_dMutationRate;//变异率
int m_iGeneLength;
int m_iFittestGenome;
double m_dBestFitnessScore;
double m_dTotalFitnessScore;
int m_iGeneration;//代数
int m_iGroup;//种群数
bool m_bBusy;
bool m_bSolved;
public:
CgaQueens(double CrossRate,double MutationRate,int ChromoLength,int PopSize);
public:
void Mutate(vector<int>&baby);//变异
void CrossOver(vector<int>&mum,vector<int>&dad,vector<int>&baby1,vector<int>&baby2);//杂交
//PMX部分映射杂交
void CrossOverPMX(vector<int>&mum,vector<int>&dad,vector<int>&baby1,vector<int>&baby2);//杂交
int RouletteWheelSelection();//赌轮选择法
//用新的适应性分数来更新基因组原有的适应性分数
//并计算群体的最高适应性分数和适应性分数最高的那个成员
bool UpdateFitnessScores();
//创建一个随机的初始群体
void CreateStartPopulation();
//显示所有染色体
void ShowChromo();
void Epoach();
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -