2026年SEVC,高密度仓库中结合任务分配的多AGV无冲突调度框架,深度解析+性能实测

目录

---

1.摘要

随着智能仓库规模扩大,AGV 的大规模协同面临碰撞多、易拥堵及路径规划计算量爆炸等挑战,针对高密度环境,本文提出了一种集成任务分配的优先级驱动多 AGV 无冲突调度框架,将任务分配建模为考虑车辆负载与任务类型的多旅行商问题(MTSP),并利用GA求得近似最优解。算法通过引入高速公路机制、方向约束、转向惩罚及热力图启发的改进 A* 算法,在提升路径质量的同时缓解交通拥堵,再通过层次化优先级策略动态消除车辆间冲突。

2.问题表述

仓库建模为 M × N M\times N M×N的网格图 G = ( V , E ) G=(V,E) G=(V,E),其中节点集合为:

V = { v p q ∣ 1 ≤ p ≤ M , 1 ≤ q ≤ N } V=\{v_{pq}\mid1\leq p\leq M,1\leq q\leq N\} V={vpq∣1≤p≤M,1≤q≤N}

环境内 m m m台 AGV 组成的集合 A = { a 1 , a 2 , ... , a m } \mathcal{A}=\{a_1,a_2,\ldots,a_m\} A={a1,a2,...,am}仅限在北、东、南、西四个方向 D = \mathcal{D}= D=
{ N , E , S , W } \{N,E,S,W\} {N,E,S,W}上移动。根据任务状态,负载 AGV 必须沿通道行驶,而空载 AGV 则可直接穿行于货架下方。

为规范交通流,系统定义了高速公路子图 G h = ( V h , E h ) G_h=(V_h,E_h) Gh=(Vh,Eh),利用节点方向属性 θ ( v ) ∈ D \theta(v)\in\mathcal{D} θ(v)∈D约束行进航向。此外,通过语义状态矩阵实时描绘环境动态:

Z ∈ Z M × N \mathbf{Z}\in\mathbb{Z}^{M\times N} Z∈ZM×N

矩阵元素 z p q ∈ { 0 , 1 , 2 , 3 , 4 , 5 } z_{pq}\in\{0,1,2,3,4,5\} zpq∈{0,1,2,3,4,5}分别代表空闲、有货/无货货架、拣货区以及空载/负载 AGV 占用

状态。

任务分配模型

仓库任务根据语义状态分为入库任务集 T I N T \mathcal{T}\mathrm{INT} TINT (负载 AGV 将货架送往空位) 与出库任务集 T O U T \mathcal{T}\mathrm{OUT} TOUT (空载 AGV 前往货架区取货),这种分类将任务类型与 AGV负载状态及目标点属性深度耦合。定义完整任务集为 T = { τ 1 , τ 2 , . . . , τ m } \mathcal{T}=\{\tau_1,\tau_2,...,\tau_m\} T={τ1,τ2,...,τm},单台 AGV i i i执行任务 j j j的成本由其起始点 S i S_i Si与目标点

G j G_j Gj间的欧几里得距离衡量:

D ( S i , G j ) = ( x G j − x S i ) 2 + ( y G j − y S i ) 2 D(S_i,G_j)=\sqrt{(x_{G_j}-x_{S_i})^2+(y_{G_j}-y_{S_i})^2} D(Si,Gj)=(xGj−xSi)2+(yGj−ySi)2

通过引入二进制决策变量 x i j x_{ij} xij,任务分配问题被建模为以最小化总成本为目标的优化问题:

L t o t a l = min ⁡ ∑ i = 1 m ∑ j = 1 m x i j ⋅ D ( S i , G j ) L_\mathrm{total}=\min\sum_{i=1}^m\sum_{j=1}^mx_{ij}\cdot D(S_i,G_j) Ltotal=mini=1∑mj=1∑mxij⋅D(Si,Gj)

路径规划模型

为了构建路径规划模型,系统引入了位置占用 x i v , t x_i^{v,t} xiv,t、移动状态 y i ( u , v ) , t y_i^{(u,v),t} yi(u,v),t、转向行为 ρ i t \rho_i^t ρit 及负载状态 σ i t \sigma_i^t σit等二进制变量。在离散时间步 t ∈ [ 0 , t max ⁡ ] t\in[0,t_{\max}] t∈[0,tmax]内,单台 AGV 的运动性能由移动总时长 T i m T_i^m Tim、等待总时长 T i w T_i^w Tiw 和转向总次数 T i t r T_i^{tr} Titr 构成:

T i m = ∑ t = 1 t max ⁡ m i t , T i w = ∑ t = 1 t max ⁡ w i t , T i t r = ∑ t = 1 t max ⁡ ρ i t T_i^m=\sum_{t=1}^{t_{\max}}m_i^t,\quad T_i^w=\sum_{t=1}^{t_{\max}}w_i^t,\quad T_i^{tr}=\sum_{t=1}^{t_{\max}}\rho_i^t Tim=t=1∑tmaxmit,Tiw=t=1∑tmaxwit,Titr=t=1∑tmaxρit

为评价路径质量,定义无效路径比 (IPR)以惩罚过度的等待与转向,并利用时空热力图 H H H 量化全

局拥堵程度:

I P R ( i ) = a T i w + b T i t r T i m + T i t r , H = ∑ t = 0 t max ⁡ ∑ v ∈ V h ^ t ( v ) ( ∑ i = 1 m x i v , t ) \mathrm{IPR}(i)=\frac{aT_i^w+bT_i^{tr}}{T_i^m+T_i^{tr}},\quad H=\sum_{t=0}^{t_{\max}}\sum_{v\in V}\hat{h}t(v)\left(\sum{i=1}^mx_i^{v,t}\right) IPR(i)=Tim+TitraTiw+bTitr,H=t=0∑tmaxv∈V∑h^t(v)(i=1∑mxiv,t)

