✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。
🍎个人主页:Matlab科研工作室
🍊个人信条:格物致知。
更多Matlab仿真内容点击👇
⛄ 内容介绍
城市配送中,"最后一公里"配送成本是物流企业经营成本的主要组成部分,随着无人机技术的发展,无人机飞行能力和运输成本愈加优化,无人机配送作为城市配送领域的重要发展方向,受到越来越多的物流企业和研究人员的关注.由Amazon公司首先提出了并联式配送模式,即采用无人机由配送中心出发直接前往需求点完成配送后返回配送中心的配送方式,以实现无人机的"最后一公里"配送.然而研究人员指出,并联式配送模式由于对配送中心选址,需求点降落平台的要求较高,造成物流网络建设成本大幅增加,并不适用于城市配送中的"最后一公里"问题.因此,提出了串联式配送模式,即由卡车装载无人机进行配送,卡车即可作为无人机的起飞降落平台,也可作为移动仓库,这一模式有利于将配送中心建设在用地成本较低的区域,并提高了无人机的服务能力.本文主要研究城市配送中卡车和无人机串联式配送模式.当前国内外关于卡车和无人机协同配送问题的研究,主要集中在串联式配送模式中无人机的飞行约束方向,对于城市配送中卡车和无人机协同配送的可行性尚无研究,且对于带无人机的车辆路径问题算法多采用基于贪心选择的启发式算法,易陷入局部最优解.
⛄ 部分代码
function [ globalMin, optPop1, optPop2] = dtsp_ga_basic( popSize, numIter, xy, range, speed )
% If null arguments
showprogress=false;
if nargin < 5 % if input variables less than 6, use defualts
clear; clc;
nStops=6; numIter=500; speed=2; range=2;
xy = 1*rand([nStops, 2]);
% xy = [.15 .5]
% % create a square for distance
% xy = [xy ;
% 0 0;
% 1 0;
% 1 1;
% 0 1
% .9 .5]
popSize=length(xy)*5;
showprogress=true;
end
% initialize variables to integers/standard size, create distance matrix
nPoints = size(xy,1);
popSize = 5*floor(popSize/5);
numIter = max(1,round(real(numIter(1))));
meshg = meshgrid(1:nPoints);
dmat = reshape(sqrt(sum((xy(meshg,:)-xy(meshg',:)).^2,2)),nPoints,nPoints);
% Initialize the Population
[n, ~]= size(xy);
pop = zeros(popSize,n);
pop2 = zeros(popSize,n);
pop(1,:) = 1:n;
for k = 2:popSize
pop(k,:) = randperm(n);
end
% Run the GA
globalMin = Inf;
totalDist = zeros(1,popSize);
distHistory = zeros(1,numIter);
tmpPop = zeros(5,n);
newPop = zeros(popSize,n);
⛄ 运行结果
⛄ 参考文献
[1]方伟王玉佳闫文君. 基于双变异遗传算法的无人机对海侦察航路规划[J]. 中国电子科学研究院学报, 2021, 16(8):772-782.