genlinear.cpp

来自「遗传算法的VC实现(经典」· C++ 代码 · 共 48 行

CPP
48
字号
//头文件:		GenLinear.hpp
//目的:			为线性规格化遗传算法提供基类,本类为Genetic的派生类
//语言:			VC++ 6.0
//时间:			1999年7月
//作者:			刘康
//环境:			Win32
//注意:			EvalVal(INIDIVIDUAL&)应由用户类覆盖,以提供正确的评价函数.
//////////////////////////////////////////////////////////////////////

#include "GenLinear.hpp"

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

GenLinear::GenLinear(int n, int gl) : Genetic(n,gl)
{
	FitStep = 10;
	ValOK = false;
}
GenLinear::GenLinear(GenLinear& g) : Genetic(g)
{
	FitStep = g.FitStep;
	ValOK = g.ValOK;
}
//适合度计算函数
double GenLinear::GetFit(int i)
{
	if(!ValOK)
	{
		AllVal();
		IndexSort();
		ValOK = true;
	}
	double fit = 0;
	for(int k=IndNumber-1; k>=0; k--)
	{
		Individual[IndIndex[k]].Fit = fit;
		fit += FitStep;
	}
	return Individual[i].Fit;
}
//产生新一代
void GenLinear::Generation()
{
	ValOK = false;
	Genetic::Generation();
}

⌨️ 快捷键说明

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