蚁群算法代码
#i nclude <iostream>
#i nclude <fstream>
#i nclude <math.h>
#i nclude <time.h>
using namespace std;
const int iAntCount=34;//ant numbers
const int iCityCount=51;
const int iItCount=2000;
const double Q=100;
const double alpha=1;
const double beta=5;
const double rou=0.5;
int besttour[iCityCount];
double rnd(int low,double uper)
{
double p=(rand()/(double)RAND_MAX)*((uper)-(low))+(low);
return (p);
};
int rnd(int uper)
{
return (rand()%uper);
};
class GInfo
{
public:
double m_dDeltTrial[iCityCount][iCityCount];
double m_dTrial[iCityCount][iCityCount];
double distance[iCityCount][iCityCount];
};
GInfo Map;
class ant
{
private:
int ChooseNextCity();
double prob[iCityCount];
int m_iCityCount;
int AllowedCity[iCityCount];
public:
void addcity(int city);
int tabu[iCityCount];