📄 listalgorithms.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 + -