配送路径规划基于matlab遗传算法卡车和两架无人机配送路径规划含Matlab源码 2394期

Posted 海神之光

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了配送路径规划基于matlab遗传算法卡车和两架无人机配送路径规划含Matlab源码 2394期相关的知识,希望对你有一定的参考价值。

⛄一、问题描述与模型建立

1 问题描述与模型分析
某地区有已知取送货需求的n个客户点,采用卡车携带小型无人机联合配送的方式从配送中心O(也作O’)出发为客户进行配送,配送模式见图1,在完成所有客户服务后返回仓库O’,使得总配送时间最短。由于某些客户需求无法由无人机完成(例如超过无人机有效载重的包裹,客户位置超过无人机飞行最大距离的包裹等)。因此,这样的客户仅能由卡车进行服务,其余客户均能由无人机安排配送。

图1所示为该配送模式的路径示意图,以往研究中,卡车与无人机均需承担配送任务,卡车在某一客户点处发射无人机后停止其配送服务,在该处等待无人机并进行回收。但在实际生活中,存在卡车无法长时间停车和交通堵塞情况,必须尽快前往下一个客户点,不能在发射地点等待无人机返回。因此,建立模型时考虑在无人机的服务过程中,使卡车继续进行配送任务,并在其后续节点将无人机进行回收。

图1 配送模式

为便于该问题中模型的建立及不失问题的一般性,对模型做出如下假设:1)无人机单次发射只服务一个客户;2)客户节点需求不可分割;3)无人机仅能从客户点所在位置处或配送中心位置处发射,且必须在沿途的后续客户点或配送中心处汇合;4)当无人机和卡车在某一客户点汇合时,较早到达的一个等待另一个[9];5)不考虑其他影响最大飞行速度的因素,且无人机都以最大飞行速度进行配送。

2 参数定义

3 模型构建
卡车与无人机联合配送的车辆路径优化模型是使总配送时间最短为目标函数以及多个约束条件组成。在确定目标时考虑无人机与卡车的速度及其各自的服务时间,各个节点处车辆与无人机的载重等因素,实现真正可行的目标解。

⛄二、部分源代码

function [varargout ] = d2tsp_ga(varargin)

% Initialize default configuration
defaultConfig.nCities = 30; %number stops
defaultConfig.capacity = 3; %drone capacity (1,2,3)
defaultConfig.range = 10; %(10, 15, 20)
defaultConfig.speed = 2; %drone speed factor of truck =1
defaultConfig.energy = 5e4; %(drone 5e4, 1e5, 2e5)
defaultConfig.energyP = 5e4; %(drone 5e4, 1e5, 1.3e4)
defaultConfig.energyT = 8.08e6; %(truck 8.08e6, 6.0e6)
defaultConfig.energyTP = 4.04e4; %(truck , 4.04e4, 1.2e5)
defaultConfig.cost = .04; % $0.04, $0.08, $0.20
defaultConfig.costT = .70; % $0.70, $0.40
defaultConfig.xy = 10*rand(defaultConfig.nCities,2);
defaultConfig.dmat = []; %dist matrix
defaultConfig.popSize = 200; %population size
defaultConfig.numIter = 2.5e2; %1.25e3; %iterations
defaultConfig.showProg = true; %show progress of route
defaultConfig.showResult = true; %show results on completion
defaultConfig.showWaitbar = false; %show wait bar

% output (inputs) nCities, cacity, range, speed, cost-d, cost-t, energy-d, energy-t, energyP-d, energyP-t, cost, costT
% output (results) minTime, minEnergy, minEnergyP, minCost, 

% If user inputs given
if ~nargin
    userConfig = struct();
elseif isstruct(varargin1)
    userConfig = varargin1;
else
    try
        userConfig = struct(varargin:);
    catch
        error('Error input structure');
    end
end

% Override default configuration with user inputs
configStruct = get_config(defaultConfig,userConfig);
nCities     = configStruct.nCities;
xy          = configStruct.xy;
dmat        = configStruct.dmat;
cap         = configStruct.capacity;
range       = configStruct.range;
speed       = configStruct.speed;
energy      = configStruct.energy;
energyP     = configStruct.energyP;%(parc-km energy:drone 5e4, 1e5, 1.3e4) 
energyT     = configStruct.energyT;%(truck 8.08e6, 6.0e6)
energyTP    = configStruct.energyTP;%(truck , 4.04e4, 1.2e5) 
cost        = configStruct.cost;
costT       = configStruct.costT;
popSize     = configStruct.popSize;
numIter     = configStruct.numIter;
showProg    = configStruct.showProg;
showResult  = configStruct.showResult;
showWaitbar = configStruct.showWaitbar;
if isempty(dmat)
    nPoints = size(xy,1);
    a = meshgrid(1:nPoints);
    dmat = reshape(sqrt(sum((xy(a,:)-xy(a',:)).^2,2)),nPoints,nPoints);
end

% Verify Inputs
[N,dims] = size(xy);
[nr,nc] = size(dmat);
if N ~= nr || N ~= nc
    error('Invalid XY or DMAT inputs!')
end

⛄三、运行结果



⛄四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1]刘艳秋,段聪.基于卡车与无人机联合配送的车辆路径优化[J].邵阳学院学报(自然科学版). 2022,19(02)

3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除

以上是关于配送路径规划基于matlab遗传算法卡车和两架无人机配送路径规划含Matlab源码 2394期的主要内容,如果未能解决你的问题,请参考以下文章

配送路径规划基于matlab遗传算法无人机和货车配送路径规划含Matlab源码 361期

配送路径规划基于matlab遗传算法配送车辆路径规划含Matlab源码 1853期

配送路径规划基于matlab遗传算法求解带时间窗的配送车辆路径规划问题含Matlab源码 604期

配送路径规划基于matlab遗传算法求解带时间窗的配送车辆路径规划问题含Matlab源码 604期

配送路径规划基于matlab遗传算法连锁超市配送路线规划含Matlab源码 2347期

配送路径规划基于matlab遗传算法求解带时间窗+带车辆速度的配送车辆路径规划问题含Matlab源码 256期