2023年IEEE TITS SCI2区TOP,增强回溯搜索算法EBSA+多无人机辅助商业包裹递送系统飞行规划,深度解析+性能实测
目录
- 1.摘要
- 2.回溯搜索算法BSA原理
- 3.模型定义
- 4.增强回溯搜索算法EBSA
- 5.结果展示
- 6.参考文献
- 7.算法辅导·应用定制·读者交流
1.摘要
利用无人机进行商业包裹投递可以显著推动物流行业的转型升级,这得益于节省了人力资源成本,而无人机正在成为智能交通运输系统的新组成部分。然而,由于电池容量有限,无人机的飞行距离通常受到限制。为应对这一挑战,本文设计了一种多无人机协作的商业包裹投递系统,该系统通过广义服务网络(GSN)支持长距离投递。GSN 的每个节点都配备有充电桩,为无人机提供充电服务。考虑到每个节点充电桩数量有限以及无人机电池容量有限,为了确保系统的高效运行,将无人机的飞行规划问题转化为一个基于优先级编码机制的大规模优化问题。为解决这一问题,本文提出了一种增强回溯搜索算法(EBSA),该算法受到所研究飞行规划问题特点的启发,并针对回溯搜索算法易陷入局部最优的弱点,增强了其逃逸能力,其核心组件是设计了综合学习机制和局部逃逸算子。
2.回溯搜索算法BSA原理
【智能算法】回溯搜索算法(BSA)原理及实现
3.模型定义
多无人机辅助商业包裹投递系统
图中展示了多无人机协作的商业包裹投递系统,该系统包括一个仓库、三架无人机、三个投递取货站(DPS)和11个服务站(SS)。仓库和DPS配备有限数量的充电桩,而每个SS则提供充电服务,所有设施共同构成了一个包含15个节点的广义服务网络(GSN),这一网络使无人机能够执行长距离投递任务。
以无人机1为例,其飞行规划(FP)分为三个阶段:
- 阶段1:无人机1从仓库起飞,达到设定高度后进入恒速飞行状态;
- 阶段2:无人机1从SS 1飞行至SS 11,并在SS 1、SS 2、SS 7和SS 11充电;
- 阶段3:无人机1从SS 11起飞,并完成投递任务后降落在DPS 1。
尽管GSN支持长距离投递,但充电桩数量的限制给系统带来了挑战。SS7为无人机1和无人机2提供充电服务,这使得无人机2的飞行规划可能会影响到无人机1的任务。随着无人机数量的增加,SS7的充电桩压力加大,进而影响整个系统的运行效率。
飞行规划数学模型
首先做出以下五个假设:
- 所有用于执行投递任务的无人机完全相同,且电池在仓库已完全充电;
- 每架无人机执行独立任务,不与飞行中的其他障碍物发生碰撞;
- 无人机有三种飞行状态,起飞、着陆和正常飞行。无人机的起飞和着陆是垂直进行的,分别从起飞点和着陆点开始。无人机以恒定的速度和高度从一个节点飞行到另一个节点;
- 影响无人机能量消耗的因素包括起飞、着陆、充电和正常飞行;
- 影响无人机运行时间的因素包括起飞、着陆、正常飞行、充电及等待时间;
- 未考虑包裹重量对无人机性能的影响。
充电函数
GSN中的每个节点都可以为无人机提供充电服务,无人机的充电速度通常遵循慢-快-慢的规则,充电函数定义为:
E=E01+exp(6−t/5)E=\frac{E_0}{1+\exp(6-t/5)} E=1+exp(6−t/5)E0
其中,ttt是充电时间,E0E_0E0是电池的总能量容量,EEE是电池的剩余能量。为了计算充电时间,计算方式:
t=30−5ln(E0E−1)t=30-5\ln\left(\frac{E_0}{E}-1\right) t=30−5ln(EE0−1)
设 Ec,k,iE_{c,k,i}Ec,k,i 和 Er,k,iE_{r,k,i}Er,k,i 分别为无人机kkk在节点iii的当前电量和所需电量,充电时间:
tc,k,i=5ln(E0Ec,k,i−1)−5ln(E0Er,k,i−1),k∈[1,n]t_{c,k,i}=5\ln(\frac{E_0}{E_{c,k,i}}-1)-5\ln(\frac{E_0}{E_{r,k,i}}-1),\quad k\in[1,n] tc,k,i=5ln(Ec,k,iE0−1)−5ln(Er,k,iE0−1),k∈[1,n]
连接图
为了描述GSN中节点之间的空间关系,每个节点都有一个编号。设np为仓库数量,ns为服务站数量,nd为投递取货站数量,Sn为所有节点的编号序列。Sn可表示为:
Sn=[1,2,…,np,np+1,np+2,…,np+ns,np+ns+1,np+ns+2,…,np+ns+nd]\begin{aligned} S_{\mathrm{n}}=[1,2,\ldots,n_{\mathrm{p}},n_{\mathrm{p}}+1,n_{\mathrm{p}}+2,\ldots,n_{\mathrm{p}}+n_{\mathrm{s}},n_{\mathrm{p}} & +n_\mathrm{s}+1,n_\mathrm{p}+n_\mathrm{s}+2,\ldots,n_\mathrm{p}+n_\mathrm{s}+n_\mathrm{d}] \end{aligned} Sn=[1,2,…,np,np+1,np+2,…,np+ns,np+ns+1,np+ns+2,…,np+ns+nd]
仓库的节点编号为1到np;服务站的节点编号为np + 1到np + ns;投递取货站的节点编号为np + ns + 1到np + ns + nd,每个节点都有唯一的编号。设m为GSN中节点的总数,m满足m = np + ns + nd。为了衡量GSN中两个节点的空间关系,定义连接距离Dc为:
Dc=(1−θ)×LmaxD_{\mathfrak{c}}=(1-\theta)\times L_{\max} Dc=(1−θ)×Lmax
其中,θ\thetaθ为连接因子,Lmax为无人机的最大飞行范围。如果两个节点之间的距离小于Dc,则这两个节点是连接的(无需充电即可飞行);否则,两个节点不可连接(没有充电的情况下无人机无法飞行)。
充电桩状态图
在GSN中,每个节点配备有限数量的充电桩为无人机提供充电服务。设nc为某个节点的充电桩数量。使用充电桩的规则如下:所有需要充电的无人机按到达顺序排队。当排队的无人机数量超过nc时,一些无人机必须等待空闲的充电桩。为描述充电桩的状态,设计了充电桩状态图:
Si,j=[ts,i,jte,i,j],i∈[1,ns+nd+np],j∈[1,nc]S_{i,j}=[t_{\mathrm{s},i,j}t_{\mathrm{e},i,j}],\quad i\in[1,n_\mathrm{s}+n_\mathrm{d}+n_\mathrm{p}],j\in[1,n_\mathrm{c}] Si,j=[ts,i,jte,i,j],i∈[1,ns+nd+np],j∈[1,nc]
目标函数
无人机kkk的FP可以用GSN中的一个节点序列来表示。设λk\lambda_kλk表示无人机kkk的FP所对应的序列的节点数,lkl_klk表示λk\lambda_kλk中的节点数。λk\lambda_kλk表示为:
λk=[λk,1,λk,2,…,λk,lk],lk≥3,λk,p∈Sn,p∈[1,lk].\begin{aligned} \lambda_{k} & =[\lambda_{k,1},\lambda_{k,2},\ldots,\lambda_{k,l_{k}}],\quad l_{k}\geq3, \\ \lambda_{k,p} & \in S_{\mathrm{n}},\quad p\in[1,l_{k}]. \end{aligned} λkλk,p=[λk,1,λk,2,…,λk,lk],lk≥3,∈Sn,p∈[1,lk].
设 td,kt_{d,k}td,k 表示无人机k在包裹投递过程中的旅行时间。td,kt_{d,k}td,k 可以表示为:
td,k=ttl,k+ttf,k+ttc,k+ttw,kt_{d,k}=t_{tl,k}+t_{tf,k}+t_{tc,k}+t_{tw,k} td,k=ttl,k+ttf,k+ttc,k+ttw,k
FP问题的目标函数可以定义为:
minTatt=f(λ1,λ2,…,λn)=1n∑k=1ntd,k.\min T_{att}=f(\lambda_1,\lambda_2,\ldots,\lambda_n)=\frac{1}{n}\sum_{k=1}^nt_{d,k}. minTatt=f(λ1,λ2,…,λn)=n1k=1∑ntd,k.
4.增强回溯搜索算法EBSA
综合学习机制
第一种学习策略与BSA的相同;第二种策略通过随机交换信息来改进解,并引导无人机朝着全局最优解前进;第三种策略通过使用种群信息来提高算法的整体性能,结合了种群均值和局部信息。
Mw=ϕ4×(ϕ5×xi+(1−ϕ5)×xj)+(1−ϕ4)×1N∑i=1NxiM_w=\phi_4\times(\phi_5\times x_i+(1-\phi_5)\times x_j)+(1-\phi_4)\times\frac{1}{N}\sum_{i=1}^Nx_i Mw=ϕ4×(ϕ5×xi+(1−ϕ5)×xj)+(1−ϕ4)×N1i=1∑Nxi
xi=xi+ϕ6×(x∗−Mw)x_i=x_i+\phi_6\times(x^*-M_w) xi=xi+ϕ6×(x∗−Mw)
局部逃逸算子
利用标准正态分布的随机数,随机替换解 x∗x^{*}x∗ 中部分模块的元素。设 γ∗\gamma^{*}γ∗ 表示在 x∗x^{*}x∗ 中被选中模块的数量:
γ∗=⌈n×ϕ7⌉\gamma^*=\lceil n\times\phi_7\rceil γ∗=⌈n×ϕ7⌉
被选中模块内被替换的元素数量用hs∗h_s^*hs∗表示:
hs∗=⌈m×ϕ8⌉,s∈[1,γ∗]h_s^*=\lceil m\times\phi_8\rceil,\quad s\in[1,\gamma^*] hs∗=⌈m×ϕ8⌉,s∈[1,γ∗]
其中,hs∗h_s^*hs∗是第sss个被选中模块中被替换元素的数量,ϕ8\phi_8ϕ8是[0,1]之间的随机数。令xe,s,j∗x_{e,s,j}^*xe,s,j∗表示第sss个被选中
模块中第jjj个被选中的元素,则局部逃逸算子的定义为:
xe,s,j∗=μ×xe,s,j∗,j∈[1,hs∗]x_{e,s,j}^*=\mu\times x_{e,s,j}^*,\quad j\in[1,h_s^*] xe,s,j∗=μ×xe,s,j∗,j∈[1,hs∗]
5.结果展示
6.参考文献
[1] Zhang Y, Zhou G, Hang P, et al. An enhanced backtracking search algorithm for the flight planning of a multi-drones-assisted commercial parcel delivery system[J]. IEEE Transactions on Intelligent Transportation Systems, 2023, 24(10): 11396-11409.