7、 基于规则和网络结合的智能模型构建技术
传统的规则智能体往往采用行为树或者状态机的方式进行决策,尽管在某些场景下能取得一定的效果,但是智能体对决策空间的探索度低,智能性不高;而纯粹的强化学习智能体尽管有很强的探索性以及探索最优解的能力,但却通常会遇到学习困难、效果不稳定、动作建模复杂等问题。
为了能更好的应用于复杂的J事场景,本项目采用了知识规则融合模型智能体决策体系来对博弈智能体进行构建。
7.1 智能体构建框架
1、分层,高层智能体+有限状态机
在军事场景下,决策任务往往受到条令的限制,并且不同任务之间可能存在着先后顺序和依赖纠缠。为了更好地处理这种情况,我们将智能体的决策流程进行了分层设计。
在上层,有一个智能体负责粗粒度的决策。它的主要职责是判定任务类型和目标,并根据整体战略制定高级指令和计划,为下层智能体分配任务和优先级。
在下层,基于有限状态机,对任务进行了具体实现。有限状态机允许智能体根据当前的状态和环境条件,灵活地做出不同的决策,以适应任务需求。
这种分层设计使得决策系统更加有条理和灵活。上层智能体负责整体规划和任务分配,从宏观角度指导军事行动。而下层智能体通过有限状态机实现局部的决策,使得它们能够根据不同情况作出适时的反应。
由于整个战场决策分为预设任务与实时决策任务,同时为了在保证对抗效果的前提下最大化探索效率。最后实现的智能体结构如下

7.2 规则任务框架
前期规划
- 初始进攻策略生成
- 粗粒度目标分配
- 静态任务规划
实时决策
兵力调度
任务执行
即时分析
细粒度单位调度
细粒度目标分配
动态任务生成
为了更好地对场景任务进行抽象
通过分析智能体决策,将模型决策信息拆分为主语、谓语、宾语和其他信息
基础规则构建-规则配置:
一次性任务(任务可以对应为一条执行命令,执行完之后任务结束)
1 | { |
持续性任务
一次性任务可以通过配置执行时间、重复次数转化为持续性任务
如:
1 | { |
另一类持续性任务则对应需要多条执行命令来协同执行的任务
如空对舰打击,包含飞机起飞、移动、攻击、返航,需要按照执行阶段,对单位下发不同的指令,如
1 | { |
此外,在任务设计过程中,根据zz指令,还抽象出一些其他参数,用来实现特定的任务执行逻辑优化任务执行逻辑
1 | "activation_time": "2022-02-12", # 任务激活时间 |
任务有限状态机概览

在复杂的对空拦截任务中,不仅需要处理基本的飞机编队选择、起飞、移动、攻击和返航等基本动作,还需要考虑许多偶发性事件,比如遇到敌方飞机、油量不足或目标消失等突发情况。为了在实际执行中保证任务的有效执行效果,并能够即时做出动态决策,引入了固定任务和触发式任务的设计。
在更新有限状态机的过程中,将任务执行流程细化,并为不同的任务状态设定相应的转换条件。这样,能够更好地控制飞机在不同情况下的行为,以适应任务的复杂性和多变性。
为了保证任务的执行效果,设计了固定任务,这些任务是在任务开始前就确定的,包括基本的飞行行动和攻击计划。这些固定任务保证了飞机在任务执行过程中的基本行为和目标导向。
同时,为了应对偶发性事件,引入了触发式任务。当飞机遇到敌方飞机、油量不足或目标消失等特定情况时,相应的触发式任务会被激活。这样,能够即时做出针对性的动态决策,并根据实时信息调整飞机的行动策略。
通过这种细化的任务规划和触发式任务的引入,决策系统在面对复杂多变的对空拦截任务时,能够保证任务执行的效果,并具备适应和应对不同突发情况的能力。这种灵活性和实时性的设计为任务的成功执行提供了有力的支持,也使得智能体能够更好地应对多样化的战场挑战。
任务交互逻辑

7.3 多智能体分目标协作
在决策过程中,每次与环境交互都会触发一次数据打包与解析的过程。为了加快训练,通常需要采用较高的决策间隔来调用环境。
在训练过程中发现,对于不同任务类型,决策间隔的敏感度存在明显差异。具体而言,对于防空任务,决策窗口期通常<30s,决策对决策间隔极其敏感,过高的决策间隔会导致模型表现大幅下降。而在舰对舰打击任务中,决策对决策间隔的容忍度较高,允许较大的时间间隔。
然而,在单一模型的场景下,当决策间隔设置过低,例如每5秒一次,舰对舰打击任务中超过95%的action都将会由于武器耗尽/冷却而被视为无效命令,这给模型训练带来了极大困难。
为了克服这一问题,我们将原本一个智能体的决策流程拆分成多个智能体。每个智能体都有独立的决策间隔设置,并可以与环境进行交互。通过这种多智能体决策的方法,有效缓解决策频率对训练过程的不利影响。

训练效果
在对海场景想定(参考duitai_asuw2.1构建),模型决策间隔2分钟,每局产生200条数据,batch_size=4096场景下,单次训练10w局周期3天。硬件条件:35核cpu core,1 gpu,20采样节点

任务规划
任务-场景对应
| 命令类型 | 编队防空 | 海上防空 | 对海打击 | 模版-单位数量 | 模版-武器数量 | 初始航线规划 |
|---|---|---|---|---|---|---|
| 空中打击-空对空 | √ | 2 | / | 避开威胁度最大区域 | ||
| 空中打击-空对海 | √ | 2 | 避开威胁度最大区域 | |||
| 空中巡逻-空对空 | √ | 2 | 前往威胁度最大区域 | |||
| 直接攻击-地对空(导弹)* | √ | 2 | ||||
| 直接攻击-地对空(飞机)* | √ | 2 | ||||
| 直接攻击-海对空(导弹) | √ | √ | 2 | |||
| 直接攻击-海对空(飞机) | √ | √ | 2 | |||
| 直接攻击-海对海 | √ | 4/8根据目标类型生成 | ||||
| 待命-空动作 | √ | √ | √ |
编队场景将地面单位、海上单位视为同种类型单位进行联合调度