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

简介: 结合邻域连接法的蚁群优化(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)

⛄ 运行结果

⛄ 参考文献

"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电子书和数学建模资料


相关文章
|
14天前
|
算法 决策智能
基于SA模拟退火优化算法的TSP问题求解matlab仿真,并对比ACO蚁群优化算法
本项目基于MATLAB2022A,使用模拟退火(SA)和蚁群优化(ACO)算法求解旅行商问题(TSP),对比两者的仿真时间、收敛曲线及最短路径长度。SA源于金属退火过程,允许暂时接受较差解以跳出局部最优;ACO模仿蚂蚁信息素机制,通过正反馈发现最优路径。结果显示SA全局探索能力强,ACO在路径优化类问题中表现优异。
|
2月前
|
存储 算法 决策智能
基于免疫算法的TSP问题求解matlab仿真
旅行商问题(TSP)是一个经典的组合优化问题,目标是寻找经过每个城市恰好一次并返回起点的最短回路。本文介绍了一种基于免疫算法(IA)的解决方案,该算法模拟生物免疫系统的运作机制,通过克隆选择、变异和免疫记忆等步骤,有效解决了TSP问题。程序使用MATLAB 2022a版本运行,展示了良好的优化效果。
|
1月前
|
算法 决策智能
基于遗传优化算法的TSP问题求解matlab仿真
本项目使用遗传算法解决旅行商问题(TSP),目标是在四个城市间找到最短路径。算法通过编码、选择、交叉、变异等步骤,在MATLAB2022A上实现路径优化,最终输出最优路径及距离。
|
2月前
|
机器学习/深度学习 算法 调度
基于ACO蚁群优化的VRPSD问题求解matlab仿真,输出规划路径结果和满载率
基于ACO蚁群优化的VRPSD问题求解MATLAB仿真,输出ACO优化的收敛曲线、规划路径结果及每条路径的满载率。在MATLAB2022a版本中运行,展示了优化过程和最终路径规划结果。核心程序通过迭代搜索最优路径,更新信息素矩阵,确保找到满足客户需求且总行程成本最小的车辆调度方案。
|
3月前
|
机器学习/深度学习 算法 调度
基于ACO蚁群优化的VRPSD问题求解matlab仿真,输出规划路径结果和满载率
该程序基于ACO蚁群优化算法解决VRPSD问题,使用MATLAB2022a实现,输出优化收敛曲线及路径规划结果。ACO通过模拟蚂蚁寻找食物的行为,利用信息素和启发式信息指导搜索,有效求解带时间窗约束的车辆路径问题,最小化总行程成本。
|
4月前
|
算法
基于GA遗传优化的TSP问题最优路线规划matlab仿真
本项目使用遗传算法(GA)解决旅行商问题(TSP),目标是在访问一系列城市后返回起点的最短路径。TSP属于NP-难问题,启发式方法尤其GA在此类问题上表现出色。项目在MATLAB 2022a中实现,通过编码、初始化种群、适应度评估、选择、交叉与变异等步骤,最终展示适应度收敛曲线及最优路径。
256 29
|
3月前
|
算法 决策智能
基于GA-PSO遗传粒子群混合优化算法的TSP问题求解matlab仿真
本文介绍了基于GA-PSO遗传粒子群混合优化算法解决旅行商问题(TSP)的方法。TSP旨在寻找访问一系列城市并返回起点的最短路径,属于NP难问题。文中详细阐述了遗传算法(GA)和粒子群优化算法(PSO)的基本原理及其在TSP中的应用,展示了如何通过编码、选择、交叉、变异及速度和位置更新等操作优化路径。算法在MATLAB2022a上实现,实验结果表明该方法能有效提高求解效率和解的质量。
|
5月前
|
安全
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
本文介绍了2023年高教社杯数学建模竞赛D题的圈养湖羊空间利用率问题,包括问题分析、数学模型建立和MATLAB代码实现,旨在优化养殖场的生产计划和空间利用效率。
259 6
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
|
4月前
|
算法
基于ACO蚁群优化的UAV最优巡检路线规划算法matlab仿真
该程序基于蚁群优化算法(ACO)为无人机(UAV)规划最优巡检路线,将无人机视作“蚂蚁”,巡检点作为“食物源”,目标是最小化总距离、能耗或时间。使用MATLAB 2022a版本实现,通过迭代更新信息素浓度来优化路径。算法包括初始化信息素矩阵、蚂蚁移动与信息素更新,并在满足终止条件前不断迭代,最终输出最短路径及其长度。
|
5月前
|
存储 算法 搜索推荐
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
本文提供了2022年华为杯数学建模竞赛B题的详细方案和MATLAB代码实现,包括方形件组批优化问题和排样优化问题,以及相关数学模型的建立和求解方法。
154 3
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现

热门文章

最新文章