设为首页 加入收藏

TOP

实例编程蚁群算法C++实现
2014-11-19 12:55:36 】 浏览:5423
Tags:实例 编程 蚁群 算法 实现

  #include


  #include


  #include


  #include


  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];


  void Clear();


  void UpdateResult();


  double m_dLength;


  double m_dShortest;


  void move();


  ant();


  void move2last();


  };


  void ant::move2last()


  {


  int i;


  for(i=0;i


  if (AllowedCity[i]==1)


  {


  addcity(i);


  break;


  }


  }


  void ant::Clear()


  {


  m_dLength=0;


  int i;


  for(i=0;i


  {


  prob[i]=0;


  AllowedCity[i]=1;


  }


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇c++运算符重载规则 下一篇用VisualC++实现注册表简单操作

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目