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

本文主要是介绍【配送路径规划】基于matlab遗传算法卡车和两架无人机配送路径规划【含Matlab源码 2394期】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

✅博主简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,Matlab项目合作可私信。
🍎个人主页:海神之光
🏆代码获取方式:
海神之光Matlab王者学习之路—代码获取方式
⛳️座右铭:行百里者,半于九十。

更多Matlab仿真内容点击👇
Matlab图像处理(进阶版)
路径规划(Matlab)
神经网络预测与分类(Matlab)
优化求解(Matlab)
语音处理(Matlab)
信号处理(Matlab)
车间调度(Matlab)

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

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 ~narginuserConfig = struct();
elseif isstruct(varargin{1})userConfig = varargin{1};
elsetryuserConfig = struct(varargin{:});catcherror('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 ~= ncerror('Invalid XY or DMAT inputs!')
end

⛄三、运行结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

⛄四、matlab版本及参考文献

1 matlab版本
2014a

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

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

🍅 仿真咨询
1 各类智能优化算法改进及应用

生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化

2 机器学习和深度学习方面
卷积神经网络(CNN)、LSTM、支持向量机(SVM)、最小二乘支持向量机(LSSVM)、极限学习机(ELM)、核极限学习机(KELM)、BP、RBF、宽度学习、DBN、RF、RBF、DELM、XGBOOST、TCN实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断

3 图像处理方面
图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知

4 路径规划方面
旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划、天线线性阵列分布优化、车间布局优化

5 无人机应用方面
无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配

6 无线传感器定位及布局方面
传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化

7 信号处理方面
信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化

8 电力系统方面
微电网优化、无功优化、配电网重构、储能配置

9 元胞自动机方面
交通流 人群疏散 病毒扩散 晶体生长

10 雷达方面
卡尔曼滤波跟踪、航迹关联、航迹融合

这篇关于【配送路径规划】基于matlab遗传算法卡车和两架无人机配送路径规划【含Matlab源码 2394期】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/397946

相关文章

SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志

《SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志》在SpringBoot项目中,使用logback-spring.xml配置屏蔽特定路径的日志有两种常用方式,文中的... 目录方案一:基础配置(直接关闭目标路径日志)方案二:结合 Spring Profile 按环境屏蔽关

VSCode设置python SDK路径的实现步骤

《VSCode设置pythonSDK路径的实现步骤》本文主要介绍了VSCode设置pythonSDK路径的实现步骤,包括命令面板切换、settings.json配置、环境变量及虚拟环境处理,具有一定... 目录一、通过命令面板快速切换(推荐方法)二、通过 settings.json 配置(项目级/全局)三、

使用Python和Matplotlib实现可视化字体轮廓(从路径数据到矢量图形)

《使用Python和Matplotlib实现可视化字体轮廓(从路径数据到矢量图形)》字体设计和矢量图形处理是编程中一个有趣且实用的领域,通过Python的matplotlib库,我们可以轻松将字体轮廓... 目录背景知识字体轮廓的表示实现步骤1. 安装依赖库2. 准备数据3. 解析路径指令4. 绘制图形关键

如何更改pycharm缓存路径和虚拟内存分页文件位置(c盘爆红)

《如何更改pycharm缓存路径和虚拟内存分页文件位置(c盘爆红)》:本文主要介绍如何更改pycharm缓存路径和虚拟内存分页文件位置(c盘爆红)问题,具有很好的参考价值,希望对大家有所帮助,如有... 目录先在你打算存放的地方建四个文件夹更改这四个路径就可以修改默认虚拟内存分页js文件的位置接下来从高级-

8种快速易用的Python Matplotlib数据可视化方法汇总(附源码)

《8种快速易用的PythonMatplotlib数据可视化方法汇总(附源码)》你是否曾经面对一堆复杂的数据,却不知道如何让它们变得直观易懂?别慌,Python的Matplotlib库是你数据可视化的... 目录引言1. 折线图(Line Plot)——趋势分析2. 柱状图(Bar Chart)——对比分析3

一文详解如何查看本地MySQL的安装路径

《一文详解如何查看本地MySQL的安装路径》本地安装MySQL对于初学者或者开发人员来说是一项基础技能,但在安装过程中可能会遇到各种问题,:本文主要介绍如何查看本地MySQL安装路径的相关资料,需... 目录1. 如何查看本地mysql的安装路径1.1. 方法1:通过查询本地服务1.2. 方法2:通过MyS

Python如何调用指定路径的模块

《Python如何调用指定路径的模块》要在Python中调用指定路径的模块,可以使用sys.path.append,importlib.util.spec_from_file_location和exe... 目录一、sys.path.append() 方法1. 方法简介2. 使用示例3. 注意事项二、imp

Android实现一键录屏功能(附源码)

《Android实现一键录屏功能(附源码)》在Android5.0及以上版本,系统提供了MediaProjectionAPI,允许应用在用户授权下录制屏幕内容并输出到视频文件,所以本文将基于此实现一个... 目录一、项目介绍二、相关技术与原理三、系统权限与用户授权四、项目架构与流程五、环境配置与依赖六、完整

Android实现定时任务的几种方式汇总(附源码)

《Android实现定时任务的几种方式汇总(附源码)》在Android应用中,定时任务(ScheduledTask)的需求几乎无处不在:从定时刷新数据、定时备份、定时推送通知,到夜间静默下载、循环执行... 目录一、项目介绍1. 背景与意义二、相关基础知识与系统约束三、方案一:Handler.postDel

使用Python实现矢量路径的压缩、解压与可视化

《使用Python实现矢量路径的压缩、解压与可视化》在图形设计和Web开发中,矢量路径数据的高效存储与传输至关重要,本文将通过一个Python示例,展示如何将复杂的矢量路径命令序列压缩为JSON格式,... 目录引言核心功能概述1. 路径命令解析2. 路径数据压缩3. 路径数据解压4. 可视化代码实现详解1