1 行为树概念与建模
1.1 行为树
1.2 行为树建模
2 空中作战决策仿真的行为树建模
2.1 空中作战决策仿真过程分析
2.2 空中作战的模型外部自主决策规则
2.3 构建空中决策仿真行为树
3.1 Lua脚本语言介绍
3.2 作战仿真推演系统OCEAN调度行为树流程设计
3.3 基于Lua脚本语言的函数实现
伪代码1:创建行为树节点函数
Function创建行为树节点(动作,全局唯一标识,键)
{
创建实例instance表{};
继承行为树类BT的属性和方法;
创建实例instance的子节点表{};
获取全局唯一标识;
获取实例对应的键;
获取节点返回状态;
return实例instance;
}
伪代码2:顺序节点函数
Function顺序节点( )
{
for 当前节点的子节点表do
if (子节点返回状态==fail) then
return 当前节点返回状态为fail
end
end
return 当前节点返回状态为success
}
在顺序节点的子节点中遍历子节点的结果,当且仅当顺序节点的所有子节点均返回为“真”时,该节点才返回为“真”。
伪代码3:获取战斗机库存函数
Function 获取可用战斗机库存 (当前对阵方键)
{
获取可用战斗机全局唯一标识GetGUID ( );
return 可用战斗机全局唯一标识;
}
其中GetGUID()函数的伪代码如下所示。
伪代码4:GetGUID ( )函数
Function 获取全局唯一标识 (键)
{
获取键值对应的实例;
if 实例==nil then
实例为空;
end
return 实例
}
伪代码5:空中打击任务函数
Function 创建空中打击任务 ( )
{
获取当前对阵方;
获取当前已有的空中打击任务列表;
获取当前位置参考点坐标;
获取当前可用库存;
获取当前目标;
if 当前任务数 > 0 or可用库存数 == 0 or 当前目标数 == 0 then
return false;
end
获取目标区域;
设置参考点;
创建打击任务;
设置任务规则;
分配可用库存;
增加全局唯一标识;
设置时间戳;
return true;
end
}
中国指挥与控制学会会刊 