资源简介
研究生课程之一,完整的智能优化算法相关代码和介绍讲义,包括期末考试的往年试题,将考试时用的资料都整理好了。
代码片段和文件信息
#include
#include
#include
#include
#include
#include
#include
using namespace std;
#define N 69 //城市数量
#define M 50 //蚂蚁数量
int AntCount = M; // 蚂蚁的数量
int MAXIT = 60; // 最大迭代次数
double alpha=1beta=5rho=0.5; // 信息素浓度、期望值、挥发系数
int Q=100; // 每只蚂蚁周游一遍留下的信息素总量
double CityPathTao[N][N]; // 初始时刻各边上的信息素为1
double CityDeltaTao[N][N]; // 记录信息素
int CityBestRoute[N]; // 记录最优路径
double CityBestRouteLength = 10e9; // 记录最优路径长度
int CityAntVisited[N]; // 记录蚂蚁经过城市队列
double CityDistance[N][N]; // 记录城市间的距离
bool CityReached[N]; // 记录城市是否来过
double CityPosition[N][2]; // 城市的坐标坐标矩阵
double CityProbility[N]; // 城市转移概率
int AntRoutes[M][N]; // 每只蚂蚁的行走路径记录
clock_t StartTime; // 开始运行的时间,用于计时
double ExecuteTime = 0; // 执行的时间
//////////////////////////////////////////////////////////////////////////
// 返回[low,uper]之间的一个双精度浮点数随机数
double RandomDouble(int low double uper)
{
double p=(rand()/(double)RAND_MAX)*((uper)-(low))+(low);
return (p);
};
//////////////////////////////////////////////////////////////////////////
// 返回[0,uper]之间的一个整数随机数
int RandomInt(int uper)
{
return (rand()%uper);
};
//////////////////////////////////////////////////////////////////////////
// 递归计算到达每个城市的转移概率
// iCurCity 当前城市
// iIndex 到达的城市
// iNum 已经走过的城市
// dProbSum 所有转移概率的和
// dRealSum 所有真实转移概率之和
void CaclCityProbility(int iCurCity int iIndex int& iNum
double& dProbSum double& dRealSum)
{
if((iIndex < 0) || (iIndex >= N))
return;
if(!CityReached[iIndex])
{
double dProb = pow((1.0/CityDistance[iCurCity][iIndex])beta)
* pow((CityPathTao[iCurCity][iIndex])alpha);
dProbSum += dProb;
CaclCityProbility(iCurCity iIndex + 1 iNum dProbSum dRealSum);
CityProbility[iIndex] = dProb/dProbSum;
dRealSum += CityProbility[iIndex];
iNum++;
}
else
{
CaclCityProbility(iCurCity iIndex + 1 iNum dProbSum dRealSum);
}
}
//////////////////////////////////////////////////////////////////////////
// 选择下一个城市
// iCurCity 当前城市
int ChooseNextCity(int iCurCity)
{
// 所有遍历中的索引值
int iIndex = 0;
// 表示已走过的城市个数
int iNum = 0;
// 表示已经选中的城市
int iChoose = 10000;
// 所有未走过的城市转移概率之和
double dProbSum =0;
double dRealSum = 0;
CaclCityProbility(iCurCity 0 iNum dProbSum dRealSum);
// 如果可以去的城市个数超过1个,
// 那么使用轮盘赌法决定下一个城市
if(iNum >= 1)
{
// 获取[0,sum]间一随机数
double dRate = RandomDouble(0 dRealSum);
double dChoose = 0;
for(iIndex = 0; iIndex < N; ++ iIndex)
{
if(!CityReached[iIndex])
{
dChoose += CityProbility[iIndex];
//由轮盘赌法选择下个城市
if(dChoose >= dRate)
{
iChoose = iIndex;
break;
}
}
}
}
// 如果使用轮盘赌法没有决定出一个城市,
// 那么直接使用第一个可达的城市
if(iChoose != iIndex)
{
for(iIndex = 0; iIndex < N; iIndex++)
{
if(!CityReached[iIndex])
{
iChoose = iIndex;
break;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3916 2014-04-14 10:43 智能优化算法程序\512041562 吴金徽\a.CPP
文件 3341 2014-04-14 10:43 智能优化算法程序\512041562 吴金徽\a.dsp
文件 510 2014-04-14 10:45 智能优化算法程序\512041562 吴金徽\a.dsw
文件 41984 2014-04-14 10:45 智能优化算法程序\512041562 吴金徽\a.ncb
文件 48640 2014-04-14 10:45 智能优化算法程序\512041562 吴金徽\a.opt
文件 737 2014-04-14 10:43 智能优化算法程序\512041562 吴金徽\a.plg
文件 4347 2013-04-26 09:36 智能优化算法程序\512041562 吴金徽\city.txt
文件 274510 2014-04-14 10:43 智能优化算法程序\512041562 吴金徽\Debug\a.exe
文件 333968 2014-04-14 10:43 智能优化算法程序\512041562 吴金徽\Debug\a.ilk
文件 27925 2014-04-14 10:43 智能优化算法程序\512041562 吴金徽\Debug\a.obj
文件 525312 2014-04-14 10:43 智能优化算法程序\512041562 吴金徽\Debug\a.pdb
文件 50176 2014-04-14 10:43 智能优化算法程序\512041562 吴金徽\Debug\vc60.idb
文件 61440 2014-04-14 10:43 智能优化算法程序\512041562 吴金徽\Debug\vc60.pdb
文件 5160 2014-04-14 10:43 智能优化算法程序\512041562 吴金徽\input.txt
文件 16115 2014-04-14 10:44 智能优化算法程序\512041562 吴金徽\结果.txt
文件 10278 2012-04-10 09:56 智能优化算法程序\acoa.cpp
文件 4919 2012-04-10 09:56 智能优化算法程序\ant1.cpp
文件 4249 2012-04-10 09:56 智能优化算法程序\TSP 城市名\ant\ant.dsp
文件 514 2012-04-10 09:56 智能优化算法程序\TSP 城市名\ant\ant.dsw
文件 41984 2012-04-10 09:56 智能优化算法程序\TSP 城市名\ant\ant.ncb
文件 48640 2012-04-10 09:56 智能优化算法程序\TSP 城市名\ant\ant.opt
文件 1315 2012-04-10 09:56 智能优化算法程序\TSP 城市名\ant\ant.plg
文件 451 2012-04-10 09:56 智能优化算法程序\TSP 城市名\ant\data.txt
文件 274478 2012-04-10 09:56 智能优化算法程序\TSP 城市名\ant\Debug\ant.exe
文件 26616 2012-04-10 09:56 智能优化算法程序\TSP 城市名\ant\Debug\ant.obj
文件 640000 2012-04-10 09:56 智能优化算法程序\TSP 城市名\ant\Debug\ant.pdb
文件 61440 2012-04-10 09:56 智能优化算法程序\TSP 城市名\ant\Debug\vc60.pdb
文件 314 2012-04-10 09:56 智能优化算法程序\TSP 城市名\ant\save.txt
文件 477 2012-04-10 09:56 智能优化算法程序\TSP 城市名\ant\复件 data.txt
文件 5896 2012-04-10 09:56 智能优化算法程序\TSP 城市名\ant.cpp
............此处省略958个文件信息
- 上一篇:51单片机迷宫游戏源码及实验报告
- 下一篇:unity 3d迷宫 NPC 小地图
评论
共有 条评论