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

📄 gendup.cpp

📁 遗传算法源程序evolution calculates the law origin code ,C-C++,人工智能/AI-NN-PR
💻 CPP
字号:
//头文件:		GenDup.hpp
//目的:			为没有重复个体的稳态再生遗传算法提供基类,本类为GenSteady的派生类
//语言:			VC++ 6.0
//时间:			1999年7月
//作者:			刘康
//环境:			Win32
//注意:			EvalVal(INIDIVIDUAL&)应由用户类覆盖,以提供正确的评价函数.
//////////////////////////////////////////////////////////////////////

#include "GenDup.hpp"

//重复个体检查函数
bool GenDup::IndividualDup(INDIVIDUAL& ind)
{
	bool dup = false;
	int i = 0;
	while(!dup && i<IndNumber)
	{
		if(ind.Chrom==Individual[i].Chrom) dup=true;
		i++;
	}
	return dup;
}
//进行一代再生
void GenDup::Generation()
{
	CurrentChild = 0;
	if(Elitism==ELITISM) GenElitism();
	while(CurrentChild < ChildrenNum-1)
	{
		if(OperatorSelect()==1 || CurrentChild>=ChildrenNum-1)
			GenMutation();
		else
			GenCross();
	}
	int chi = 0;
	for(int i=0; i<ChildrenNum; i++)
	{
		if(!IndividualDup(Children[i]))
		{
			Individual[IndIndex[IndNumber-chi-1]].Chrom = Children[i].Chrom;
			chi++;
		}
	}
	Prepare();
}

⌨️ 快捷键说明

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