一、获取代码方式

获取代码方式1:
完整代码已上传我的资源:【TSP】基于matlab遗传算法求解31城市旅行商问题【含Matlab源码 1150期】

获取代码方式2:
通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代码。

备注:
订阅紫极神光博客付费专栏,可免费获得1份代码(有效期为订阅日起,三天内有效);

二、TSP简介

旅行商问题,即TSP问题(Traveling Salesman Problem)又译为旅行推销员问题、货郎担问题,是数学领域中著名问题之一。假设有一个旅行商人要拜访n个城市,他必须选择所要走的路径,路径的限制是每个城市只能拜访一次,而且最后要回到原来出发的城市。路径的选择目标是要求得的路径路程为所有路径之中的最小值。
TSP的数学模型

二、遗传算法简介

1 引言


2 遗传算法理论
2.1 遗传算法的生物学基础


2.2 遗传算法的理论基础




2.3 遗传算法的基本概念






2.4 标准的遗传算法


2.5 遗传算法的特点


2.6 遗传算法的改进方向

3 遗传算法流程



4 关键参数说明

四、部分源代码

 %%%%%%%%%%%%%%%%%%%%%%%%%遗传算法解决TSP问题%%%%%%%%%%%%%%%%%%%%%%%
clear all;                      %清除所有变量
close all;                      %清图
clc;                            %清屏
C=[1304 2312;3639 1315;4177 2244;3712 1399;3488 1535;3326 1556;...3238 1229;4196 1044;4312  790;4386  570;3007 1970;2562 1756;...2788 1491;2381 1676;1332  695;3715 1678;3918 2179;4061 2370;...3780 2212;3676 2578;4029 2838;4263 2931;3429 1908;3507 2376;...3394 2643;3439 3201;2935 3240;3140 3550;2545 2357;2778 2826;...2370 2975];                 %31个省会城市坐标
N=size(C,1);                    %TSP问题的规模,即城市数目
D=zeros(N);                     %任意两个城市距离间隔矩阵
%%%%%%%%%%%%%%%%%%%%%求任意两个城市距离间隔矩阵%%%%%%%%%%%%%%%%%%%%%
for i=1:Nfor j=1:ND(i,j)=((C(i,1)-C(j,1))^2+(C(i,2)-C(j,2))^2)^0.5;end
end
NP=200;                          %种群规模
G=1000;                          %最大遗传代数
f=zeros(NP,N);                   %用于存储种群
F=[];                            %种群更新中间存储
for i=1:NPf(i,:)=randperm(N);          %随机生成初始种群
end
R=f(1,:);                        %存储最优种群
len=zeros(NP,1);                 %存储路径长度
fitness=zeros(NP,1);             %存储归一化适应值
gen=0;
%%%%%%%%%%%%%%%%%%%%%%%%%遗传算法循环%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
while gen<G%%%%%%%%%%%%%%%%%%%%%计算路径长度%%%%%%%%%%%%%%%%%%%%%%%%%%%%%for i=1:NPlen(i,1)=D(f(i,N),f(i,1));for j=1:(N-1)len(i,1)=len(i,1)+D(f(i,j),f(i,j+1));endendmaxlen=max(len);              %最长路径minlen=min(len);              %最短路径%%%%%%%%%%%%%%%%%%%%%%%%%更新最短路径%%%%%%%%%%%%%%%%%%%%%%%%%%rr=find(len==minlen);R=f(rr(1,1),:);%%%%%%%%%%%%%%%%%%%%%计算归一化适应值%%%%%%%%%%%%%%%%%%%%%%%%%%for i=1:length(len)fitness(i,1)=(1-((len(i,1)-minlen)/(maxlen-minlen+0.001)));end%%%%%%%%%%%%%%%%%%%%%%%%%%选择操作%%%%%%%%%%%%%%%%%%%%%%%%%%%%%nn=0;for i=1:NPif fitness(i,1)>=randnn=nn+1;F(nn,:)=f(i,:);endend[aa,bb]=size(F);while aa<NPnnper=randperm(nn);A=F(nnper(1),:);B=F(nnper(2),:);%%%%%%%%%%%%%%%%%%%%%%%交叉操作%%%%%%%%%%%%%%%%%%%%%%%%%%%%W=ceil(N/10);              %交叉点个数p=unidrnd(N-W+1);          %随机选择交叉范围,从p到p+Wfor i=1:Wx=find(A==B(p+i-1));y=find(B==A(p+i-1));temp=A(p+i-1);A(p+i-1)=B(p+i-1); B(p+i-1)=temp;temp=A(x); A(x)=B(y); B(y)=temp;end%%%%%%%%%%%%%%%%%%%%%%%%%%变异操作%%%%%%%%%%%%%%%%%%%%%%%%%p1=floor(1+N*rand());p2=floor(1+N*rand());while p1==p2p1=floor(1+N*rand());p2=floor(1+N*rand());endtmp=A(p1); A(p1)=A(p2); A(p2)=tmp;tmp=B(p1); B(p1)=B(p2); B(p2)=tmp;F=[F;A;B];[aa,bb]=size(F);end

五、运行结果


