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

📄 rtcgps.h

📁 基于GPS的多目标优化及动态多目标优化源代码 里面 包含MOP, DMOP的程序
💻 H
字号:
// GPS.h: interface for the CGPS class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_RTGPS_H__1E7817D9_9765_4A33_B58D_DAB98245B893__INCLUDED_)
#define AFX_RTGPS_H__1E7817D9_9765_4A33_B58D_DAB98245B893__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "Solution.h"
#include "ElitistSet.h"

#define PI 3.1415926535897932384626
class DGPSSortNode
{
public:
    DGPSSortNode();
    virtual ~DGPSSortNode();
	int Index;
	int Type;
	double SelctValue;
	double Momentum;
	double Activity;
};



class RTCGPS  
{
public:
    //PSO的变量
	CSolution * BestSolutions;
    
	
	
	//SPEA2的演化算子 
	int RTCGPS::variate();
	int RTCGPS::mutation(CSolution *ind);
	int RTCGPS::uniform_crossover(CSolution *ind1, CSolution *ind2);
	int RTCGPS::sbx(CSolution *ind1, CSolution *ind2);
	int RTCGPS::mutation(CSolution *ind, int GeneID);
	int RTCGPS::sbx(CSolution *ind1, CSolution *ind2, int GeneID);

	//假如ProblemType ==1表示是MOP
	//当是MOP时,停机判据生效
    //假如ProblemType ==0表示是DMOP
	int ProblemType;
static	int StopOK;
static int StopGenerationNum;
public:
	BOOL WSMBetter(CSolution*Ind1, CSolution* Ind2);
	void SaveBest(CSolution* pInd);
	void SetFitness(CSolution& Ind);

	void PrintFinalResult();
	void DMOP_OnEnvironmentChanged();
    void MOP_OnEnvironmentChanged();
    bool Dominated(CSolution &m_1, CSolution &m_2);

	void PrintPopulation();
	void CrossoverMultiParent(int PopIndex,CSolution *pOutSolution);
	void Sort(int m_Start, int m_End);
	void RunStep9();
	void RunStep7();
	void RunStep6();
	void RunStep5();
	void RunStep4();
	void RunStep3();
	void RunStep2();
	void RunStep1();
	CSolution* CrossoverRandom(int Host, CSolution*pOutSolution);
	CSolution* CrossoverNeighbor(int Host, CSolution*pOutSolution);
	CSolution* CrossoverDblRandom(int Host, CSolution *pOutSolution,CSolution *pOutSolution2);
    CSolution* CrossoverDblNeighbor(int Host, CSolution *pOutSolution,CSolution *pOutSolution2);
    CSolution* Crossover(int Host1, int Host2,CSolution *pOutSolution);
    CSolution* Crossover(CSolution*Ind1, CSolution * Ind2,CSolution *pOutSolution);

	virtual void RandomMutate(int Index)=0;
	bool CheckSentinel(CSolution &tSentinel);
	void OnEnvironmentChanged();
    bool eDominated(CSolution &m_1, CSolution &m_2);

    static double lamda;
	static int CrossoverNum;
	static BOOL EliteSpaceFirst;
	static int EvaluationNum;

    static int PopSize; /*种群大小,必须在InitPop运行前初始化*/
    static int BetterPolicy; // 0 表示 Random 1 Ecology 2 Independent 
	static int PopTypeInitPolicy; //0 表示 Random 1 按区域线性分配
	static char ProblemName[128];
	static int ChangeGenerationNum;
	//static int HyperMutation;
    static double HyperMutationRate;
    static int AlgorithmPolicy;
	static int ElitistPolicy;
	static int GeneratorPolicy;
	static int ParentsNum;
	DGPSSortNode* m_Selct;


	virtual BOOL ReplaceSolution(int Which, CSolution &m_temp);
	BOOL ReplaceSolution2(int Which, CSolution &m_temp);
	virtual void RunStep();
	virtual void InitPop()=0;
	virtual void ComputeFitness(CSolution &m_1)=0;
	virtual BOOL BetterEcology(CSolution & m_1, CSolution & m_2);
	virtual BOOL BetterRandom(CSolution & m_1, CSolution & m_2);
	virtual BOOL BetterIndependent(CSolution & m_1, CSolution & m_2,int Type);
	virtual BOOL Better(CSolution &m_1, CSolution &m_2,int Type);
	BOOL BetterNewWSM(CSolution &m_1, CSolution &m_2,int Type);
	virtual CSolution* Mutation(int Host, CSolution *pOutSolution);
    virtual CSolution* HyperDeltaMutate(int Host);
    
	void RunGeneration(int GenerationNum);
	RTCGPS();
	virtual ~RTCGPS();

	double CrossoverLowerLimit;
	double CrossoverUpperLimit;
	double DeltaLowerLimit;
	double DeltaUpperLimit;
	int EnvironmentChangedTimes;
	int CurrentGeneration;
	CSolution* m_Pop;
	CElitistSet m_Elist;
private:
	int			*GUOPopPtr;//[ParentsNum]
	double * GUOCoefficient;//
	char FileName[128];
	virtual void PopTypeRegionLinear();
	void PopTypeRandom();
protected:
	virtual void InitPopType();

};

#endif // !defined(AFX_GPS_H__1E7817D9_9765_4A33_B58D_DAB98245B893__INCLUDED_)

⌨️ 快捷键说明

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