• 大小: 11.27MB
    文件类型: .zip
    金币: 2
    下载: 1 次
    发布日期: 2023-07-26
  • 语言: C/C++
  • 标签: 一群算法  

资源简介

上传了几个代码资源,都是课程作业。 对算法不理解的话就去看博客吧。

资源截图

代码片段和文件信息

#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\link.command.1.tlog
     文件        6414  2018-05-03 09:27  蚁群算法\蚁群算法\Debug\蚁群算法.tlog\link.read.1.tlog
     文件         846  2018-05-03 09:27  蚁群算法\蚁群算法\Debug\蚁群算法.tlog\link.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个文件信息

评论

共有 条评论

相关资源