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

资源简介

描述:基本的单蚁群算法,遍历所有节点,规划出最短路径

资源截图

代码片段和文件信息

// AntColonyAlgorithm.cpp: 定义控制台应用程序的入口点。
//
/*
 * 描述:基本的单蚁群算法,遍历所有节点,规划出最短路径
 *
 * Created on : 2018年7月5日
 * Author : Regan_Chai
 * E-Mail : regan_chai@163.com
*/

#include “stdafx.h“

#include
#include
#include
#include 
#include 

using namespace std;

typedef struct _POINT {
int x;
int y;
}POINT;

POINT points;

//----------(1)问题一:Oliver 30 节点 TSP 问题 ; ------------------------
//节点节点数目
//#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}{82 7}{8346}{8369}{8776}{9138}};


// 节点数目
#define N 32

// 节点坐标
int C[N][2] = {
{ 299 }{ 450 }{ 764 }{ 1340 }{ 1854 }{ 1840 }{ 20 6 }{ 2178 }{ 2260 }{ 2442 }
{ 2562 }{ 2538 }{ 3784 }{ 4194 }{ 4126 }{ 4435 }{ 4521 }{ 5467 }{ 5462 }{ 5835 }
{ 5869 }{ 6232 }{ 6460 }{ 6858 }{ 7144 }{ 7171 }{ 7478 }{ 82 7 }{ 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 问题 ; ----------------------------
//节点节点数目
#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 }
{ 4

评论

共有 条评论