结合邻域连接法的蚁群优化(NACO)求解TSP问题附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

个人主页:Matlab科研工作室

个人信条:格物致知。

更多Matlab仿真内容点击

智能优化算法  神经网络预测 雷达通信  无线传感器

信号处理 图像处理 路径规划 元胞自动机 无人机  电力系统

⛄ 内容介绍

旅行商问题(TSP)是运筹学、数学优化和理论计算领域的经典算法问题。推销员必须绕过最短路线,绕过一定数量的地方,返回起点。精确算法和启发式算法都用于解决 TSP。
设计用于获得具有阶乘复杂性的精确解的精确算法被归类为 NP-Complete。启发式方法的解决方案都基于优化问题。这些算法的复杂性低于精确算法。因此,它可以在更少的时间和空间内给出解决方案,并用于近似解足以解决问题的情况,特别是在很难获得精确解的情况下。
本论文的首要目的是强调每种 TSP 方法的要求、局限性和能力,以指导科学家和研究人员根据他们的特定需求选择最合适的方法。它对最有效和广泛使用的 TSP 方法进行了全面调查,通过研究它们的方法来阐明它们的主要区别,以发现它们的优缺点。
蚁群优化 (ACO) 考虑了一种启发式方法,它具有很强的达到最优 TSP 解决方案的能力。它源于蚂蚁在自然界中的自然行为——基于分析真实的蚂蚁在群体中寻找和储存食物的思考。本论文的第二个目的是提出一种新的混合算法来解决TSP。它将由 ACO 和 Neighbor Joining (NJ) 组成的结构称为 (NACO)。新算法集中关注所有可能影响解的准则并将其应用到TSP中,与原蚁群算法相比,解得到很多改进,特别是在减少计算量和时间上.
此外,本文还介绍了并行NACO作为高性能TSP的高效并行程序。建议在单独的执行线程中并行运行蚂蚁,以受益于每个蚂蚁的独立操作,并通过使用多核系统实现并行算法。拟议的程序由 MATLAB® R2017a(版本 9.2)编写,并在配备 8GB RAM 和英特尔酷睿 i7-8565U CPU、64 位 Windows 操作系统的惠普计算机上实施。获得的结果表明,相对于 NACO,复杂度降低到 O(n^2 (n-ω))。至于 PNACO,复杂度从 O(n(n⁄p)(n-ω)) 降低,此外加速度高达 10。

⛄ 部分代码

%%PNACO

%%New hybrid methods to solve the model of traveling salesman problem based-on meta-heuristic method

%% A thesis Submitted to the College of Education for Pure Sciences,

%% Tikrit University as a Partial Fulfillment of Requirements for the Degree 

%% of Master of Sciences in Mathematics

%% By (Warif B.B. Yahia)&(Dr Mohammed W. Al-Neama)&(Dr. Ghassan E. Arif)

%% 2020 A.D = 1441 A.H

%% The main idea of the NACO method is to reduce the distance matrix generated 

%by the cities which the salesman must to visits. Where the NACO try to merge the

%cities by building a phylogenetic tree and then generating a new matrix called

%LEAF1 which represent the first stage of the joined leaves.When the salesman

%reach any city within this matrix,he will move directly to the next 

%corresponding city without doing any computations. 

%% Start with ACO 

clc;

clear;

close all;

profile on 

for s=2:2

%% Read the Dataset

D_Set=CreateD_Set('5.txt');

% D_Set=D_Set1;

% % load('D_Set.mat');

% D_Set1=D_Set;

CostFunction=@(tour) L_Tour(tour,D_Set);

no_Var=D_Set.n;

%% The Parameters

Iteration=1;                          % No. of Iterations

no_ant=1;                             % Population Size (No. of Ants)

Q=100;

%t0=1;

t0=10*Q/(no_Var*mean(D_Set.D(:)));      % Initial Phromone

alpha=1;                                % Phromone Exponential Weight

beta=5;                                 % Heuristic Exponential Weight

rate=0.7;                              % Evaporation Rate

%% Initialization

eta=1./D_Set.D;                         % Heuristic Information Matrix

t=t0*ones(no_Var,no_Var);               % Phromone Matrix

BC=zeros(Iteration,1);                  % Array to Hold Best Cost Values

% Empty Ant

empty_ant.Tour=[];

empty_ant.Cost=[];

% Ant Colony Matrix

ant=repmat(empty_ant,no_ant,1);

% Best Ant

BS.Cost=inf;

% the Level_one of NJ

Leaf=Leaf_1(D_Set.D);

% Runtime

T_1 = cputime;

%% NEW_ACO Main Program

for it=1:Iteration    

    for k=1:no_ant                      % Move Ants

        Leaf1=Leaf;

        ant(k).Tour=randi([1 no_Var]);  %% {choose a random non visited city}

        city=ant(k).Tour;

        for l =2:no_Var

            ant_tour=ant(k).Tour(end);          

profile viewer

% filename = 'resuls.xlsx';

% A = {Time,num2str(BC(it)),no_Var,Iteration};

% sheet = 1;

% xlRange = 'A22';

% xlswrite(filename,A,sheet,xlRange)

%filename = 'resuls.xlsx';

%A = {Time,num2str(BC(it)),no_Var,Iteration};

%sheet = 1;

%cell_num = sprintf('A%s',num2str(s));

%xlRange = cell_num;

%xlswrite(filename,A,sheet,xlRange)

end

%%% Results4

figure;

plot(BC,'LineWidth',2);

xlabel('Iteration');

ylabel('Best Cost');

grid on;

% saveas(gcf,'It_BC_48_N_1.png');

% filename = 'resuls.xlsx';

% A = {'Time(s)','Best Cost','no Cities','no it'};

% sheet = 2;

% xlRange = 'A1';

% xlswrite(filename,A,sheet,xlRange)

⛄ 运行结果

结合邻域连接法的蚁群优化(NACO)求解TSP问题附Matlab代码_第1张图片

⛄ 参考文献

"A HYBRID OPTIMIZATION ALGORITHM OF ANT COLONY SEARCH AND NEIGHBOUR-JOINING METHOD TO SOLVE THE TRAVELLING SALESMAN PROBLEM"‏, Advanced Mathematical Models & Applications Vol.5, No.1, 2020, pp.95-110

⛄ Matlab代码关注

❤️部分理论引用网络文献,若有侵权联系博主删除

❤️ 关注我领取海量matlab电子书和数学建模资料

 

你可能感兴趣的:(路径规划,matlab,算法,开发语言)