三级跳突破864维动作空间——QMIX-Hierarchical多无人机协同通信方法全解析【附python代码】

导读 :在战场或灾区的复杂电磁环境中,移动干扰器持续压制通信信号,地面IoT设备电量有限且分布不均。如何让多架无人机自主协同,一边躲避干扰、一边高效服务所有设备?本文介绍一种三层递进 的多智能体深度强化学习方法------MaDRL (Multi-agent Deep Reinforcement Learning),在仿真中实现吞吐量从基线的0.32飙升至0.96,干扰失败率降低66%。


原文链接

一、引子:当无人机遇上"不讲武德"的移动干扰器

想象这样一个场景:

一片500m×500m的区域内,散落着15个IoT传感器------有的负责监测温度,有的采集振动数据。它们的电池小得可怜,通信能力也参差不齐。天上飞着2架无人机 ,承担着"空中基站"的角色,需要飞到设备上空、选择合适的通信模式把数据收回来。

但问题来了------地面上还有一台移动干扰器,像个"捣蛋鬼"一样追着无人机跑,不断发射大功率干扰信号,导致通信信噪比骤降、数据包大量丢失。

更棘手的是:

  • IoT设备有三种型号,各自擅长不同的通信方式(主动传输 vs 反向散射)
  • 设备电量紧巴巴,充电和通信需要精打细算
  • 无人机之间不能"打架"------既不能服务冲突,更不能空中碰撞
  • 干扰器本身也会"累",电量耗尽后要找RF源充电,充满后又回来捣乱

这正是**UAV-MaDRL项目(代号:Project SkyShield)**要解决的核心问题。


二、系统建模:六个角色一台戏

2.1 场景全貌

整个系统包含四类实体:

实体 角色 关键属性
UAV(无人机)× 2 空中通信中继 固定高度100m,9方向移动(含悬停),覆盖半径50m
IoT设备 × 15 数据采集节点 3种类型,随机分布在500×500区域,各有数据队列和能量预算
Jammer(干扰器)× 1 移动干扰源 移动速度约UAV的60%-100%,追踪最近无人机,有能量限制
RF源 × 1 射频能量源 发射载波信号,其忙/闲状态决定信道可用性

2.2 IoT设备的三种"性格"

不是所有IoT设备都一样------系统设计了三种类型,各具特色:

Type 1 --- "主动传输型"

每时隙可主动发送2包数据,能耗仅1单位,但反向散射能力较弱(1包/时隙)。初始能量充沛(4-8),电池容量也大(15)。像"大胃王",吃得多干得快。
Type 2 --- "反向散射型"

双向均衡:主动传输和反向散射均为2包/时隙,但主动传输能耗加倍(2单位)。初始能量偏少(1-4),电池容量10。适合"蹭"RF源的载波信号做反向散射通信。
Type 3 --- "灵活双模型"

两种模式各1包/时隙,主动传输能耗最高(3单位)。初始能量最低(0-2),电池容量仅6。最"拮据"但最灵活。

这种异构设计贴近真实物联网场景:不是所有设备都适合统一调度策略

2.3 六种通信模式

每个设备在每个时隙可选择以下模式之一:

| 模式 | 触

发条件 | 效果 |

|------|----------|------|

| idle (空闲) | 无 | 不通信,休眠省电 |

| harvest (能量收集) | RF信道忙 | 从RF源信号中采集能量充电 |

| backscatter (反向散射) | RF信道忙 + 有数据队列 | 利用环境RF信号反射传输数据,几乎不耗电 |

| active (主动传输) | RF信道闲 + 有能量 | 主动发送数据,能耗较高 |

| relay (中继) | --- | 占位模式,用于扩展场景 |

| avoid_jammer(远离干扰) | --- | 主动规避干扰器,获得安全奖励 |

这里有个精妙的设计:harvest和backscatter都依赖RF信道忙 ,而active需要信道闲 。这意味着设备需要根据RF源的状态动态切换模式------就像十字路口的红绿灯,不同相位通行不同方向的车流。

2.4 信道模型与传输成功概率

通信质量由**SINR(信号与干扰加噪声比)**决定:

L ( d ) = max ⁡ ( d , 1 ) 2.2 L(d) = \max(d, 1)^{2.2} L(d)=max(d,1)2.2

P r x ( P , d ) = P L ( d ) P_{rx}(P, d) = \frac{P}{L(d)} Prx(P,d)=L(d)P

SINR = P s i g n a l N 0 + P j a m m e r ( d ) \text{SINR} = \frac{P_{signal}}{N_0 + P_{jammer}(d)} SINR=N0+Pjammer(d)Psignal

传输成功概率采用分段函数设计:当SINR高于门限时,成功概率为 SINR/(SINR+θ);低于门限则趋近于零。这意味着距离越近、干扰越弱,传输越可靠

2.5 干扰器的"智能"能量管理(创新点)

干扰器并非"无限火力"。项目新增了一个精巧机制:

  • 干扰器最大能量50,初始满电
  • 每步干扰消耗0.5能量
  • 能量低于5时停止干扰,开始寻找RF源充电
  • 导航算法:RSSI爬山法------比较当前与上一步的RSSI,信号增强则保持方向,减弱则随机转向
  • 充至30后恢复干扰(迟滞机制,5←→30区间防止频繁振荡)

这模拟了真实对抗场景中的"打打停停"节奏,让模拟更加逼真。


三、方法论:从"乱撞"到"协作"的三级跳

3.0 为什么不用传统方法?

如果让无人机暴力搜索最优动作,动作空间有多大?

9种移动方向 × 16个可服务目标(15设备+无目标) × 6种通信模式 = 864维

这就是所谓的组合爆炸。传统Q-learning在这种空间下根本无法收敛。

研究团队设计了一条清晰的三层递进路线:


3.1 第一级:Flat DDQN(基准线)

💡 思路:直接用DDQN在864维原始动作空间中学习。

网络架构:集中式分解DDQN(Centralized-Factorized DDQN),所有UAV共享一个Q网络,通过UAV ID编码区分不同智能体。

结果 :吞吐量仅 0.3242,与"纯主动传输"启发式方法(0.3278)几乎一样,远不如"反向散射优先"(0.8522)。

诊断 :864维动作空间如同一片汪洋大海,智能体根本找不到有效的梯度信号。动作空间必须压缩


3.2 第二级:Hierarchical DDQN(层次化动作抽象)

这是最关键的突破。

💡 核心思想 :将864维原始动作抽象为10个高层策略动作,由基于规则的执行器(Executor)翻译为具体操作。

10个高层战略动作:
# 高层动作 含义
1 IDLE_SAFE 🛡️ 安全空闲,保存能量,远离危险
2 SERVE_NEAREST_QUEUE 📍 飞向最近有待发数据的设备
3 SERVE_BEST_SINR 📶 选择信道质量最优的设备服务
4 PRIORITIZE_BACKSCATTER_TYPE23 🔄 优先Type2/3设备的反向散射(节能)
5 PRIORITIZE_ACTIVE_TYPE1 ⚡ 优先Type1设备的主动传输(快速清空队列)
6 HARVEST_LOW_ENERGY 🔋 为低电量设备收集RF能量
7 AVOID_JAMMER 🏃 远离干扰器,避免被干扰
8 BALANCE_UNDERSERVED_IOT ⚖️ 平衡服务:找出被忽视的设备优先服务
9 HYBRID_BALANCED 🔀 混合平衡策略,综合吞吐和公平
10 HIGH_QUEUE_PRIORITY 📊 追求高队列压力的设备,防止数据溢出丢包
执行器如何工作?

SERVE_NEAREST_QUEUE 为例:

  1. 扫描15个设备,找出有数据队列的
  2. 计算UAV到每个候选设备的距离
  3. 选择最近的设备作为目标
  4. 确定移动方向(指向目标设备的9方向之一)
  5. 判断通信模式:RF闲→主动传输,RF忙→反向散射

其他高层动作有各自的规则逻辑,共同将10维软决策翻译为精确的864维硬动作。

结果惊人 :吞吐量从0.3242飙升至 0.9710,接近3倍提升!

结论:动作抽象是解决大规模动作空间的关键,将"该做什么"和"怎么做"解耦。


3.3 第三级:QMIX-Hierarchical(最终MaDRL方案)

Hierarchical DDQN虽然效果好,但它本质上还是独立学习------每个UAV只用自己的观测做决策,缺乏协同。

💡 QMIX核心思想:用一个混合网络(Mixer Network)将多个智能体的局部Q值组合为全局Q值,同时满足单调性约束,实现集中式训练、分布式执行(CTDE)。

QMIX架构:
复制代码
         ┌─────────────┐
         │  Q_tot (全局) │  ← 全局Q值
         └──────┬──────┘
                │
    ┌───────────┴───────────┐
    │     QMixer 混合网络    │  ← 超网络生成非负权重
    └───────────┬───────────┘
                │
       ┌────────┴────────┐
  ┌────┴────┐      ┌────┴────┐
  │  Q_uav1 │      │  Q_uav2 │  ← 每个UAV的局部Q值
  └────┬────┘      └────┬────┘
       │                │
  ┌────┴────┐      ┌────┴────┐
  │AgentNet1│      │AgentNet2│  ← 共享权重的Agent Q网络
  └─────────┘      └─────────┘

关键机制

  • 单调性约束∂Q_tot / ∂Q_u ≥ 0,保证全局最优动作等价于各智能体贪心选择的组合
  • 超网络:以全局状态为输入,动态生成混合权重,赋予"大局观"
  • 集中式训练:训练时使用全局信息(所有设备状态、所有UAV位置)
  • 分布式执行:推理时每个UAV只需本地观测 + 共享的Agent Q网络

网络参数配置

参数
隐藏层 128, 128
混合嵌入维度 32
超网络隐藏维度 64
学习率 0.0005
折扣因子 γ 0.99
Double Q-learning
目标网络更新频率 每200步
观测空间与状态空间:
  • 局部观测(每UAV):97维(7维UAV自状态 + 6维×15设备状态)
  • 全局状态(Mixer输入):70维(3维度×2UAV + 4维度×15设备 + 2维度×1干扰器 + 2维全局信息)

3.4 奖励函数:八维权衡

全局共享奖励函数精心设计了8个分量:

复制代码
R = + 1.0 × 成功数据包数      (吞吐量激励)
    + 0.2 × 避干扰bonus        (安全激励)
    - 2.0 × 丢包数             (丢弃惩罚,权重最高)
    - 0.1 × 平均队列长度       (延迟压力)
    - 0.01 × UAV能耗           (续航考量)
    - 1.0 × 干扰失败数         (抗干扰指标)
    - 5.0 × 碰撞数             (碰撞惩罚,最高优先级)
    - 0.2 × (1 - Jain公平指数) (服务公平性)

权重设计的考量:

  • 碰撞惩罚权重5.0为最高------安全永远是第一位的
  • 丢包惩罚2.0次之------数据完整性至关重要
  • 公平性项引入Jain公平指数,防止某些设备被"遗忘"

四、实验结果:三级跳的数据验证

在2 UAV、15 IoT、1移动干扰器的Scenario 4中,各方法对比:

方法 吞吐量(包/帧) 干扰失败率 ↓ 公平性 ↑
Random(随机策略) 0.1075 --- ---
HTT-only(仅主动传输) 0.3278 --- ---
Greedy SINR(贪心SINR) 0.4783 --- ---
Backscatter-only(仅反向散射) 0.8522 --- ---
Greedy Nearest(贪心最近) 0.8977 --- ---
Flat DDQN 0.3242 0.6093 0.1930
Hierarchical DDQN 0.9710 ⬆️ 0.4403 0.4754
QMIX-Hierarchical(3种子) 0.9604 ± 0.0255 🏆 0.2056 ± 0.0744 ⬇️ 0.5260 ± 0.0572 ⬆️

关键发现:

  1. 动作抽象是关键突破:Hierarchical DDQN将吞吐量从0.32提升到0.97,证明了10个高层动作的有效性。

  2. QMIX带来协同增益 :虽然QMIX的吞吐量略低于Hierarchical DDQN的单次最优值(0.9604 vs 0.9710),但干扰失败率降低了53% (0.2056 vs 0.4403),公平性提升10%(0.5260 vs 0.4754)。三种子运行的稳定性也远超单次运行。

  3. 公平性仍有提升空间 :0.526的Jain公平指数为中等水平,BALANCE_UNDERSERVED_IOT高层动作贡献了部分公平性,但仍有优化余地。

  4. 反向散射是"秘密武器":Backscatter-only启发式方法达到0.8522的吞吐量,远超主动传输方法,证明了RF供电反向散射在节省设备能量方面的巨大优势。


五、系统架构总览

复制代码
┌─────────────────────────────────────────────────┐
│                  QMIX 训练循环                    │
│  ┌──────────────┐    ┌──────────────────┐       │
│  │ Replay Buffer│◄───│ 环境交互(采样)   │       │
│  └──────┬───────┘    └──────────────────┘       │
│         │ 批量采样                               │
│  ┌──────▼──────────────────────────────┐        │
│  │         QMixer 混合网络              │        │
│  │  ┌──────────────────────────────┐   │        │
│  │  │  HyperNetwork (全局状态→权重)  │   │        │
│  │  └──────────────────────────────┘   │        │
│  │  混合 → Q_tot = f(Q1, Q2, state)   │        │
│  └────────────────────────────────────┘        │
│         ▲                ▲                      │
│  ┌──────┴──────┐  ┌──────┴──────┐              │
│  │ AgentNet U1 │  │ AgentNet U2 │              │
│  │ (共享权重)   │  │ (共享权重)   │              │
│  └──────┬──────┘  └──────┬──────┘              │
│         │ 高层动作选择     │                     │
│  ┌──────▼─────────────────▼──────┐              │
│  │     层次化动作执行器            │              │
│  │  10种策略 → 864维原始动作      │              │
│  └──────────────────────────────┘              │
└─────────────────────────────────────────────────┘
         │
