⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 genmod.h

📁 该算法是张青复与周爱民的基于RM-MEDA算法的程序
💻 H
字号:
//
//Please find details of the method from
//
//	Q. Zhang, A. Zhou and Y. Jin, "RM-MEDA: A Regularity Model Based Multiobjective Estimation of Distribution Algorithm", IEEE Trans. Evolutionary Computation, Vol. 12, no. 1, pp41-63, 2008.
//
//The source codes are free for reserach work. If you have any problem with the source codes, please contact with 
//	Qingfu Zhang, 
//		Department of Computing and Electronic Systems,
//		University of Essex,
//		Colchester, CO4 3SQ, UK
//		http://cswww.essex.ac.uk/staff/zhang
//		Email: qzhang@essex.ac.uk
//    Aimin Zhou
//		Department of Computing and Electronic Systems,
//		University of Essex,
//		Colchester, CO4 3SQ, UK
//		http://privatewww.essex.ac.uk/~azhou/
//		Email: azhou@essex.ac.uk or amzhou@gmail.com 
//Programmer:		
//		Aimin Zhou
//Last Update:
//		Feb. 21, 2008
//
//GenMod.h : Model based generators for MOEA
//

#ifndef AZ_GENERATOR_MODEL_H
#define AZ_GENERATOR_MODEL_H

#include <vector>
#include "PopulationMO.h"

//!\brief	az namespace, the top namespace
namespace az
{

//!\brief	mea namespace, the multiobjective evolutionary algorithm namespace
namespace mea
{

//!\brief	gen namespace, offspring generate strategies
namespace gen
{

//!\brief model based generator
namespace mod
{

//=========================================================================================
//!\brief the basic class for model-based generators
class ModelBase
{
protected:
	double			**pData,	//!< pointer to data
					mExtension;	//!< Principal Curve(Surface) extension ratio
	unsigned int	mDataSize,	//!< data number
					mDataDim,	//!< data dimension
					mTrainSteps;//!< inner train steps
public:
	//!\brief	constructor
	//!\return	void
	ModelBase();

	//!\brief	destructor
	//!\return	void
	virtual ~ModelBase();
protected:
	//!\brief	clear data pool
	//!\return	void
	void Clear();
	
	//!\brief	convert a real number to a nearest positive integer number
	//!\param	X real number
	//!\return	integer number
	unsigned int ROUND(double X);

	//!\brief	pertubation around 1.5
	//!\return	pertubation number
	double PERTUBATION();
};//class ModelBase

//=========================================================================================
//!\brief Local PCA based EDA generator
class ModelLocalPCAU:public ModelBase
{
protected:
	unsigned int	mLatentDim,	//!< latent dimension
					mMaxCluster;//!< maximum cluster number
public:
	//!\brief	constructor
	//!\return	void
	ModelLocalPCAU();

	//!\brief	Generator
	//!\param	popnew offspring population
	//!\param	popref	parent population
	//!\return	offspring population
	CPopulationMO& Generate(CPopulationMO& popnew, CPopulationMO& popref);

	//!\brief	initialize the LPCA
	//!\param	latent latent dimension
	//!\param	cluster maximum cluster number
	//!\param	trainsteps Local PCA train steps
	//!\param	extension extension ratio
	//!\return	void
	void Set(unsigned int latent, unsigned int cluster, unsigned int trainsteps, double extension);
}; //class ModelLocalPCA

} //namespace mod

} //namespace gen

} //namespace mea

} //namespace az

#endif //AZ_GENERATOR_MODEL_H

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -