资源简介
上传了几个代码资源,都是课程作业。
对算法不理解的话就去看博客吧。
代码片段和文件信息
#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 \n“ 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 蚁群算法\蚁群算法\Debug\ANT.obj
文件 178650 2018-05-03 09:27 蚁群算法\蚁群算法\Debug\main.obj
文件 188635 2018-05-03 09:09 蚁群算法\蚁群算法\Debug\TSP.obj
文件 994304 2018-05-03 09:27 蚁群算法\蚁群算法\Debug\vc120.idb
文件 487424 2018-05-03 09:27 蚁群算法\蚁群算法\Debug\vc120.pdb
文件 4399 2018-05-03 09:27 蚁群算法\蚁群算法\Debug\蚁群算法.log
目录 0 2018-05-03 09:27 蚁群算法\蚁群算法\Debug\蚁群算法.tlog\
文件 2256 2018-05-03 09:27 蚁群算法\蚁群算法\Debug\蚁群算法.tlog\cl.command.1.tlog
文件 59446 2018-05-03 09:27 蚁群算法\蚁群算法\Debug\蚁群算法.tlog\CL.read.1.tlog
文件 4236 2018-05-03 09:27 蚁群算法\蚁群算法\Debug\蚁群算法.tlog\CL.write.1.tlog
文件 4950 2018-05-03 09:27 蚁群算法\蚁群算法\Debug\蚁群算法.tlog\li
文件 6414 2018-05-03 09:27 蚁群算法\蚁群算法\Debug\蚁群算法.tlog\li
文件 846 2018-05-03 09:27 蚁群算法\蚁群算法\Debug\蚁群算法.tlog\li
文件 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个文件信息
- 上一篇:MFCVC++读写DXF文件
- 下一篇:C语言课程设计-车票管理系统-
评论
共有 条评论