第一范文网 - 专业文章范例文档资料分享平台

蚁群算法(C++版)

来源:用户分享 时间:2025/5/23 20:58:34 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

// 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++版) 的文档
蚁群算法(C++版).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c01bdj3w06i5zpak1cslt1is530855j00i79_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top