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

📄 psosolver.h

📁 遗传算法vc++语言版源程序,台湾大学编写。
💻 H
字号:
#ifndef _PSOSOLVER_
#define _PSOSOLVER_

#include "PopBaseSolver.h"
#include "GAInfo.h"
#include "CommonBase.h"

class PopSolution;

class PSOSolver : public PopBaseSolver
{
public:
	UOFIdentity("PSOSolver class",1);

	PSOSolver(PopSolution&,size_t);
	virtual void	Initialization();
	virtual	bool	Configuration(const char *filename);
	virtual	void	Solve();
	virtual void	Evolve();

	virtual	void	SetMove(Move *co){m_pMove = co;}

	Move			*m_pMove;

	double			m_Vc;
	double			m_K1;
	double			m_K2;

	GAInfo&			info(){return m_Record;}

public:
	GAInfo			m_Record;

	class PSOTerminateUponIteration : public UOFTerminator
	{
	public:
		PSOTerminateUponIteration(){m_Iter = 10000;}
		virtual bool operator()(UOFSolver* solver);
	};
	class PSOTerminateUponMean : public UOFTerminator
	{
	public:
		PSOTerminateUponMean(){m_TolScore = 0.1;}
		virtual bool operator()(UOFSolver* solver);
	};
	class PSOTerminateUponScore : public UOFTerminator
	{
	public:
		PSOTerminateUponScore(){m_TolScore = 0.1;}
		virtual bool operator()(UOFSolver* solver);
	};
	class PSOTerminateUponConvergence : public UOFTerminator
	{
	public:
		int m_LookupGen;
		double m_MinDiff;
		PSOTerminateUponConvergence(){m_LookupGen = 10;m_MinDiff = 1e-4;}
		virtual bool operator()(UOFSolver* solver);
	};
	class PSOTerminateUponScoreIteration : public UOFTerminator
	{
	public:
		PSOTerminateUponScoreIteration(){m_TolScore = 0.1;m_Iter = 10000;}
		virtual bool operator()(UOFSolver* solver);
	};
	class PSOTerminateUponScoreTime : public UOFTerminator
	{
	public:
		PSOTerminateUponScoreTime(){m_TolScore = 0.1;m_MaxTime = 10000;}
		virtual bool operator()(UOFSolver* solver);
	};
};
#endif

⌨️ 快捷键说明

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