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

📄 sflalgorithm.h

📁 一个使用遗传算法实现桥梁的最优化维护的代码
💻 H
字号:
#pragma once


class CSFLAlgorithm
{
	struct individual                       /* 个体*/
	{
		unsigned *pChrom;                    /* 染色体 */
		double   dFitness;                   /* 个体适应度*/
		double   dVarible;                   /* 个体对应的变量值*/
		int      *utility;                  /* 特定数据指针变量 */
		int      iMemNum;                   /*属于哪个memeplexes group*/
		int      iSortNum;                   /*排序后的序列号*/
	};
public:
	CSFLAlgorithm(void);
	~CSFLAlgorithm(void);
protected:
    //种群数据的指针
	individual* pPop;   
	//种群大小
	int    iPopSize; 
	//每个memeplexes大小
	int iMemiEachSize;
    //memeplexes的数量
    int iMemNum;
	//number of shuffling iterations
	int iShuIterations;
	//number of generations for each memeplex before shuffling
	int iGenEachMem;
	int    iLchrom;                         /* 染色体长度*/
	int    iChromSize;                      /* 存储一染色体所需字节数 */
	
	
	 /* 随机数发生器使用的静态变量 */
	double oldrand[55];
	int jrand;
	double rndx2;
	int rndcalcflag;
	void advance_random();
	int flip(float);
	int rnd(int, int);
	void randomize();
	double randomnormaldeviate();
	float randomperc();
	float rndreal(float,float);
	void warmup_random(float);
    // 初始化种群中个体染色体重1出现的概率
	float fInitPop;
public:
	int iGlobalBestIndex;
	//随机化个体的染色体
	void RndIndividual(struct individual *);
	//改变的frog的位置
	void ChangeFrogPos(int,int);
	//一个SFL过程
	void SFL();
	//对种群进行排序
	void Sort();
	//对个体进行评估,计算适应值
	void objfunc(struct individual *);
	// 设置种群大小
	void SetPopSize(int iVar);
	// 设置memeplexes的大小
	void SetMemEachSize(int iVar);
	// 设置ShuIterations的大小
	void SetShuIterations(int iVar);
	// 设置GenEachMem的大小
	void SetGenEachMem(int iVar);
	//设置染色体的长度
	void SetLchrom(int iVar);
	void initialize();  /* 遗传算法初始化 */
	void initmalloc();     /*为全局数据变量分配空间 */
	//初始化种群
	void initpop();
	//进行优化
	void Run();
	// 设置出示种群个体中染色体中1出现的概率
	void SetInitPop(float fVar);
	//获得优化的结果
    double GetResult();
	// 产生计算结果报告
	void Report(void);
	// 设置的数量
	void SetMemNum(int iVar);
};

⌨️ 快捷键说明

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