【TSP问题】基于粒子群算法求解旅行商问题含Matlab源码

1 简介

旅行商问题(Traveling Salesman Problem)是一个典型的组合优化问题,旅行商问题描述如下:给定 n 个城市及两两城市之间的距离,求一条经过各城市一次且仅一次的最逗路线。其图论描述为:​

【TSP问题】基于粒子群算法求解旅行商问题含Matlab源码_第1张图片

TSP 问题的求最优化解是很困难的。对于有着 n 个城市的 TSP问题,存在着(n-1)! /2 条可能的路径。随着城市数目 n 的增长,可能路径的数目以 n 的指数倍增加,如果使用穷举法搜索,需要考虑所以的可能情况,并两两比较,找出最优解,那么可搜索的路径及其距离之和的计算量将正比于 n! /2,算法的复杂度呈指数增长,人们把这类问题称为“NP 完全问题”。由于 TSP 具有实际应用价值,例如:城市管道铺设优化、物流等行业中的车辆调度优化、制造业中的切割路径优化以及电力系统配电网络重构等现实生活中的很多优化问题都可以归结为 TSP 模型来求解,目前 TSP 应用的一个重要方面就是无人飞机的航路设计问题,即事先针对敌方防御区内的威胁部署和目标的分布情况,对无人作战飞机的飞行航路进行整体规划设计,可以综合减小被敌方发现和反击的可能性、降低耗油量,从而显著提高 UCAV 执行对地攻击(或侦察)任务的成功率。目前求解

TSP 的主要方法有最近邻域搜索算法、模拟退火算法、遗传算法、Hopfield 神经网络算法和蚁群算法等。本文主要介绍用粒子群优化算法解决 TSP 问题及其各种改进方法。

【TSP问题】基于粒子群算法求解旅行商问题含Matlab源码_第2张图片

【TSP问题】基于粒子群算法求解旅行商问题含Matlab源码_第3张图片

2 部分代码

%粒子群算法求解旅行商问题close all;clear all;clc;tic;PopSize=500;%种群大小CityNum = 14;%城市数OldBestFitness=0;%旧的最优适应度值Iteration=0;%迭代次数MaxIteration =2000;%最大迭代次数IsStop=0;%程序停止标志Num=0;%取得相同适应度值的迭代次数c1=0.5;%认知系数c2=0.7;%社会学习系数w=0.96-Iteration/MaxIteration;%惯性系数,随迭代次数增加而递减%节点坐标node=[16.47 96.10; 16.47 94.44; 20.09 92.54; 22.39 93.37; 25.23 97.24;...     22.00 96.05; 20.47 97.02; 17.20 96.29; 16.30 97.38; 14.05 98.12;...     16.53 97.38; 21.52 95.59; 19.41 97.13; 20.09 94.55];%初始化各粒子,即产生路径种群Group=ones(CityNum,PopSize);  for i=1:PopSize    Group(:,i)=randperm(CityNum)';endGroup=Arrange(Group);%初始化粒子速度(即交换序)Velocity =zeros(CityNum,PopSize);   for i=1:PopSize    Velocity(:,i)=round(rand(1,CityNum)'*CityNum); %round取整end%计算每个城市之间的距离CityBetweenDistance=zeros(CityNum,CityNum);  for i=1:CityNum    for j=1:CityNum        CityBetweenDistance(i,j)=sqrt((node(i,1)-node(j,1))^2+...            (node(i,2)-node(j,2))^2);    endend%计算每条路径的距离for i=1:PopSize           EachPathDis(i) = PathDistance(Group(:,i)',CityBetweenDistance);end%最优解subplot(2,2,2);PathPlot(node,CityNum,index,IndivdualBest);title('优化解');%进化曲线subplot(2,2,3);plot((1:Iteration),OldBestFitness_1(1:Iteration));grid on;title('进化曲线');%最小路径值GlobalBestFitnesstoc

3 仿真结果

【TSP问题】基于粒子群算法求解旅行商问题含Matlab源码_第4张图片

4 参考文献

[1]张紫煊. 基于粒子群算法的旅行商问题解决方案研究[J]. 中国科技投资, 2016(33).

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

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

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