📄 guotao.h
字号:
// GuoTao.h: interface for the CGuoTao class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_GUOTAO_H__3E29DD96_1360_409A_AFCA_5DF0DE9A374B__INCLUDED_)
#define AFX_GUOTAO_H__3E29DD96_1360_409A_AFCA_5DF0DE9A374B__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "Individual.h"
class CGuoTao
{
public:
CGuoTao();
virtual ~CGuoTao();
public:
void InitPopulation(); //群体初始化
void CalculateFitness(CIndividual &); //计算个体适应度值
void CalculateConFitness(CIndividual &);//计算个体约束适应度值
void CalculatePopFitness(); //计算群体适应度值
void FindBestAndWorst(); //找出群体中最好与最坏个体
bool Better(CIndividual&,CIndividual&); //比较两个个体的好坏(true=表示前比后好;false则相反)
void Cteate_a(); //产生杂交参数a[]
void GuoTao(); //对个体进行多父体杂交操作
void FindBestFitnessIndv(); //找出具有最好适应值的个体(no use)
void FindBestConFitnessIndv(); //找出具有最好约束值的个体(no use)
void RunGT(); //运行GT算法
void Display(int); //显示最好个体的值
void Report(int,ofstream &); //输出最好个体的值
protected:
double RandDoubleValue(double,double); //产生随机实数
int RandIntValue(int); //产生随机整数
public:
CIndividual *m_Population; //进化过程中使用的群体=PopSize
CIndividual m_BestIndividual; //群体中最好个体
CIndividual m_WorstIndividual; //群体中最坏个体
CIndividual m_IndvFitness; //群体中具有最好适应值的个体(no use)
CIndividual m_IndvConfitness; //群体中具有最好约束值的个体(no use)
CIndividual m_tmpIndividual; //差分进化的临时个体,用于与父个体进行比较
double *m_LowerBound; //各变量下界值
double *m_UpperBound; //各变量上界值
double *m_MateParam; //保存杂交参数
int m_PopSize; //群体大小
int m_MaxGeneration; //最大演化代数
int m_ParentNum; //杂交个体数目
int m_VaryNum; //变量个数
int m_ConFuncNum; //约束函数的个数
double m_Precision; //最好个体与最坏个体之差的精度
int m_BestIndex; //最好个体索引
int m_WorstIndex; //最坏个体索引
int m_MaxOrMin; //目标问题求最值类型(-1=max; 1=min)
int m_EvalutionNum; //函数评价次数
};
#endif // !defined(AFX_GUOTAO_H__3E29DD96_1360_409A_AFCA_5DF0DE9A374B__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -