📄 antcolony.h
字号:
// Antcolony.h: interface for the Antcolony class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_ANTCOLONY_H__DAFEC8E4_3997_4FAE_82D1_5277BD5FFD89__INCLUDED_)
#define AFX_ANTCOLONY_H__DAFEC8E4_3997_4FAE_82D1_5277BD5FFD89__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include <stdlib.h>
#include <math.h>
#include <iostream.h>
class Antcolony
{
private:
double m_randseed; //随机种子
int m_number; //参数个数
double m_enum; //参数划分成的块数
int m_ant; //蚂蚁的总数
double m_maxscope[10]; //各参数最大值
double m_minscope[10]; //各参数最小值
double m_averagescope[10]; //各参数的步长
double m_tabu[21][2]; //第一个变量:第i个蚂蚁所选第一个参数的块,
double m_tempaffect[21][2];//每个因子的影响度, //第二个变量:第i个蚂蚁所选第二个参数的块,值表示试验后的函数值
double m_block[21][2]; //把参数分成n等份,确定每个块内的数值大小
double m_affect[21][2]; //各参数的影响因子
double m_seescope[21][2]; //每个块内的能见度
double m_pheromne[21][2]; //每个块内的信息素
double m_deltapheromne[21][2];//每个块的信息素变化
double m_ptrans[21][2]; //每个块的转移概率
float m_precision; //要求计算精度
double m_sumcut; //离差平方和
int m_sign; //当停止搜索时,禁忌表m_tabu内第m_sign个蚂蚁所周游到的参数为优化值
// int m_column[20][2]; //第i个蚂蚁所占的列数
//第i 个蚂蚁所占的行数;
private:
int randomint(int low, int high);
double randomperc(double *);
void fvalue();//计算函数值
void seescope();//能见度
void pheromne();//信息素
void ptrans();//转移概率
//void sumcut();//离差平方和
double f(double a,double b);//函数
void travel();//根据概率周游
public:
double m_value[31];//最终被选中的参数值
double m_fvalue[21]; //第i个蚂蚁的函数值
int m_row[21][2];
Antcolony();
double f1;
virtual ~Antcolony();
void Antalgorithm();
};
#endif // !defined(AFX_ANTCOLONY_H__DAFEC8E4_3997_4FAE_82D1_5277BD5FFD89__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -