一、获取代码方式

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

获取代码方式2:
完整代码已上传我的资源:【路径规划】基于matlab遗传算法多车辆路径规划【含Matlab源码 704期】

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

二、遗传算法简介

1 引言


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


2.2 遗传算法的理论基础




2.3 遗传算法的基本概念






2.4 标准的遗传算法


2.5 遗传算法的特点


2.6 遗传算法的改进方向

3 遗传算法流程



4 关键参数说明

三、部分源代码

clear
clc
close all
dmax=40;                      %单车的最大行驶距离
qmax=30;                      %单车的最大货物携带量
c0=10;                        %单车的出发成本
c1=1;                         %单车的行驶成本
X=[18.70,15.2916.47,8.4520.07,10.1419.39,13.3725.27,14.2422.00,10.0425.47,17.0215.79,15.1016.60,12.3814.05,18.1217.53,17.3823.52,13.4519.41,18.1322.11,12.5111.25,11.0414.17,9.7624.00,19.8912.21,14.50];
Q=[0 3.0 2.5 5.5 3.0 1.5 4.0 2.5 3.0 2.0 2.5 3.5 3.0 5.0 4.5 2.0 3.5 4.0];
NIND=100;                     %种群大小
MAXGEN=200;
Pc=0.9;                       %交叉概率
Pm=0.05;                      %变异概率
GGAP=0.9;                     %代沟
D=Distance(X);                %生成距离矩阵
N=size(D,1);                  %客户点数
K=10;                         %初始的车辆数
%生成初始种群
Chrom=InitPop(NIND,N,K);
%优化
gen=1;
figure(1);
hold on;
box on;
xlim([0,MAXGEN])
title('优化过程')
xlabel('代数')
ylabel('最优值')
ObjV = PathCost(Chrom,Q,D,dmax,qmax,c1,c0,K);                  %计算总花费
[preObjV,BestIndex] = min(ObjV);                               %找出最小的花费
BestChrom = Chrom(BestIndex,:);while gen<MAXGEN%计算适应度ObjV=PathCost(Chrom,Q,D,dmax,qmax,c1,c0,K);line([gen-1,gen],[preObjV,min(ObjV)]);pause(0.001)[preObjV,BestIndex]=min(ObjV);BestObjV(gen)=preObjV;AveObjV(gen)=sum(ObjV)/NIND;BestChrom(gen,:) = Chrom(BestIndex,:);FitnV = Fitness(ObjV);%选择SelCh1 = Select(Chrom,FitnV,GGAP);%交叉SelCh2 = Recombin(SelCh1,Pc);%变异SelCh3 = Mutate(SelCh2,Pm);%逆转操作SelCh4 = Reverse(SelCh3,D,Q,dmax,qmax,c1,c0,K);%重新插入新的种群Chrom =Reins(Chrom,SelCh4,ObjV);gen = gen+1;
end
%画出最优解的路线图
ObjV=PathCost(Chrom,Q,D,dmax,qmax,c1,c0,K);
[minObjV,minInd]=min(ObjV);
DrawPath(Chrom(minInd(1),:),X);
%输出最优解
disp('最优服务顺序:')
p=OutputPath(Chrom(minInd(1),:));
disp(['总花费:',num2str(minObjV)]);
s=0;
R=Chrom(minInd(1),:);
for i=1:size(R,2)-1s=s+D(R(i),R(i+1));
endfunction DrawPath(Chrom,X)
%%画路线图函数
%输入
%Chrom   待画路线
%X       各服务点的坐标位置R=Chrom;
figure;
hold on
plot(X(:,1),X(:,2),'o','color',[0.5,0.5,0.5])
plot(X(Chrom(1,1),1),X(Chrom(1,1),2),'rv','MarkerSize',20)
for i=1:size(X,1)text(X(i,1)+0.05,X(i,2)+0.05,num2str(i),'color',[1,0,0]);
end
A=X(R,:);
row=size(A,1);
for i=2:row[arrowx,arrowy]=dsxy2figxy(gca,A(i-1:i,1),A(i-1:i,2));annotation('textarrow',arrowx,arrowy,'HeadWidth',8,'color',[0,0,1]);
end
function varargout = dsxy2figxy(varargin)
if length(varargin{1}) == 1 && ishandle(varargin{1}) ...&& strcmp(get(varargin{1},'type'),'axes')   hAx = varargin{1};varargin = varargin(2:end);
elsehAx = gca;
end;
if length(varargin) == 1pos = varargin{1};
else[x,y] = deal(varargin{:});
end
axun = get(hAx,'Units');
set(hAx,'Units','normalized');
axpos = get(hAx,'Position');
axlim = axis(hAx);
axwidth = diff(axlim(1:2));
axheight = diff(axlim(3:4));
if exist('x','var')varargout{1} = (x - axlim(1)) * axpos(3) / axwidth + axpos(1);varargout{2} = (y - axlim(3)) * axpos(4) / axheight + axpos(2);
elsepos(1) = (pos(1) - axlim(1)) / axwidth * axpos(3) + axpos(1);pos(2) = (pos(2) - axlim(3)) / axheight * axpos(4) + axpos(2);pos(3) = pos(3) * axpos(3) / axwidth;pos(4) = pos(4) * axpos(4 )/ axheight;varargout{1} = pos;
end

四、运行结果



五、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
《智能优化算法及其MATLAB实例(第2版)》包子阳 余继周 杨杉著 电子工业出版社

【路径规划】基于matlab遗传算法多车辆路径规划【含Matlab源码 704期】相关推荐

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

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

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

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

  3. 基于Java毕业设计智能化车辆管理综合信息平台源码+系统+mysql+lw文档+部署软件

    基于Java毕业设计智能化车辆管理综合信息平台源码+系统+mysql+lw文档+部署软件 基于Java毕业设计智能化车辆管理综合信息平台源码+系统+mysql+lw文档+部署软件 本源码技术栈: 项目 ...

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

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

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

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

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

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

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

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

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

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

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

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

  10. 【Matlab语音加密】语音信号加密解密(带面板)【含GUI源码 181期】

    一.代码运行视频(哔哩哔哩) [Matlab语音加密]语音信号加密解密(带面板)[含GUI源码 181期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]韩纪庆 ...

最新文章

  1. pycharm 在ubuntu18.04 20.04以上保存在侧边栏的方法
  2. 承德大数据产业发展态势良好
  3. python安装方法32位_Python-3.9.0 安装教程【64位/32位】
  4. 神策数据全新服务体系——打造用户行为分析领域服务最高标准
  5. css高度已知,左右定宽,中间自适应三栏布局
  6. 总结-linux初识进程(包括cpu调度、进程创建、僵尸进程(重点)、环境变量)
  7. servlet-api-2.5.jar - jar not loaded
  8. UVA10120 ZOJ1229 Gift?!【DFS+BFS】
  9. 安卓旅途之——开发数独(总结)
  10. 自适应滤波——线性预测(LPC)
  11. 阶段3 1.Mybatis_11.Mybatis的缓存_8 mybatis的二级缓存
  12. linux视频字幕下载工具,Linux中编辑视频字幕
  13. 【转】HP laserjet p2055dn的自动双面打印功能
  14. php令牌桶,令牌桶限频(TokenBucket)
  15. Oracle前期准备
  16. 中国农业大学821数据结构计算机考研
  17. 企业邮箱哪个最好用?企业内部邮箱多少钱? 企业邮箱安全怎么选择?
  18. 阿里云账号登录名修改方法(图文详解)
  19. 突发!拼多多程序员自杀
  20. 【acm2629】 Identity Card

热门文章

  1. scrapy vs requests+beautifulsoup
  2. python mock接口返回数据(转载)
  3. 异步将远程链接上的内容(图片或内容)写到本地--微信头像
  4. 2016.01.18 Xcode中的正则表达式
  5. MSSQL中如何用SQL语句查询字段类型?
  6. (转载)c#常用的资料
  7. 2018ISMAR Comparing Different Augmented Reality Support Applications for Cooperative Repair...
  8. 190614每日一句
  9. Atitit db deadlock prblm cause and solu 数据库死锁原因与解决   在数据库中有两种基本的锁类型:排它锁(Exclusive Locks,即X锁)和共享
  10. atitit.TokenService v3 qb1  token服务模块的设计 新特性.docx