资源简介

研究生课程之一,完整的智能优化算法相关代码和介绍讲义,包括期末考试的往年试题,将考试时用的资料都整理好了。

资源截图

代码片段和文件信息

#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个文件信息

评论

共有 条评论