2025年IEEE TSMCS SCI1区TOP,面向异构多点动态聚合的多阶段粒子群算法,深度解析+性能实测

目录


1.摘要

本文研究异构多点动态聚合(MPDA)多机器人任务分配问题,针对现有方法多假设机器人和任务同构的不足,提出一种考虑不同类型机器人及任务依赖关系的异构MPDA模型,并设计多阶段粒子群算法通过多阶段策略缩小搜索空间,并结合连续速度更新与离散位置更新的混合机制优化任务分配。实验结果表明,该方法在效率和性能上优于现有先进方法。

2.异构多点动态聚合

异构多点动态聚合(HeMPDA)问题表示在地图上存在 L L L 个任务点,每个任务点包含若干具有前后依赖关系的任务,并用有向无环图表示。机器人从仓库 p 0 p_0 p0 出发,在图 G ( P , E ) G(P, E) G(P,E) 上移动执行任务。每个任务可能包含多种类型的需求,需求随时增长:
q i m ( t ) = q i m ( 0 ) + r i m × t q_i^m(t) = q_i^m(0) + r_i^m \times t qim(t)=qim(0)+rim×t

当机器人执行任务时,其能力会降低任务需求;任务完成时间由所有需求完成时间决定:
c t i = max ⁡ m ∈ { 1 , ... , M T } c t i m ct_i = \max_{m \in \{1, \ldots, MT\}} ct_i^m cti=m∈{1,...,MT}maxctim

机器人具有多种能力 a k m a_k^m akm,不同类型机器人能力不同,可协同完成任务。问题目标是最小化所有任务的最终完成时间:
min ⁡ max ⁡ i ∈ { 1 , ... , N } c t i \min \max_{i \in \{1, \ldots, N\}} ct_i mini∈{1,...,N}maxcti

机器人路径由二进制变量 λ i j k \lambda_{ij}^k λijk 表示(机器人 k k k 是否从任务 i i i 到任务 j j j)。机器人到达任务时间由前一任务完成时间和旅行时间决定:
a t j k = ∑ i = 0 N ( d t i k + t i j ) λ i j k at_j^k = \sum_{i=0}^{N} (dt_i^k + t_{ij}) \lambda_{ij}^k atjk=i=0∑N(dtik+tij)λijk

任务需求满足关系为:
q j m ( 0 ) + r j m c t j m = ∑ i = 0 N ∑ k = 1 M λ i j k a k m ( c t j m − min ⁡ ( c t j m , a t j k ) ) q_j^m(0) + r_j^m ct_j^m = \sum_{i=0}^{N} \sum_{k=1}^{M} \lambda_{ij}^k a_k^m (ct_j^m - \min(ct_j^m, at_j^k)) qjm(0)+rjmctjm=i=0∑Nk=1∑Mλijkakm(ctjm−min(ctjm,atjk))

解表示方案

在 HeMPDA 中,一个解表示为可变长度的事件序列:

s o l = [ e v e n t 1 , e v e n t 2 , ... , e v e n t d ] sol=[event_1,event_2,\ldots,event_d] sol=[event1,event2,...,eventd]

每个事件由四个元素组成:

e v e n t e = ( r o b e k , ν e i , t e , S e ) event_e=(rob_{ek},\nu_{ei},t_e,S_e) evente=(robek,νei,te,Se)

