手机版

蚁群算法c++代码

发布时间:2021-06-08   来源:未知    
字号:

可以运行,有详细步骤说明

#include <stdio.h>

#include <cmath>

#include <iostream>

#include <fstream>

#include <time.h> #include <cstdlib>

using namespace std; //下面的程序使用std

const int iAntCount=34;//蚂蚁数量,一般取值原则为:城市数量 / 蚂蚁数量 = 1.5左右 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//tsp地图信息,包含了信息素,城市距离,和信息素变化矩阵

{

public:

double m_dDeltTrial[iCityCount][iCityCount]; //临时保存信息素,更新环境信息素的时候使用,每只蚂蚁周游完各个城市后开始计算

double m_dTrial[iCityCount][iCityCount]; //当前环境信息素的增加

double distance[iCityCount][iCityCount]; //城市间距离

};

GInfo Map; //环境信息对象 全局变量Map

class ant//定义蚂蚁类

{

private:

int ChooseNextCity();//选择下一个城市

double prob[iCityCount]; //未走的城市选择概率,临时变量数组,选择下一个城市的时候,保存各个城市被选中的概率值

int m_iCityCount; //记录蚂蚁已经走过的城市数目

蚁群算法c++代码.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
×
二维码
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)