┌────────▼────────────────────────────────────────┐
│                仿真环境 (Scenario 4)              │
│                                                  │
│   🛸 UAV1 ←→ 🛸 UAV2                            │
│    │  ╲       ╱  │                              │
│    │   ╲     ╱   │                              │
│    ▼    ╲   ╱    ▼                              │
│  📱📱📱  ⚡📱📱  📱📱📱  ← 15 IoT devices       │
│    (Type1) (Type2) (Type3)                      │
│                                                  │
│  📻 RF Source ──→ 🚫 Jammer (追踪最近UAV)       │
│                                                  │
│  信道模型: 路径损耗 + SINR + 干扰器干扰           │
│  传输模型: 主动传输 / 反向散射 / 能量收集        │
│  移动模型: 9向网格移动                           │
└──────────────────────────────────────────────────┘

六、技术亮点总结

6.1 动作空间压缩

从864维原始动作压缩到10个高层策略,这是维数灾难 的优雅解决。执行器虽然基于规则(非学习),但规则设计紧扣领域知识------这正是结合专家知识与深度学习的典范

6.2 反向散射通信的巧妙利用

IoT设备利用环境中已有的RF信号反射传输数据,几乎不消耗自身能量。这不是简单的技术堆砌,而是系统设计的核心------让能量受限的设备"借力打力"。

6.3 干扰器能量模型的真实性

干扰器不是"无限弹药"的神话存在。RSSI爬山充电机制、5→30迟滞区间,模拟了真实对抗中的战术间隙------这让仿真结果更有说服力。

6.4 CTDE范式的成功实践

集中式训练、分布式执行(CTDE)是当今多智能体强化学习的主流范式。QMIX通过单调性约束和超网络,在不牺牲可扩展性的前提下实现了协同决策。


七、局限与展望

⚠️ 当前局限(作者在报告中诚实声明):

  • 仅评估2 UAV / 15 IoT / 1 Jammer场景,更大规模尚未验证

  • 反向散射为系统级抽象,非完整物理层建模

  • 层次化执行器基于规则,非端到端学习

  • 公平性指数仅0.526,仍有提升空间

  • 纯仿真结果,无硬件在环验证
    🔮 未来方向

  • 扩展到更多UAV和设备的场景

  • 用学习型执行器替代规则型执行器

  • 引入更精细的物理层模型

  • 结合迁移学习适配动态变化的场景

  • 在真实硬件平台上进行半实物仿真验证


八、结语

UAV-MaDRL项目展示了一条清晰的多智能体深度强化学习研究路径

Flat DDQN(探索失败)→ Hierarchical DDQN(动作抽象突破)→ QMIX-Hierarchical(协同优化)

三步走下来,不仅吞吐量翻了近3倍,更在抗干扰能力和服务公平性上取得了显著进展。

这背后是方法论的递进智慧:

  1. 先暴露问题(864维动作空间不可学)
  2. 再找到症结(动作空间需要抽象)
  3. 最终完善方案(引入多智能体协同)

对于多无人机通信、边缘计算、智能物联网等领域的从业者来说,这个项目的思路和代码都值得深入研究和借鉴。


📎 项目信息 :UAV-MaDRL (Project SkyShield)

📎 核心方法 :Hierarchical Action Abstraction + QMIX Multi-Agent RL

📎 关键技术 :Double DQN, Hypernetwork, Centralized Training Decentralized Execution (CTDE), RF-Powered Backscatter Communication

📎 代码框架:Python + PyTorch + PettingZoo


相关推荐
名字还没想好☜1 小时前
Next.js 中间件实战:鉴权、重定向与 A/B 分流
开发语言·前端·javascript·中间件·react·next.js
乐观勇敢坚强的老彭1 小时前
C++浮点数使用注意事项
开发语言·c++
wuyk5552 小时前
38.什么是C语言?从语法到工程落地的工程师视角解读
c语言·开发语言·stm32·单片机·mcu·51单片机
库克克2 小时前
【C++ 】内联函数
java·开发语言·c++
zh_xuan2 小时前
java 虚拟线程
java·开发语言·虚拟线程
jason成都2 小时前
RTKLIB Java 移植踩坑复盘:卡尔曼滤波核心逻辑修复与滑坡场景实测验证
java·开发语言
中微极客2 小时前
TensorFlow模型量化实战:从精度到延迟的优化指南
人工智能·python·tensorflow
一次旅行2 小时前
【AI工具】Rust-Based CLI:用 xargs 和并行加速你的 Linux 日常
linux·开发语言·rust
老毛肚2 小时前
juc线程通信
java·开发语言·jvm