其中 r o b e k rob_{ek} robek表示执行任务的机器人, ν e i \nu_{ei} νei表示任务, t e t_e te为事件发生时间, S e S_e Se为事件类型 ( S e = 1 (S_e=1 (Se=1表示机器人到达任务并开始执行, S e = 0 S_e=0 Se=0表示机器人离开任务)。

3.多阶段粒子群算法

多阶段粒子群算法(MSPSO)首先通过迭代局部搜索生成初始全局解并初始化粒子,随后采用混合更新机制和局部搜索不断优化解。为降低复杂

搜索空间,算法设计多阶段策略,通过任务点约束和协作约束暂时缩小搜索空间,使规模由 ( N ! ) M (N!)^M (N!)M降至 [ ( L ! ) ∏ l = 1 L ( N l ! ) ] M ˉ [(L!)\prod_{l=1}^L(N_l!)]^{\bar{M}} [(L!)∏l=1L(Nl!)]Mˉ。随后通过四个阶段逐步放宽约束:先让所有机器人组成一个团队,再划分为多个团队,然后取消任务点约束,最后取消协作约束,使机器人完全自由调度。阶段之间按时间或停滞情况切换,并重新初始化粒子,同时保留全局最优 g b gb gb和个体最优 p b pb pb以延续搜索信息。

编解码方案

在 MSPSO 中,粒子位置 x i x_i xi需要解码为机器人 (或团队)的任务执行路径进行评价。不同阶段采用不同编码方式:阶段I和II使用间接编码, x i = [ p t 1 k , ... , p t L k , p p k ] x_i=[pt_1^k,\ldots,pt_L^k,pp_k] xi=[pt1k,...,ptLk,ppk],其中 p p k pp_k ppk 表示任务点访问顺序, p t l k pt_l^k ptlk表示该任务点内的任务执行序列;阶段 III 取消任务点约束, x i = [ p r 1 , ... , p r M ˉ ] x_i=[pr_1,\ldots,pr_{\bar{M}}] xi=[pr1,...,prMˉ]直接表示各团队路径;阶段 IV 进一步取消协作约束,直接表示每个机器人的路径。对于阶段I和II,需要根据 p p k pp_k ppk对各任务点序列 p t l k pt_l^k ptlk排序生成路径 p r k pr_k prk,再重新编号任务进行评价。

粒子更新

为适应排列形式编码,MSPSO 设计了混合更新机制,包括速度更新和位置更新。速度更新:

v i d = w v i d + c 1 ( p i b d − x i d ) + c 2 ( g d − x i d ) v_i^d=wv_i^d+c_1(p_i^{bd}-x_i^d)+c_2(g^d-x_i^d) vid=wvid+c1(pibd−xid)+c2(gd−xid)

为增强局部搜索能力,算法对当前全局最优解采用两元素交换的局部搜索策略,并根据不同阶段在任务点顺序、任务执行顺序或机器人路径上进行邻域搜索。多阶段策略通过临时加入和逐步移除约束,使算法先在缩小的可行空间中快速找到可行解,再逐渐扩展搜索范围,从而提高搜索效率。

4.结果展示

5.参考文献

1\] Dai S H, Jia Y H, Chen W N, et al. Multistage particle swarm optimization for heterogeneous multipoint dynamic aggregation\[J\]. IEEE Transactions on Systems, Man, and Cybernetics: Systems, 2025. ### 6.代码获取 xx ### 7.算法辅导·应用定制·读者交流 xx

相关推荐
xiaoye-duck2 小时前
《算法题讲解指南:优选算法-前缀和》--29.和为k的子数组,30.和可被k整除的子数组
c++·算法
Z9fish2 小时前
sse 哈工大 C 语言编程练习 39
c语言·数据结构·算法
丶小鱼丶2 小时前
数据结构和算法之【二分查找】
java·数据结构·算法
忡黑梨2 小时前
BUUCTF_reverse_[MRCTF2020]Transform
c语言·开发语言·数据结构·python·算法·网络安全
枳颜2 小时前
LeetCode 466:统计重复个数
数据结构·算法·字符串
爱和冰阔落2 小时前
【C++STL上】栈和队列模拟实现 容器适配器 力扣经典算法秘籍
数据结构·c++·算法·leetcode·广度优先
程序员-King.2 小时前
day162—递归—买卖股票的最佳时机Ⅱ(LeetCode-122)
算法·leetcode·深度优先·递归
Gorgous—l2 小时前
数据结构算法学习:LeetCode热题100-贪心算法篇(数组中的第K个最大元素、 前 K 个高频元素、数据流的中位数)
数据结构·学习·算法
一叶落4382 小时前
LeetCode 300. 最长递增子序列(LIS)详解(C语言 | DP + 二分优化)
c语言·数据结构·c++·算法·leetcode