?? gastructs.h
字號:
#define MAXSTRLENGTH 100 //這里是不用分號的
struct SingleInformation //個體結(jié)構(gòu)體
{
double *x; //指向參數(shù)變量數(shù)組的指針,數(shù)組大小根據(jù)IniData結(jié)構(gòu)體的parameters來定
char Bin[MAXSTRLENGTH]; //二進制編碼
char Gray[MAXSTRLENGTH]; //格雷碼編碼
double funvalue; //函數(shù)值
double fitness; //適應(yīng)度值
int gentimes; //遺傳次數(shù)
float genrate; //遺傳概率
int parent1,parent2; //父母
int ID; //該個體的編號
};
struct GengerationResult //一代的計算結(jié)果結(jié)構(gòu)體
{
float sumfitness; //這一代的適應(yīng)度值的總和
float max; //這一代中的最大值
int maxID; //這一代中的最大值對應(yīng)ID號
float min; //這一代中的最小值
int minID; //這一代中的最小值對應(yīng)ID號
float avg; //這一代中的平均值
float variance; //這一代的適應(yīng)度的方差
int maxnum; //這一代最大值個數(shù)
int ID; //記錄總第幾代
float varfitness; //這一代與上一代的平均適應(yīng)度變化值
};
//初始化值保存結(jié)構(gòu)
struct IniData
{
int parameters; //記錄參數(shù)個數(shù)
int popsize; //群體規(guī)模
int lchrom; //單個參數(shù)所對應(yīng)的染色體長度
int maxgen; //最大代數(shù)
float crossrate; //交叉概率
float mutationrate; //變異概率
};
struct pop
{
SingleInformation * newpop;//指向新群體
SingleInformation * oldpop;//指向舊群體
SingleInformation * temp; //用于交換的指針
//GengerationResult *GR;
};
//輸出格式,記錄各種數(shù)據(jù)的長度
struct ReportFormat
{
int x_l; //x值的長度
bool Reportx; //是否輸出x值
int Bin_l; //二進制編碼的長度
bool ReportBin; //是否輸出二進制編碼
int Gray_l; //格雷碼編碼的長度
bool ReportGray; //是否輸出格雷碼編碼
int funvalue_l; //函數(shù)值的長度
bool Reportfunvalue; //是否輸出函數(shù)值
int fitness_l; //適應(yīng)度值的長度
bool Reportfitness; //是否輸出適應(yīng)度值
int parent1_l,parent2_l; //父母ID值的長度
bool Reportparent1; //是否輸出父母ID值
bool Reportparent2; //是否輸出父母ID值
int ID_l; //ID值的長度
bool ReportID; //是否輸出ID值
};
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -