• 大小: 12KB
    文件类型: .cpp
    金币: 1
    下载: 0 次
    发布日期: 2021-05-12
  • 语言: C/C++
  • 标签: 蚁群算法  C++  

资源简介

该程序是以蚁群系统为模型写的蚁群算法程序(强调:非蚂蚁周模型),以三个著名的TSP问题为测试对象 //通过微调参数,都可以获得较好的解 有详细的注释文档

资源截图

代码片段和文件信息

/*********************************
*作者:陈杰
*单位:四川大学计算机学院
*邮件地址:scucj@126.com
*完成时间:2008年3月
*********************************/

#include
#include
#include
using namespace std;

//该程序是以蚁群系统为模型写的蚁群算法程序(强调:非蚂蚁周模型),以三个著名的TSP问题为测试对象
//通过微调参数,都可以获得较好的解

/*
//----------(1)问题一:Oliver 30 城市 TSP 问题 best_length = 423.7406; ------------------------
//该程序最好的结果是423.741,可运行多次获得
//城市节点数目
#define N 30
//城市坐标
double C[N][2]={
{299}{450}{764}{1340}{1854}{1840}{2260}{2442}{2562}{2538}
{3784}{4194}{4126}{4435}{4521}{5467}{5462}{5835}{5869}{6232}
{6460}{6858}{7144}{7171}{7478}{827}{8346}{8369}{8776}{9138}
};
//----------上面参数是固定的,下面的参数是可变的-----------
//蚂蚁数量
#define M 30
//最大循环次数NcMax
int NcMax = 500;
//信息启发因子,期望启发式因子,全局信息素挥发参数,局部信息素挥发参数 状态转移公式中的q0
double alpha = 2 beta = 3 rou = 0.1 alpha1 = 0.1  qzero = 0.01;
//-----------问题一结束------------------------------------------------------------------------
*/

/*
//----------(2)问题二:Elion50 城市 TSP 问题 best_length = 427.96; ----------------------------
//该程序最好的结果是428.468,可运行多次获得
//城市节点数目
#define N 50
//城市坐标
double C[N][2]={
{564} {525} {56} {738} {852} {1017}
{1242} {1313} {1657} {1733} {1763}
{2026} {2147} {2110} {2532} {2555}
{2768} {2723} {3048} {3015} {3162}
{3132} {3222} {3239} {3616} {3769}
{3752} {3846} {3910} {4030} {4257}
{4241} {4367} {4535} {4610} {4828}
{4949} {5121} {5233} {5241} {5264}
{5637} {5758} {5827} {5848} {5915}
{6133} {6242} {6263} {6369}
};
//----------上面参数是固定的,下面的参数是可变的-----------
//蚂蚁数量
#define M 50
//最大循环次数NcMax
int NcMax = 1000;
//信息启发因子,期望启发式因子,全局信息素挥发参数,局部信息素挥发参数 状态转移公式中的q0
double alpha = 2 beta = 4 rou = 0.1 alpha1 = 0.1  qzero = 0.01;
//-----------问题二结束------------------------------------------------------------------------
*/

//----------(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;
//信息启发因子,期望启发式因子,全局信息素挥发参数,局部信息素挥发参数 状态转移公式中的q0
double alpha = 2 beta = 5 rou = 0.1 alpha1 = 0.1  q

评论

共有 条评论