云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 蚁群算法(C++版)

蚁群算法(C++版)

  • 62 次阅读
  • 3 次下载
  • 2026/4/27 2:18:27

// AO.cpp : 定义控制台应用程序的入口点。 #pragma once

#include #include #include

const double ALPHA=1.0; //启发因子,信息素的重要程度 const double BETA=2.0; //期望因子,城市间距离的重要程度 const double ROU=0.5; //信息素残留参数

const int N_ANT_COUNT=34; //蚂蚁数量 const int N_IT_COUNT=1000; //迭代次数 const int N_CITY_COUNT=51; //城市数量

const double DBQ=100.0; //总的信息素

const double DB_MAX=10e9; //一个标志数,10的9次方

double g_Trial[N_CITY_COUNT][N_CITY_COUNT]; //两两城市间信息素,就是环境信息素

double g_Distance[N_CITY_COUNT][N_CITY_COUNT]; //两两城市间距离

//eil51.tsp城市坐标数据 double x_Ary[N_CITY_COUNT]= {

37,49,52,20,40,21,17,31,52,51, 42,31,5,12,36,52,27,17,13,57,

62,42,16,8,7,27,30,43,58,58, 37,38,46,61,62,63,32,45,59,5, 10,21,5,30,39,32,25,25,48,56, 30 };

double y_Ary[N_CITY_COUNT]= {

52,49,64,26,30,47,63,62,33,21, 41,32,25,42,16,41,23,33,13,58, 42,57,57,52,38,68,48,67,48,27, 69,46,10,33,63,69,22,35,15,6, 17,10,64,15,10,39,32,55,28,37, 40 };

//返回指定范围内的随机整数 int rnd(int nLow,int nUpper) {

return nLow+(nUpper-nLow)*rand()/(RAND_MAX+1); }

//返回指定范围内的随机浮点数

double rnd(double dbLow,double dbUpper) {

double dbTemp=rand()/((double)RAND_MAX+1.0); return dbLow+dbTemp*(dbUpper-dbLow); }

//返回浮点数四舍五入取整后的浮点数 double ROUND(double dbA) {

return (double)((int)(dbA+0.5)); }

//定义蚂蚁类 class CAnt { public: CAnt(void); ~CAnt(void); public:

int m_nPath[N_CITY_COUNT]; //蚂蚁走的路径 double m_dbPathLength; //蚂蚁走过的路径长度

int m_nAllowedCity[N_CITY_COUNT]; //没去过的城市 int m_nCurCityNo; //当前所在城市编号 int m_nMovedCityCount; //已经去过的城市数量 public:

int ChooseNextCity(); //选择下一个城市 void Init(); //初始化

void Move(); //蚂蚁在城市间移动

void Search(); //搜索路径

void CalPathLength(); //计算蚂蚁走过的路径长度 };

//构造函数 CAnt::CAnt(void) { }

//析构函数 CAnt::~CAnt(void) { }

//初始化函数,蚂蚁搜索前调用 void CAnt::Init() {

for (int i=0;i

m_nAllowedCity[i]=1; //设置全部城市为没有去过 m_nPath[i]=0; //蚂蚁走的路径全部设置为0 }

//蚂蚁走过的路径长度设置为0 m_dbPathLength=0.0;

搜索更多关于: 蚁群算法(C++版) 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

// AO.cpp : 定义控制台应用程序的入口点。 #pragma once #include #include #include const double ALPHA=1.0; //启发因子,信息素的重要程度 const double BETA=2.0; //期望因子,城市间距离的重要程度 const double ROU=0.5; //信息素残留参数 const int N_ANT_COUNT=34; //蚂蚁数量 const int N_IT_COUNT=1000; //迭代次数 const int N_CITY_COUNT=51; //城市数量 const double DBQ=100.0; //总的信息素 const double D

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com