六、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1] 包子阳,余继周,杨杉.智能优化算法及其MATLAB实例(第2版)[M].电子工业出版社,2016.
[2]张岩,吴水根.MATLAB优化算法源代码[M].清华大学出版社,2017.

【TSP】基于matlab遗传算法求解31城市旅行商问题【含Matlab源码 1150期】相关推荐

  1. 【TS TSP】基于matlab禁忌搜索算法求解31城市旅行商问题【含Matlab源码 1143期】

    一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[TSP]基于matlab禁忌搜索算法求解31城市旅行商问题[含Matlab源码 1143期] 点击上面蓝色字体,直接付费下载,即可. 获取 ...

  2. 【ACO TSP】基于matlab蚁群算法求解31城市旅行商问题【含Matlab源码 1147期】

    一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[TSP]基于matlab蚁群算法求解31城市旅行商问题[含Matlab源码 1147期] 点击上面蓝色字体,直接付费下载,即可. 获取代码 ...

  3. 【Matlab验证码识别】遗传算法和最大熵优化+大津法(OTSU)+自定义阈值数字验证码识别【含GUI源码 1694期】

    一.代码运行视频(哔哩哔哩) [Matlab验证码识别]遗传算法和最大熵优化+大津法(OTSU)+自定义阈值数字验证码识别[含GUI源码 1694期] 二.matlab版本及参考文献 1 matlab ...

  4. 【Matlab路径规划】改进的遗传算法机器人避障路径规划【含GUI源码 703期】

    一.代码运行视频(哔哩哔哩) [Matlab路径规划]改进的遗传算法机器人避障路径规划[含GUI源码 703期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] ...

  5. 【Matlab图像融合】小波变换遥感图像融合【含GUI源码 744期】

    一.代码运行视频(哔哩哔哩) [Matlab图像融合]小波变换遥感图像融合[含GUI源码 744期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 包子阳,余 ...

  6. 【Matlab生物电信号】生物电信号仿真【含GUI源码 684期】

    一.代码运行视频(哔哩哔哩) [Matlab生物电信号]生物电信号仿真[含GUI源码 684期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]董兵,超于毅,李 ...

  7. 【Matlab语音分析】语音信号分析【含GUI源码 1718期】

    一.代码运行视频(哔哩哔哩) [Matlab语音分析]语音信号分析[含GUI源码 1718期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]韩纪庆,张磊,郑铁 ...

  8. 【Matlab人脸识别】BP神经网络人脸识别(含识别率)【含GUI源码 891期】

    一.代码运行视频(哔哩哔哩) [Matlab人脸识别]BP神经网络人脸识别(含识别率)[含GUI源码 891期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] ...

  9. 【Matlab人脸识别】形态学教室人数统计(带面板)【含GUI源码 1703期】

    一.代码运行视频(哔哩哔哩) [Matlab人脸识别]形态学教室人数统计(带面板)[含GUI源码 1703期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]孟 ...

  10. 【Matlab人脸识别】人脸实时检测与跟踪【含GUI源码 673期】

    一.代码运行视频(哔哩哔哩) [Matlab人脸识别]人脸实时检测与跟踪[含GUI源码 673期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]孟逸凡,柳益君 ...

最新文章

  1. Python图片操作-psd_tools:将psd文件转换成BMP
  2. php 静态方法继承,php 5.2中的类继承:重写扩展类中的静态变量?
  3. springboot+mybatis测试时遇到java.lang.NullPointerException
  4. Mysql之外连接_OUTER JOIN
  5. 专家:四大问答指出混合云的应用之路
  6. 点a链接写邮件小技巧
  7. PyCharm和git安装教程
  8. python怎么数据归一化_基于数据归一化以及Python实现方式
  9. 有关SQL Server事务日志的十大文章
  10. matlab中.mat文件用法
  11. win7 局域网服务器 文件共享,Win7系统电脑设置局域网共享文件的操作方法-电脑自学网...
  12. html中图片椭圆,CSS3技巧之形状(椭圆)
  13. 奶牛戴上VR眼镜“看片”,开心了可以多产奶:俄罗斯官方做了实验,拯救奶牛的冬季忧郁...
  14. 【华为云技术分享】让电变“机灵”,华为云与开发者共同打造智慧用电
  15. android fresco 流程,Android Fresco 笔记
  16. elasticsearch-8.0.0报错总结(ES)-持续更新
  17. 名帖86 蔡襄 行楷《谢赐御书诗表》
  18. Angular 入门教程系列:37:使用ng-alain快速开发
  19. 10月份语音合成任务安排: 商业化的普通话合成 (质量, 速度, 准确度, 韵律)
  20. 安装office报错

热门文章

  1. vscode源码分析【一】从源码运行vscode
  2. jstat 监控调整GC很好用
  3. java设计模式之装饰者模式学习
  4. WinForm系统 -- 系统架构
  5. 译:用iPhone SDK来画饼图(Pie Charts)报表
  6. python sklearn做文本分类
  7. 20190608每日一句
  8. 做情绪的主人,痛苦是人生的催化剂
  9. unity 插件 color picker htc手柄控制,扣动扳机生成三维点线
  10. aGlass学习笔记 1