【多智能体追踪与规避博弈】【微分博弈】基于可达集(Reachable Set)的攻防微分博弈Matlab仿真(保护 追捕双模式)
✅作者简介:热爱科研的Matlab仿真开发者,擅长数学建模、数据处理、算法改进、程序设计科研仿真。
🍎 往期回顾关注个人主页:完整代码获取 定制创新 论文复现私信
🍊个人信条:做科研,博学之、审问之、慎思之、明辨之、笃行之,是为:博学慎思,明辨笃行。
🔥 内容介绍
大家好,今天给大家带来一套基于水平集(Level Set)、可达集计算的追逃微分博弈 MATLAB 仿真代码。这类属于连续空间的二人零和微分博弈,也是无人机攻防、拦截对抗、保护目标场景里非常经典的理论框架。 和我们之前分享的栅格 CBS 多机器人规划、Dubins AUV 任务分配不一样:前面那些是离散栅格、时间离散的路径规划;而这份代码是连续状态空间、连续动力学的微分博弈,核心是求解 Hamilton-Jacobi-Isaacs(HJI)偏微分方程,计算可达集,区分追捕方(防御者 Defender)和入侵方(攻击者 Attacker)的胜负区域。
代码支持三种博弈模式:仅保护目标、仅追捕攻击者、保护 + 追捕同时生效(both),同时附带几何解析法的获胜区域对比,最后反向求解最优攻防轨迹并可视化。非常适合做微分博弈、智能对抗、飞行器拦截方向的毕设、小论文基线仿真。
很多刚接触微分博弈的同学容易混淆:可达集到底是什么?HJI 方程又解决什么问题?简单来说,可达集回答的问题是:在给定时间内,攻击者能不能成功抵达目标;防御者能不能在攻击者到达之前抓住它。可达集划分出博弈的获胜区与失败区,在这个基础上,才能进一步求解双方的最优控制策略和最优轨迹。
一、项目整体概述
这套代码实现二人追逃微分博弈,包含两个玩家:攻击者 Attacker、防御者 Defender。 攻击者目标:尽可能靠近 / 抵达目标区域; 防御者目标:在攻击者到达目标之前,进入捕获半径,抓住攻击者。
核心仿真模块清单:
-
路径管理:引入 GameDefine、ReachableSet、utils、ToolboxLS(经典 Level Set 工具箱);
-
博弈参数配置模块:双方初始位置、速度、捕获半径、最大反向计算时长、网格分辨率;
-
可达集求解主函数
computeReachableSet:基于 HJI 方程,用水平集方法数值求解可达集; -
几何解析解函数
winning_region:用解析公式绘制理论获胜区域,用来和数值可达集做对照验证; -
最优轨迹反向求解函数
OptTrajCal:从可达集结果反向回溯,得到攻防双方最优控制下的状态轨迹; -
绘图函数
plotOptTraj:可视化可达集等值面、最优攻防轨迹。
关键参数说明:
-
两组攻防对:支持多组攻防,示例里两组攻击者、两组防御者;
-
va、vd:攻击者、防御者的运动速度,示例中两者速度相等;
-
captureRadius:捕获半径,防御者和攻击者距离小于该值即判定捕获成功;
-
timeMax:反向求解的时间上限,HJI 可达集一般是反向时间求解;
-
Nx:状态空间网格分辨率,Nx 越大精度越高,计算越慢;
-
gameParam.type 博弈模式:
protect:防御者只负责保护目标,阻止攻击者靠近目标,不强制抓捕;
chase:防御者目标是追上、捕获攻击者;
both:保护目标 + 追捕攻击者约束同时生效,是最复杂的复合博弈场景。
✅ 已实现功能
-
基于 Level Set 工具箱数值求解 HJI 偏微分方程,计算博弈可达集;
-
支持三种博弈模式切换,保护、追捕、复合场景;
-
提供几何解析获胜区域,和数值可达集结果对照,验证数值求解正确性;
-
反向回溯计算双方最优状态轨迹;
-
完整可视化:可达集等值线、解析获胜边界、最优攻防轨迹;
-
支持圆形障碍物 + 圆形目标场景(
CircleObsAndTarget)。
⚠️ 方案固有局限(论文创新点直接参考) 水平集 + HJI 微分博弈有非常强的理论优势,但也存在众所周知的短板:
-
维度灾难:这套代码是二维状态,计算尚可;一旦状态维度提升(比如增加航向、加速度),网格数量爆炸,计算成本急剧上升;
-
计算耗时:网格分辨率 Nx 调高之后,偏微分方程演化很慢,很难在线实时求解;
-
模型是简单单积分器动力学:攻击者、防御者是匀速质点,没有转弯约束、加速度限制;
-
是二人零和博弈,没有拓展到多攻击者、多防御者的多人微分博弈;
-
环境是静态障碍物,不支持动态障碍、目标移动;
-
解析解
winning_region只适配特定几何场景,通用性差,复杂形状目标 / 障碍无法写出解析表达式。
这些不是代码 bug,是 HJI 可达集方法本身的特点,也是后续改进的核心方向。
二、代码结构逐段解读
1. 工具箱路径导入
addpath(genpath('GameDefine'));addpath(genpath('ReachableSet'));addpath(genpath('utils'));addpath(genpath('ToolboxLS'));
ToolboxLS 是学术界非常经典的水平集工具箱,大量 HJI 可达集相关论文都在用它做数值演化,它封装了 WENO、Lax-Friedrichs 等差分格式,用来求解 HJI 这类哈密顿雅可比方程,不用自己手写复杂差分。
-
GameDefine:博弈场景定义文件,里面写不同场景(圆形目标、非凸区域、障碍物场景)的代价函数、目标集、动力学;
-
ReachableSet:可达集求解核心;
-
utils:通用绘图、数值辅助函数。
2. 博弈参数初始化
gameParam.xa_init{1} = [-0.4 0.2];gameParam.xd_init{1} = [0.11 0.];gameParam.va = 1;gameParam.vd = 1;gameParam.captureRadius = 0.05;gameParam.timeMax = 1;gameParam.Nx = 51;gameParam.type = 'both';
这里设置两组攻防初始位置,速度相等,捕获半径 0.05,反向计算时长 1 秒,网格 51×51。
重点:HJI 可达集常规是反向时间演化。我们从终止条件(捕获、攻击者抵达目标)往回推,算出所有 “在规定时间内可以达成胜负条件” 的初始状态集合,这个集合就是可达集。
三种模式的区别:
protect:终止条件是攻击者进入目标区域;防御者的控制目标是阻止这件事;
chase:终止条件是防御者和攻击者距离小于捕获半径;
both:同时包含两个终止条件,只要满足其一,博弈结束,是复合约束。
3. 可达集求解与解析解对照
[data, g, dataset, figStruct] = computeReachableSet(gameParam, 'low', 'CircleObsAndTarget');hold on;winning_region(0, 0.1);
computeReachableSet 是顶层求解函数: 第二个参数low代表精度档位,low/medium/high,对应不同网格精度; 第三个参数CircleObsAndTarget代表场景:圆形目标 + 圆形障碍物。 输出:
-
g:网格结构体;
-
dataset:不同时刻下水平集函数的值;
-
figStruct:绘图相关结构体,包含时间序列 tau。
winning_region 是解析解函数,用几何方法直接计算理论获胜边界,画出来和数值可达集叠在一起对比。这是论文里非常经典的验证手段:简单场景下解析解存在,用来证明你的 HJI 数值求解是可靠的。
4. 最优轨迹回溯
dataset_f = flip(dataset, 5);[traj, traj_tau] = OptTrajCal(g, dataset_f, figStruct.tau, gameParam);plotOptTraj(figStruct, traj, traj_tau);
这里非常关键:dataset 是反向时间演化出来的结果,所以先flip翻转时间维度,把时序转正,再调用OptTrajCal反向回溯最优轨迹。 可达集只是 “状态集合”,它只告诉你哪些初始状态能赢、哪些会输;轨迹回溯才是求出从初始状态出发,双方每一步该怎么选择控制量(运动方向),也就是最优策略对应的状态序列。plotOptTraj 把可达集等值线、攻击者轨迹、防御者轨迹一起画出来,可以直观看到博弈全过程:攻击者如何尝试冲向目标,防御者如何拦截。
5. winning_region 解析函数简要说明
这个函数是这个仿真里的对照项。在特定匀速追逃、圆形目标场景下,可以推导出获胜区域的几何解析表达式。 循环遍历角度,计算解析获胜边界上的点,再做旋转变换,同时绘制上下对称的两条曲线。 它的局限前面也提到了:只有非常简单的博弈场景才有解析解;只要加入不规则障碍物、不等速、动力学约束,解析解就不存在,只能依赖 HJI 数值可达集。
三、核心原理:微分博弈、HJI 方程与可达集
1. 二人零和微分博弈
这个是典型的追击 - 保护微分博弈,属于零和博弈:攻击者收益 = - 防御者收益。 攻击者选择控制输入,最大化抵达目标的机会;防御者选择控制输入,最大化捕获攻击者的机会,二者对抗。 动力学是简单一阶积分器:状态的导数等于速度控制方向,速度幅值固定。
2. HJI 方程和可达集
HJI(Hamilton-Jacobi-Isaacs)方程是这类博弈的核心偏微分方程。 对于最优控制是 HJ 方程;对于双方对抗的微分博弈,就变成 HJI 方程。 我们求解的不是单条轨迹,而是一整个状态集合:可达集。
-
攻击者可达集:攻击者可以在规定时间内成功到达目标的所有初始状态;
-
防御者捕获集:防御者可以在攻击者到达目标之前完成捕获的所有初始状态。
水平集(Level Set)方法的思路:用一个隐函数表示集合,函数小于 0 的区域就是可达集内部,大于 0 是外部。通过数值演化 HJI 方程,更新这个隐函数,得到不同时刻的可达集。
一个很容易踩坑的知识点: 普通正向路径规划是 “给定起点,找一条终点轨迹”; HJI 可达集是 “给定终止条件,找出所有能满足终止条件的起点”,是集合层面的求解,不是单轨迹。 所以它适合事前做态势评估、区域划分,判断初始态势谁占优。
3. 可达集 vs 最优轨迹
很多初学者会混淆二者:
-
先求解 HJI,得到可达集(胜负区域划分);
-
再基于已经算好的水平集函数梯度,沿着梯度方向回溯,得到双方最优控制和最优轨迹; 可达集是基础,轨迹是可达集的衍生结果。
四、仿真结果解读
运行代码后,图上会出现几层信息:
-
水平集等值线:数值求解得到的可达集边界;
-
红色 / 黑色解析曲线:几何方法算出的理论获胜边界,用来对照;
-
两条轨迹:攻击者轨迹、防御者轨迹;
-
目标区域、障碍物圆形轮廓。
对照实验可以这样设计:
-
切换
protect/chase/both,观察可达集形状、最优拦截策略变化; -
修改 va、vd,让攻击者速度大于防御者,或者反过来,观察胜负区域变化;
-
调整 captureRadius,捕获半径变大,防御者更容易拦截;
-
调高 Nx,对比低分辨率和高分辨率下可达集边界精度;
-
修改 timeMax,给博弈更长时间,观察可达集扩张。
五、论文创新点改进方向(直接可用)
-
动力学升级:把简单积分器改成 Dubins 车辆、固定翼无人机动力学,增加最小转弯半径约束,更贴近飞行器攻防;
-
多智能体微分博弈:扩展成多防御者、多攻击者,多人微分博弈;
-
不确定性拓展:加入速度扰动、测量噪声,鲁棒可达集;
-
混合博弈框架:上层任务分配(SOM / 匈牙利)+ 下层 HJI 微分博弈;
-
降维加速:传统 HJI 网格维度灾难,可以结合深度学习、神经网络隐式表示可达集,提升在线计算速度;
-
动态目标、动态障碍物场景,构建时变可达集;
-
融合模型预测控制 MPC:用离线可达集作为安全约束,在线 MPC 生成控制指令;
-
指标量化:计算获胜区域面积、拦截成功率、最小拦截时间,形成对比曲线。
六、写在最后
微分博弈 + 可达集是无人机攻防、拦截对抗、主动保护领域非常硬核的理论方向,和我们之前分享的 MAPF、SOM 任务分配属于完全不同的范式。 MAPF 是离散时间、栅格、多机器人避撞;而 HJI 可达集是连续状态、连续时间、对抗博弈,它回答的是态势优劣问题:这个初始局面,防御者能不能拦得住?
这套代码的价值在于:它把学术界成熟的 ToolboxLS 水平集工具封装成了可直接运行的追逃博弈仿真,并且附带解析解对照验证、最优轨迹回溯,是非常标准的基线。如果你要做微分博弈、无人机拦截、目标保护方向的论文,这个框架可以直接作为对比基线。
⛳️ 运行结果

