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

📄 listalgorithms.h

📁 在2004年数学建模时所编的优化算法
💻 H
字号:
// ListAlgorithms.h: interface for the CListAlgorithms class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_LISTALGORITHMS_H__2D5D7E49_D909_436D_8A7D_3A60D4B567F7__INCLUDED_)
#define AFX_LISTALGORITHMS_H__2D5D7E49_D909_436D_8A7D_3A60D4B567F7__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "afxtempl.h"
typedef double (*TargetFunction)(double *pX,int nDim);
#define ST_TYPE_EQ      2
#define ST_TYPE_BIG     1
#define ST_TYPE_BIGEQ   0

class St
{
public:
	TargetFunction pFun;
	double Alpha;
	int Type;
public:
	St(){};
	St(St&cpy){*this = cpy;};
	St& operator=(St&cpy)
	{
		pFun = cpy.pFun;
		Alpha = cpy.Alpha;
		Type = cpy.Type;
	};
};

class CListAlgorithms  
{
public:
	CListAlgorithms();
	virtual ~CListAlgorithms();
	BOOL Opt(double& Result,double *pResult);
public:
	//算法定制参数
	UINT m_PopSize;
	UINT m_SubSize;
	//问题描述
	int m_nDim;
	BOOL m_bIsMax;
	TargetFunction m_pTargetFun;
	CArray<St,St&> m_lstSt;
	
	//可行阈
	CArray<double,double> Max;
	CArray<double,double> Min;

private:
	CArray<double*,double*&> m_PopAry;
	BOOL Init();
	void Destroy();
	double Fitness(double *x);
	int MaxValue();
	int MinValue();
	inline double Rand(double MAX,double MIN){return MIN+(MAX-MIN)*double(rand())/RAND_MAX;};
	inline int Rand(UINT Upper){return rand()%Upper;};
};

#endif // !defined(AFX_LISTALGORITHMS_H__2D5D7E49_D909_436D_8A7D_3A60D4B567F7__INCLUDED_)

⌨️ 快捷键说明

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