【配送路径规划】基于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

相关文章

hdu2544(单源最短路径)

模板题: //题意:求1到n的最短路径,模板题#include<iostream>#include<algorithm>#include<cstring>#include<stack>#include<queue>#include<set>#include<map>#include<stdio.h>#include<stdlib.h>#include<ctype.h>#i

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟&nbsp;开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚&nbsp;第一站:海量资源,应有尽有 走进“智听

动态规划---打家劫舍

题目: 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。 思路: 动态规划五部曲: 1.确定dp数组及含义 dp数组是一维数组,dp[i]代表

poj 1734 (floyd求最小环并打印路径)

题意: 求图中的一个最小环,并打印路径。 解析: ans 保存最小环长度。 一直wa,最后终于找到原因,inf开太大爆掉了。。。 虽然0x3f3f3f3f用memset好用,但是还是有局限性。 代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#incl

软考系统规划与管理师考试证书含金量高吗?

2024年软考系统规划与管理师考试报名时间节点: 报名时间:2024年上半年软考将于3月中旬陆续开始报名 考试时间:上半年5月25日到28日,下半年11月9日到12日 分数线:所有科目成绩均须达到45分以上(包括45分)方可通过考试 成绩查询:可在“中国计算机技术职业资格网”上查询软考成绩 出成绩时间:预计在11月左右 证书领取时间:一般在考试成绩公布后3~4个月,各地领取时间有所不同

Java ArrayList扩容机制 (源码解读)

结论:初始长度为10,若所需长度小于1.5倍原长度,则按照1.5倍扩容。若不够用则按照所需长度扩容。 一. 明确类内部重要变量含义         1:数组默认长度         2:这是一个共享的空数组实例,用于明确创建长度为0时的ArrayList ,比如通过 new ArrayList<>(0),ArrayList 内部的数组 elementData 会指向这个 EMPTY_EL

如何在Visual Studio中调试.NET源码

今天偶然在看别人代码时,发现在他的代码里使用了Any判断List<T>是否为空。 我一般的做法是先判断是否为null,再判断Count。 看了一下Count的源码如下: 1 [__DynamicallyInvokable]2 public int Count3 {4 [__DynamicallyInvokable]5 get

poj 2976 分数规划二分贪心(部分对总体的贡献度) poj 3111

poj 2976: 题意: 在n场考试中,每场考试共有b题,答对的题目有a题。 允许去掉k场考试,求能达到的最高正确率是多少。 解析: 假设已知准确率为x,则每场考试对于准确率的贡献值为: a - b * x,将贡献值大的排序排在前面舍弃掉后k个。 然后二分x就行了。 代码: #include <iostream>#include <cstdio>#incl

工厂ERP管理系统实现源码(JAVA)

工厂进销存管理系统是一个集采购管理、仓库管理、生产管理和销售管理于一体的综合解决方案。该系统旨在帮助企业优化流程、提高效率、降低成本,并实时掌握各环节的运营状况。 在采购管理方面,系统能够处理采购订单、供应商管理和采购入库等流程,确保采购过程的透明和高效。仓库管理方面,实现库存的精准管理,包括入库、出库、盘点等操作,确保库存数据的准确性和实时性。 生产管理模块则涵盖了生产计划制定、物料需求计划、

代码随想录冲冲冲 Day39 动态规划Part7

198. 打家劫舍 dp数组的意义是在第i位的时候偷的最大钱数是多少 如果nums的size为0 总价值当然就是0 如果nums的size为1 总价值是nums[0] 遍历顺序就是从小到大遍历 之后是递推公式 对于dp[i]的最大价值来说有两种可能 1.偷第i个 那么最大价值就是dp[i-2]+nums[i] 2.不偷第i个 那么价值就是dp[i-1] 之后取这两个的最大值就是d