🔗 参考文献
🍅更多免费数学建模和仿真教程关注领取
🏆团队擅长辅导定制多种科研领域MATLAB仿真,助力科研梦:
#各类智能优化算法改进及应用
#生产调度 #经济调度 #装配线调度 #充电优化 #车间调度 #发车优化 #水库调度 #三维装箱 #物流选址 #货位优化 #公交排班优化 #充电桩布局优化 #车间布局优化 #集装箱船配载优化 #水泵组合优化 #解医疗资源分配优化 #设施布局优化 #可视域基站和无人机选址优化 #背包问题 #风电场布局 #时隙分配优化 #最佳分布式发电单元分配 #多阶段管道维修 #工厂-中心-需求点三级选址问题 #应急生活物质配送中心选址 #基站选址 #道路灯柱布置 #枢纽节点部署 #输电线路台风监测装置 #集装箱调度 #机组优化 #投资优化组合 #云服务器组合优化 #天线线性阵列分布优化 #CVRP问题 #VRPPD问题 #多中心VRP问题 #多层网络的VRP问题 #多中心多车型的VRP问题 # 动态VRP问题 #双层车辆路径规划(2E-VRP) #充电车辆路径规划(EVRP) #油电混合车辆路径规划 #混合流水车间问题 #订单拆分调度问题 #公交车的调度排班优化问题 #航班摆渡车辆调度问题 #选址路径规划问题 #港口调度 #港口岸桥调度 #停机位分配 #机场航班调度 #泄漏源定位 #冷链 #时间窗 #多车场等 #选址优化 #港口岸桥调度优化 #交通阻抗 #重分配 #停机位分配 #机场航班调度 #通信上传下载分配优化
#机器学习和深度学习时序 #回归 #分类 #聚类和降维
#bp时序 #回归预测和分类
#ENS声神经网络时序 #回归预测和分类
#SVM#CNN-SVM#LSSVM#RVM支持向量机系列时序
#CNN#TCN#GCN卷积神经网络系列时序
#ELM#KELM#RELM#DELM极限学习机系列时序
#GRU#Bi-GRU#CNN-GRU#CNN-BiGRU门控神经网络时序
#ELMAN递归神经网络时序
#LSTM#BiLSTM#CNN-LSTM#CNN-BiLSTM/长短记忆神经网络系列时序
#RBF径向基神经网络时序
#DBN深度置信网络时序
#FNN模糊神经网络时序
#RF随机森林时序 #回归预测和分类
#BLS宽度学习时序 #回归预测和分类
#PNN脉冲神经网络分类
#模糊小波神经网络预测和分类
#XGBOOST集成学习时序 #回归预测预测和分类
#Transform各类组合时序 #回归预测预测和分类
#风电预测 #光伏预测 #电池寿命预测 #辐射源识别 #交通流预测 #负荷预测 #股价预测 #PM2.5浓度预测 #电池健康状态预测 #用电量预测 #水体光学参数反演 #NLOS信号识别 #地铁停车精准预测 #变压器故障诊断
#图像处理方面
#图像识别 #图像分割 #图像检测 #图像隐藏 #图像配准 #图像拼接 #图像融合 #图像增强 #图像压缩感知
#路径规划方面
#旅行商问题(TSP) #车辆路径问题(VRP #MVRP #CVRP #VRPTW等) #无人机三维路径规划 #无人机协同 #无人机编队 #机器人路径规划 #栅格地图路径规划 #多式联运运输问题 #充电车辆路径规划(EVRP) #双层车辆路径规划(2E-VRP) #油电混合车辆路径规划 #船舶航迹规划 #全路径规划规划 # 仓储巡逻 #公交车时间调度 #水库调度优化 #多式联运优化
#无人机应用方面
#无人机路径规划 #无人机控制 #无人机编队 #无人机协同 #无人机任务分配 #无人机安全通信轨迹在线优化 #车辆协同无人机路径规划 #
#通信方面
#传感器部署优化 #通信协议优化 #路由优化 #目标定位优化 #Dv-Hop定位优化 #Leach协议优化 #WSN覆盖优化 #组播优化 #RSSI定位优化 #水声通信 #通信上传下载分配
#信号处理方面
#信号识别 #信号加密 #信号去噪 #信号增强 #雷达信号处理 #信号水印嵌入提取 #肌电信号 #脑电信号 #信号配时优化 #心电信号 #DOA估计 #编码译码 #变分模态分解 #管道泄漏 #滤波器 #数字信号处理+传输+分析+去噪 #数字信号调制 #误码率 #信号估计 #DTMF #信号检测
#电力系统方面
#微电网优化 #无功优化 #配电网重构 #储能配置 #有序充电 #MPPT优化 #家庭用电 #电/冷/热负荷预测 #电力设备故障诊断 #电池管理系统(BMS)SOC/SOH估算(粒子滤波/卡尔曼滤波) #多目标优化在电力系统调度中的应用 #光伏MPPT控制算法改进(扰动观察法/电导增量法) #电动汽车充放电优化 #微电网日前日内优化 #储能优化 #家庭用电优化 #供应链优化\智能电网分布式能源经济优化调度#虚拟电厂#能源消纳#风光出力#控制策略#多目标优化#博弈能源调度#鲁棒优化
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)