优化目标 F F F旨在最小化行驶成本、拥堵影响与路径低效性:

min ⁡ F = ∑ i = 1 m ( T i m + T i w + T i t r ) + H + ∑ i = 1 m IPR ( i ) \min F=\sum_{i=1}^m(T_i^m+T_i^w+T_i^{tr})+H+\sum_{i=1}^m\text{IPR}(i) minF=i=1∑m(Tim+Tiw+Titr)+H+i=1∑mIPR(i)

3.提出算法

AGV任务分配

本文提出了一种基于状态分组的开放式多旅行商问题 M T S P MTSP MTSP模型,其利用语义状态矩阵 Z \mathbb{Z} Z将 AGV 负载状态 σ i \sigma_i σi与任务类型 (入库或出库) 进行强耦合,通过定义允许任务集 J i \mathcal{J}_i Ji在分配阶段预先剔除非法匹配,从而大幅压缩组合搜索空间:

J i = { { j ∣ z G j = 1 } , σ i = 0 { j ∣ z G j = 2 } , σ i = 1 \mathcal{J}i=\begin{cases}\{j\mid z{G_j}=1\},&\sigma_i=0\\\{j\mid z_{G_j}=2\},&\sigma_i=1\end{cases} Ji={{j∣zGj=1},{j∣zGj=2},σi=0σi=1

在此约束下,优化目标设定为最小化所有 AGV 的总行驶成本:

L M T S P = min ⁡ ∑ i = 1 m ∑ j ∈ J i x i j D ( S i , G j ) L_{MTSP}=\min\sum_{i=1}^m\sum_{j\in J_i}x_{ij}D(S_i,G_j) LMTSP=mini=1∑mj∈Ji∑xijD(Si,Gj)

为了高效求解,该方案采用了变异驱动的遗传算法 M T G A MTGA MTGA,通过路径-断点双染色体编码表达全局序列。

基于改进冲突搜索算法(CBS)的多AGV路径规划

通过优先级驱动的高层协调与多维感知的低层 A ∗ A^* A∗搜索实现无冲突调度,在高层框架中,系统根据任务紧急度 ϵ i \epsilon_i ϵi、负载状态 σ i \sigma_i σi和路径唯一性 μ i \mu_i μi为每台 AGV 计算动态优先级分数:

P i = α ⋅ ϵ i + β ⋅ σ i + γ ⋅ μ i P_i=\alpha\cdot\epsilon_i+\beta\cdot\sigma_i+\gamma\cdot\mu_i Pi=α⋅ϵi+β⋅σi+γ⋅μi

并严格遵循 α > β > γ \alpha>\beta>\gamma α>β>γ且 α > β + γ \alpha>\beta+\gamma α>β+γ的词典序规则,确保冲突发生时仅重新规划低优先级个体的路径,从而大幅降低搜索分支因子。在低层规划中,增强 A ∗ A^* A∗算法通过在评价函数中引入转向惩罚 ρ t \rho_t ρt、等待成本 w t w_t wt及时空热力图偏置 h ^ t ( v ) \hat{h}_t(v) h^t(v)来优化路径平滑度并规避拥堵,其单步成本函数定义为:

c t + 1 ( u , v ) = d ( u , v ) + ( a w t + b ρ t ) + h ^ t + 1 ( v ) c_{t+1}(u,v)=d(u,v)+(aw_t+b\rho_t)+\hat{h}_{t+1}(v) ct+1(u,v)=d(u,v)+(awt+bρt)+h^t+1(v)

此外,系统采用时空热力图衰减增量规则动态监测全局交通流:

h ^ t + 1 ( v ) ← r h ^ t ( v ) + Δ C ⋅ ∑ i = 1 m x i v , t + 1 \hat{h}_{t+1}(v)\leftarrow r\hat{h}t(v)+\Delta C\cdot\sum{i=1}^mx_i^{v,t+1} h^t+1(v)←rh^t(v)+ΔC⋅i=1∑mxiv,t+1

4.结果展示

5.参考文献

Yang Z, Xu B, Le S, et al. Multi-AGV collision-free scheduling framework with task allocation in high-density warehouses[J]. Swarm and Evolutionary Computation, 2026, 104: 102376.

6.代码获取

xx

7.算法辅导·应用定制·读者交流

xx

相关推荐
abant28 小时前
leetcode 108 有序数组转平衡二叉树
算法·leetcode·职场和发展
汀、人工智能9 小时前
[特殊字符] 第7课:移动零
数据结构·算法·数据库架构·图论·bfs·移动零
计算机安禾9 小时前
【数据结构与算法】第25篇:静态查找(一):顺序查找与折半查找
java·开发语言·数据结构·学习·算法·visual studio code·visual studio
B1acktion9 小时前
2.7.希尔排序——让插入排序先大步走,再小步收尾
c++·算法·排序算法
原来是猿9 小时前
Linux进程信号详解(一):信号快速认识
linux·c++·算法
py有趣9 小时前
力扣热门100题之翻转二叉树
算法·leetcode
醉城夜风~9 小时前
C++函数参数的默认值及其使用场景
开发语言·c++·算法
tankeven9 小时前
HJ162 ACM中的AC题
c++·算法
无尽的罚坐人生9 小时前
hot 100 56. 合并区间
算法