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

📄 gafitnesscriteria.h

📁 遗传算法做的排课系统
💻 H
字号:

#ifndef __GA_FITNESS_CRITERIA_H__
#define __GA_FITNESS_CRITERIA_H__

#include "..\..\ExportImport.h"
#include "..\..\CallConvention.h"
#include "..\..\Common\GaStatistics.h"
#include "..\GaStopCriteria.h"
#include "GaFitnessCriteriaComparation.h"

using namespace Common;
using namespace Algorithm;

namespace Algorithm
{
	namespace StopCriterias
	{

		// Parameters for fitness value stop criteria
		class GaFitnessCriteriaParams : public GaStopCriteriaParams
		{

		private:

			// Fitness value limit
			float _fitnessLimit;

			// Type of comparation between fitness value and limit
			GaFitnessCriteriaComparation _comparation;

			// Type of fitness values (best chromosome, avarge or worst chromosome) is used for comparation
			GaStatValueType _valueType;

		public:

			// Initialization of the parameters
			DLL_EXPORT
			GaFitnessCriteriaParams(float fitnessLimit,
				GaFitnessCriteriaComparation comparation,
				GaStatValueType valueType);

			// Initialization of the parameters with default values
			DLL_EXPORT
			GaFitnessCriteriaParams();

			// Virtual copy constructor
			DLL_EXPORT
			virtual GaParameters* GACALL Clone() const;

			// Returns fitness value limit
			DLL_EXPORT
			float GACALL GetFitnessLimit() const;

			// Sets fitness value limit
			DLL_EXPORT
			void GACALL SetFitnessLimit(float limit);

			// Returns type of comparation between fitness value and limit
			DLL_EXPORT
			GaFitnessCriteriaComparation GACALL GetComparation() const;

			// Sets type of comparation between fitness value and limit
			DLL_EXPORT
			void GACALL SetComparation(GaFitnessCriteriaComparation comparation);

			// Returns type of fitness values (best chromosome, avarge or worst chromosome) is used for comparation
			DLL_EXPORT
			GaStatValueType GACALL GetValueType() const;

			// Sets type of fitness values (best chromosome, avarge or worst chromosome) is used for comparation
			DLL_EXPORT
			void GACALL SetValueType(GaStatValueType type);

		};// END CLASS DEFINITION GaFitnessCriteriaParams

		// Stop criteria based on fitness value of chromosome(s) in population(s)
		class GaFitnessCriteria : public Algorithm::GaStopCriteria
		{

		public:

			// Compares the state of the algorithm against given stopping condition and given paremeters,
			// and returns TRUE if that condition is reached.
			virtual bool GACALL Evaluate(const GaAlgorithm& algorithm,
				const GaStopCriteriaParams& parameters) const;

			// Allocates memory and makes instance of parameters.
			// Caller is responsible for allocated memory.
			virtual GaParameters* GACALL MakeParameters() const;

			// Check passed parameters. Returns TRUE if everything correct.
			virtual bool GACALL CheckParameters(const GaParameters& parameters) const;

		};// END CLASS DEFINITION GaFitnessCriteria

	} // StopCriterias
} // Algorithm

#endif // __GA_FITNESS_CRITERIA_H__

⌨️ 快捷键说明

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