2025年KBS,基于强化学习离散状态转移算法+复杂约束下多无人机任务分配

目录


1.摘要

针对复杂约束下的多无人机协同任务分配问题,本文结合混合变量编码提出强化学习离散状态转移算法(RL-PDSTA),通过引入四种新约束处理算子,该算法在军事场景实验中展现出极高的约束处理效率与快速迭代能力。

2.复杂约束下多无人机协同任务分配模型

问题描述

模型设目标数量为 N t N_t Nt,每个目标 T j T_j Tj依次需要完成观测、攻击、评估三项任务 (编号分别为 3 T j − 2 , 3 T j − 3T_j-2,3T_j- 3Tj−2,3Tj− 1 , 3 T j 1,3T_j 1,3Tj)。前 U S U_S US 架侦察无人机仅执行观测与评估,其余 U F U_F UF 架战斗无人机仅执行攻击;任务可由多架无人机协作完成,资源消耗达到阈值 C k C_k Ck 即视为完成。所有目标均完成后行动结束。

目标函数

模型加权归一化合四个子目标,目标函数:

min ⁡ f = ω 1 f 1 ′ + ω 2 f 2 ′ + ω 3 f 3 ′ + ω 4 f 4 ′ , f i ′ = f i − f i min ⁡ f i max ⁡ − f i min ⁡ \min f = \omega_1 f'_1 + \omega_2 f'_2 + \omega_3 f'3 + \omega_4 f'4, \quad f'i = \frac{f_i - f{i}^{\min}}{f{i}^{\max} - f{i}^{\min}} minf=ω1f1′+ω2f2′+ω3f3′+ω4f4′,fi′=fimax−fiminfi−fimin

其中 f 1 , f 2 , f 3 , f 4 f_1, f_2, f_3, f_4 f1,f2,f3,f4 分别为总飞行距离、资源消耗、雷达探测距离和总飞行时间。约束包括异构无人机类型匹配、三任务时序先后、每任务至少一架无人机执行、资源消耗不低于阈值、单次观测时间与弹药量上限。

3.离散状态转移算法(PDSTA)

基于任务分配与路径规划的混合变量编码方法

基于任务分配与路径规划的混合变量编码方法采用三行结构 P = ( M , U , C ) P=(M,U,C) P=(M,U,C):第一行 M M M 记录任务编号第二行 U U U 记录无人机编号,第三行 C C C 记录对应无人机执行任务时的资源消耗量,从左至右的编码顺序表示无人机执行任务的先后时序。

基于约束处理可行解初始化方法

初始化及迭代过程中采用可行解生成策略,顺序编码,每次随机选取未完成目标,按序填入当前任务编号,依任务类型随机匹配对应无人机并更新位置,随机生成资源消耗量,累计达标则任务完成,直至所有目标三任务依次完成,所得个体即为满足约束的可行解。

PDSTA更新策略

PDSTA将单解扩展为规模 N N N的种群。每代依次对每个个体应用交换、移位、替代、重组四种算子,各生成 S E SE SE个候选解,累计 N × S E N\times SE N×SE个候选个体,并从中选取目标函数值最小的 N N N个作为下一代种群,迭代直至终止。

4.RL-PDSTA算法

针对PDSTA每轮迭代依次使用全部四个算子导致搜索盲目、时间复杂度高的问题,RL-PDSTA算法设计Q-learning依状态选择动作,迭代至收敛。

5.结果展示

6.参考文献

Zhou X, Xia R, Huang T. A reinforcement learning and population-based discrete state transition algorithm for solving the multi-UAV task allocation problem with complex constraintsJ. Knowledge-Based Systems, 2025, 325: 113910.

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

xx

相关推荐
变量未定义~23 分钟前
最小生成树1(Prim模板)、最小生成树2(kruskal模板)、最近公共祖先(模板)
算法
这就是佬们吗26 分钟前
Python入门⑤-异常处理、文件操作与实战项目
开发语言·数据库·python·算法·pycharm
LONGZETECH34 分钟前
新能源汽车充电设备装配与调试仿真教学软件 技术架构与核心实现解析
大数据·算法·3d·unity·架构·汽车
自学小白菜36 分钟前
关于提升机器学习算法做预测回归任务精度的方法分享
算法·机器学习·回归·提升精度
学废了wuwu44 分钟前
从入门到实战:深入浅出模型压缩三大核心——剪枝、彩票假设与知识蒸馏
人工智能·算法·剪枝
小肝一下1 小时前
3. 单链表
c语言·数据结构·c++·算法·leetcode·链表·dijkstra
劈星斩月1 小时前
监督学习算法 之 决策树
学习·算法·决策树
学计算机的计算基1 小时前
操作系统内存管理全解:虚拟内存、页表、COW、malloc、OOM一篇搞定
java·笔记·算法
tachibana21 小时前
hot100 前 K 个高频元素(347)
java·数据结构·算法·leetcode
To_OC9 小时前
LC 131 分割回文串:刚学回溯时,我连怎么切字符串都想不明白
javascript·算法·leetcode