可以运行,有详细步骤说明
int AllowedCity[iCityCount]; //城市是否选择 1=未走 0=已走
public:
void addcity(int city); //添加城市号
int tabu[iCityCount]; //蚂蚁已走的城市号
void Clear();//重新初始化
void UpdateResult();//更新数据
double m_dLength; //单个蚂蚁走过的路径长度
double m_dShortest; //蚂蚁走过的最短路径长度
void move();//移动到下一个城市
ant();//蚂蚁类的构造函数
void move2last();
};
void ant::move2last()//只剩下一个城市没走过时才调用,直接移动到最后一个城市 {
int i;
for(i=0;i<iCityCount;i++)
if (AllowedCity[i]==1) //1=未走 0=已走
{
addcity(i);
break;
}
}
void ant::Clear()//清空数据,蚂蚁周游完各个城市后,要重新开始周游各个城市时调用。 {
m_dLength=0;
int i;
for(i=0; i<iCityCount;i++)
{
prob[i]=0;
AllowedCity[i]=1;
i=tabu[iCityCount-1]; //用最后一个城市作为出发城市
m_iCityCount=0;
addcity(i);
}
}
ant::ant()//初始化
{
m_dLength=m_dShortest=0;
m_iCityCount=0;
int i;
for(i=0;i<iCityCount;i++) {