蚁群算法C++ vs2013


上传了几个代码资源,都是课程作业。 对算法不理解的话就去看博客吧。
资源截图
代码片段和文件信息
#include “ANT.h“


void ANT::Init()
{
memset(vis 0 sizeof(vis));
length = 0;
cur_cityno = rnd(0 CITY_NUM);//随机选择一个出发城市  
Path[0] = cur_cityno;
vis[cur_cityno] = 1;
moved_cnt = 1;
//printf(“Init %d 
“ cur_cityno);  
}
//选择下一个城市  
//返回值 为城市编号  
int ANT::chooseNextCity()
{
int nSelectedCity = -1; //返回结果,先暂时把其设置为-1  
//计算当前城市和没去过的城市之间的信息素总和  
double dbTotal = 0.0;
double prob[CITY_NUM]; //保存各个城市被选中的概率  
for (int i = 0; i < CITY_NUM; i++)
{
if (!vis[i])
{
prob[i] = pow(info[cur_cityno][i] ALPHA)
*pow(1.0 / dis[cur_cityno][i] BETA);
dbTotal += prob[i];
}
else
{
prob[i] = 0;
}
}
//进行轮盘选择  
double dbTemp = 0.0;
if (dbTotal > 0.0) //总的信息素值大于0  
{
dbTemp = rnd(0.0 dbTotal);
for (int i = 0; i < CITY_NUM; i++)
{
if (!vis[i])
{
dbTemp -= prob[i];
if (dbTemp < 0.0)
{
nSelectedCity = i;
break;
}
}
}
}
//如果城市间的信息素非常小 ( 小到比double能够表示的最小的数字还要小 )  
//出现这种情况,就把第一个没去过的城市作为返回结果  

if (nSelectedCity == -1)
{
for (int i = 0; i {
if (!vis[i]) //城市没去过  
{
nSelectedCity = i;
break;
}
}
}
return nSelectedCity;
}

//蚂蚁在城市间移动  
void ANT::Move()
{
int nCityno = chooseNextCity();//选择下一个城市  
Path[moved_cnt] = nCityno;//保存蚂蚁走的路径  
vis[nCityno] = 1;//把这个城市设置成已经去过  
cur_cityno = nCityno;
//更新已走路径长度  
length += dis[Path[moved_cnt - 1]][Path[moved_cnt]];
moved_cnt++;

}
//蚂蚁进行搜索一次  
void ANT::Search()
{
Init();
//如果蚂蚁去过的城市数量小于城市数量,就继续移动  
while (moved_cnt < CITY_NUM)
{
Move();
}
length += dis[Path[CITY_NUM - 1]][Path[0]];
}
//返回指定范围内的随机整数  
int ANT::rnd(int nLow int nUpper)
{
return nLow + (nUpper - nLow)*rand() / (RAND_MAX + 1);
}

//返回指定范围内的随机浮点数  
double ANT::rnd(double dbLow double dbUpper)
{
double dbTemp = rand() / ((double)RAND_MAX + 1.0);
return dbLow + dbTemp*(dbUpper - dbLow);
}
//返回浮点数四舍五入取整后的浮点数  
double ANT::ROUND(double dbA)
{
return (double)((int)(dbA + 0.5));
}
ANT::ANT(){

}
ANT::~ANT(){

}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-05-03 09:30  蚁群算法
     目录           0  2018-05-02 17:03  蚁群算法Debug
     文件       41472  2018-05-03 09:27  蚁群算法Debug蚁群算法.exe
     文件     1035264  2018-05-03 09:27  蚁群算法Debug蚁群算法.pdb
     目录           0  2018-05-03 09:29  蚁群算法蚁群算法
     文件    34013184  2018-05-03 09:29  蚁群算法蚁群算法.sdf
     文件         982  2018-05-02 10:39  蚁群算法蚁群算法.sln
     文件       24064  2018-05-03 09:29  蚁群算法蚁群算法.v12.suo
     文件        2331  2018-05-02 16:54  蚁群算法蚁群算法ANT.cpp
     文件        1479  2018-05-02 17:00  蚁群算法蚁群算法ANT.h
     目录           0  2018-05-03 09:27  蚁群算法蚁群算法Debug
     文件      170303  2018-05-03 09:27  蚁群算法蚁群算法DebugANT.obj
     文件      178650  2018-05-03 09:27  蚁群算法蚁群算法Debugmain.obj
     文件      188635  2018-05-03 09:09  蚁群算法蚁群算法DebugTSP.obj
     文件      994304  2018-05-03 09:27  蚁群算法蚁群算法Debugvc120.idb
     文件      487424  2018-05-03 09:27  蚁群算法蚁群算法Debugvc120.pdb
     文件        4399  2018-05-03 09:27  蚁群算法蚁群算法Debug蚁群算法.log
     目录           0  2018-05-03 09:27  蚁群算法蚁群算法Debug蚁群算法.tlog
     文件        2256  2018-05-03 09:27  蚁群算法蚁群算法Debug蚁群算法.tlogcl.command.1.tlog
     文件       59446  2018-05-03 09:27  蚁群算法蚁群算法Debug蚁群算法.tlogCL.read.1.tlog
     文件        4236  2018-05-03 09:27  蚁群算法蚁群算法Debug蚁群算法.tlogCL.write.1.tlog
     文件        4950  2018-05-03 09:27  蚁群算法蚁群算法Debug蚁群算法.tloglink.command.1.tlog
     文件        6414  2018-05-03 09:27  蚁群算法蚁群算法Debug蚁群算法.tloglink.read.1.tlog
     文件         846  2018-05-03 09:27  蚁群算法蚁群算法Debug蚁群算法.tloglink.write.1.tlog
     文件         207  2018-05-03 09:27  蚁群算法蚁群算法Debug蚁群算法.tlog蚁群算法.lastbuildstate
     文件         274  2018-05-03 09:27  蚁群算法蚁群算法main.cpp
     文件        2008  2018-05-03 09:29  蚁群算法蚁群算法TSP.cpp
     文件         335  2018-05-03 09:05  蚁群算法蚁群算法TSP.h
     文件        4347  2018-05-02 17:11  蚁群算法蚁群算法蚁群算法.vcxproj
     文件        1320  2018-05-02 17:11  蚁群算法蚁群算法蚁群算法.vcxproj.filters
     文件         209  2018-05-03 09:33  蚁群算法请老师先看这个.txt
............此处省略0个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)