📄 gastructs.h
字号:
#define MAXSTRLENGTH 100 //这里是不用分号的
struct SingleInformation //个体结构体
{
double *x; //指向参数变量数组的指针,数组大小根据IniData结构体的parameters来定
char Bin[MAXSTRLENGTH]; //二进制编码
char Gray[MAXSTRLENGTH]; //格雷码编码
double funvalue; //函数值
double fitness; //适应度值
int gentimes; //遗传次数
float genrate; //遗传概率
int parent1,parent2; //父母
int ID; //该个体的编号
};
struct GengerationResult //一代的计算结果结构体
{
float sumfitness; //这一代的适应度值的总和
float max; //这一代中的最大值
int maxID; //这一代中的最大值对应ID号
float min; //这一代中的最小值
int minID; //这一代中的最小值对应ID号
float avg; //这一代中的平均值
float variance; //这一代的适应度的方差
int maxnum; //这一代最大值个数
int ID; //记录总第几代
float varfitness; //这一代与上一代的平均适应度变化值
};
//初始化值保存结构
struct IniData
{
int parameters; //记录参数个数
int popsize; //群体规模
int lchrom; //单个参数所对应的染色体长度
int maxgen; //最大代数
float crossrate; //交叉概率
float mutationrate; //变异概率
};
struct pop
{
SingleInformation * newpop;//指向新群体
SingleInformation * oldpop;//指向旧群体
SingleInformation * temp; //用于交换的指针
//GengerationResult *GR;
};
//输出格式,记录各种数据的长度
struct ReportFormat
{
int x_l; //x值的长度
bool Reportx; //是否输出x值
int Bin_l; //二进制编码的长度
bool ReportBin; //是否输出二进制编码
int Gray_l; //格雷码编码的长度
bool ReportGray; //是否输出格雷码编码
int funvalue_l; //函数值的长度
bool Reportfunvalue; //是否输出函数值
int fitness_l; //适应度值的长度
bool Reportfitness; //是否输出适应度值
int parent1_l,parent2_l; //父母ID值的长度
bool Reportparent1; //是否输出父母ID值
bool Reportparent2; //是否输出父母ID值
int ID_l; //ID值的长度
bool ReportID; //是否输出ID值
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -