资源简介
蚁群算法C++实现
代码片段和文件信息
#include
#include
#include
using namespace std;
//该程序是以蚁群系统为模型写的蚁群算法程序(强调:非蚂蚁周模型),以三个著名的TSP问题为测试对象
//通过微调参数,都可以获得较好的解
//----------(3)问题三:Elion75 城市 TSP 问题 best_length = 542.31;
//该程序最好的结果是542.309,可运行多次获得
//城市节点数目
#define N 75
//城市坐标
double C[N][2]={
{625} {743} {956} {1070} {1128}
{1217} {1238} {155} {1514} {1556}
{1619} {1764} {2030} {2148} {2145}
{2136} {2253} {2222} {2629} {2613}
{2659} {2724} {2939} {3050} {3020}
{3060} {3176} {3334} {3344} {3551}
{3516} {3560} {366} {3626} {3833}
{4037} {4066} {4060} {4020} {4146}
{4326} {4413} {4542} {4535} {4766}
{4821} {5030} {5040} {5050} {5070}
{504} {5015} {5142} {5226} {5438}
{5410} {5534} {5545} {5550} {5565}
{5557} {5520} {5772} {595} {6015}
{6257} {6248} {6235} {6224} {644}
{6527} {6614} {668} {6741} {7064}
};
//----------上面参数是固定的,下面的参数是可变的-----------
//蚂蚁数量
#define M 75
//最大循环次数NcMax
int NcMax =1000;
///////////////////
double alpha = 2;//信息启发因子,信息素的重要程度
double beta = 5;//期望启发式因子,城市间距离的重要程度
double rou = 0.1; //全局信息素挥发参数
double alpha1 = 0.1;//局部信息素挥发参数
double qzero = 0.1; //状态转移公式中的q0
//-----------问题三结束------------------------------------------------------------------------
//===========================================================================================================
//局部更新时候使用的的常量,它是由最近邻方法得到的一个长度
//什么是最近邻方法?:)就是从源节点出发,每次选择一个距离最短的点来遍历所有的节点得到的路径
//每个节点都可能作为源节点来遍历
double Lnn;
//矩阵表示两两城市之间的距离
double allDistance[N][N];
//计算两个城市之间的距离
double calculateDistance(int i int j)
{
return sqrt(pow((C[i][0]-C[j][0])2.0) + pow((C[i][1]-C[j][1])2.0));
}
//由矩阵表示两两城市之间的距离
void calculateAllDistance()
{
for(int i = 0; i < N; i++)
{
for(int j = 0; j < N; j++)
{
if (i != j)
{
allDistance[i][j] = calculateDistance(i j);
allDistance[j][i] = allDistance[i][j];
}
}
}
}
//获得经过n个城市的路径长度
double calculateSumOfDistance(int* tour)
{
double sum = 0;
for(int i = 0; i< N ;i++)
{
int row = *(tour + 2 * i);
int col = *(tour + 2* i + 1);
sum += allDistance[row][col];
}
return sum;
}
class ACSAnt;
class AntColonySystem
{
private:
double info[N][N] visible[N][N];//节点之间的信息素强度节点之间的能见度
public:
AntColonySystem()
{
}
//计算当前节点到下一节点转移的概率
double Transition(int i int j);
//局部更新规则
void UpdateLocalPathRule(int i int j);
//初始化
void InitParameter(double value);
//全局信息素更新
void UpdateGlobalPathRule(int* bestTour int globalBestLength);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2017-03-22 19:51 yiqunsuanfa\
目录 0 2016-08-18 10:21 yiqunsuanfa\Debug\
文件 47104 2017-02-14 16:06 yiqunsuanfa\Debug\yiqunsuanfa.exe
文件 477864 2017-02-14 16:06 yiqunsuanfa\Debug\yiqunsuanfa.ilk
文件 707584 2017-02-14 16:06 yiqunsuanfa\Debug\yiqunsuanfa.pdb
目录 0 2017-03-22 19:14 yiqunsuanfa\ipch\
目录 0 2017-03-22 19:14 yiqunsuanfa\ipch\yiqunsuanfa-214c0696\
文件 15335424 2017-03-22 19:14 yiqunsuanfa\ipch\yiqunsuanfa-214c0696\yiqunsuanfa-fc1bebe0.ipch
目录 0 2016-07-23 20:57 yiqunsuanfa\yiqunsuanfa\
目录 0 2017-03-22 19:17 yiqunsuanfa\yiqunsuanfa\Debug\
文件 40174 2017-02-14 16:06 yiqunsuanfa\yiqunsuanfa\Debug\CL.read.1.tlog
文件 1774 2017-02-14 16:06 yiqunsuanfa\yiqunsuanfa\Debug\CL.write.1.tlog
文件 2922 2017-02-14 16:06 yiqunsuanfa\yiqunsuanfa\Debug\cl.command.1.tlog
文件 2 2017-02-14 16:06 yiqunsuanfa\yiqunsuanfa\Debug\li
文件 2 2017-02-14 16:06 yiqunsuanfa\yiqunsuanfa\Debug\li
文件 2 2017-02-14 16:06 yiqunsuanfa\yiqunsuanfa\Debug\li
文件 2 2017-02-14 16:06 yiqunsuanfa\yiqunsuanfa\Debug\li
文件 2 2017-02-14 16:06 yiqunsuanfa\yiqunsuanfa\Debug\li
文件 2 2017-02-14 16:06 yiqunsuanfa\yiqunsuanfa\Debug\li
文件 2 2017-02-14 16:06 yiqunsuanfa\yiqunsuanfa\Debug\li
文件 2 2017-02-14 16:06 yiqunsuanfa\yiqunsuanfa\Debug\li
文件 2 2017-02-14 16:06 yiqunsuanfa\yiqunsuanfa\Debug\li
文件 2 2017-02-14 16:06 yiqunsuanfa\yiqunsuanfa\Debug\li
文件 6638 2017-02-14 16:06 yiqunsuanfa\yiqunsuanfa\Debug\li
文件 13914 2017-02-14 16:06 yiqunsuanfa\yiqunsuanfa\Debug\li
文件 3762 2017-02-14 16:06 yiqunsuanfa\yiqunsuanfa\Debug\li
文件 1734 2017-02-14 16:06 yiqunsuanfa\yiqunsuanfa\Debug\mt.command.1.tlog
文件 1546 2017-02-14 16:06 yiqunsuanfa\yiqunsuanfa\Debug\mt.read.1.tlog
文件 470 2017-02-14 16:06 yiqunsuanfa\yiqunsuanfa\Debug\mt.write.1.tlog
文件 2482 2017-02-14 16:06 yiqunsuanfa\yiqunsuanfa\Debug\rc.command.1.tlog
文件 1434 2017-02-14 16:06 yiqunsuanfa\yiqunsuanfa\Debug\rc.read.1.tlog
............此处省略19个文件信息
- 上一篇:snort-2.9.16.tar.gz
- 下一篇:道路提取算法 c++ opencv
相关资源
- 蚁群算法解决旅行商问题c++
- TSP 蚁群算法 MFC实现
- C++蚁群算法求解TSP问题
- 蚁群算法C++ vs2013
- 最大最小蚁群算法
- C++蚁群算法的机器人路径规划
- 基于Qt的图形显示蚁群算法求解TSP问题
- 蚁群算法源代码 C++版
- 基本蚁群算法C语言,比较详细!
- 基于蚁群算法的机器人路径规划C语言
- 并行蚁群算法解决旅行商问题
- 基于蚁群算法的TSP问题实现C语言
- 蚁群算法C++版
- 蚂蚁算法MFC实现执行文件
- TSP问题蚁群算法C++实现
- 蚁群算法解决TSP问题C源码
- 蚁群算法求解vrp问题
- 蚁群算法解决CVRP问题的c/c++源码
- c语言实现蚁群算法 核心+注释
- 蚁群算法源代码——C++实现
- 基于蚁群算法的目标函数优化C语言
评论
共有 条评论