张俊瑞,陈立潮,潘理虎,3
1(晋中学院 信息技术与工程学院,晋中 030619)
2(太原科技大学 计算机科学与技术学院,太原 030024)
3(中国科学院 地理科学与资源研究所,北京 100101)
煤炭作为主要能源在我国的能源消费结构中占一次性能源消费的70%,比世界平均水平高40%.目前,利用Agent技术对煤矿安全问题进行研究已经较为成熟.文献[1]基于Multi-agent技术实现了煤矿虚拟环境的交互式控制及井下安全行为仿真,文献[2]构建了基于多智能体的井下虚拟人群应急撤离仿真模型,对井下事故应急撤离中“领导者-跟随者”的行为进行仿真,二者都侧重于对井下矿工的行为进行仿真,忽略了煤矿环境的动态变化,没有体现出煤矿环境的动态变化对矿工逃生的影响,文献[3]和文献[4]利用虚拟现实技术给矿工提供了一个逃生培训平台,文献[5]利用虚拟现实技术对矿工的逃生路线进行研究,随着井下采煤工作的进行,井下情况一直在动态变化,而VR技术构建的虚拟矿井无法表示这种动态变化,因此也有它的不足之处.
针对以上问题,本文提出利用基于Agent的建模仿真 (Agent-based Modeling and Simulation,ABMS)方法对矿工的井下避灾情况进行研究.模型中,将井下巷道地图数字化处理后生成的栅格地图导入模型中作为Agent的空间活动环境,通过对井下矿工面对灾害时的行为模式进行分析,提取出Agent的行为决策,并通过公式对其进行量化分析,最后在RePast仿真平台上对模型进行仿真.
煤矿井下避灾模型由三部分组成,分别为系统初始化模块、运行模块和数据统计模块.系统初始化模块完成三个工作: (1)井下矿工的空间活动环境由巷道地图经过数字化处理后生成的栅格地图来实现,在模型开始运行时需将此栅格地图导入模型中; (2)模型运行时初始化参数的配置,主要包括井下矿工以及灾害的相关参数设置; (3)对井下矿工的属性进行具体设置.
图1 模型框架示意图
运行模块是模型中最重要的模块之一,控制整个模型的运行.运行模块主要完成两个工作: (1)产生模型运行过程中的时钟tick (RePast仿真软件中的时间单位); (2)控制模型中的结果显示界面以tick为单位进行更新.由于Agent具有智能性、反应性和自治性等特点,因此在运行模块中巷道环境和Agent之间的相互影响都会对模型运行的结果产生影响,使模型运行具有一定的随机性.
数据统计模块也是模型中很重要的一个模块,主要完成Agent避灾成功与否的数量的统计和火灾蔓延情况的统计.每个tick进行一次数据统计,并将统计结果在运行界面上进行显示和实时更新.
根据模型的统计数据可以对模型的运行结果进行定向和定量分析,进而利用分析结果对模型的运行规则和Agent的设置等进行调整,使模型能够更精确、更贴近真实的井下避灾模拟.
图2为模型的空间对象,即Agent的空间活动环境,其中突出部分为电车房、配电所、绞车房、水泵房和停车场等井下硐室,其余部分为巷道[6].图3为巷道中的矿工.Agent的空间活动环境是一个栅格化地图,Agent每次的位移量以一个栅格为单位进行计量.
图2 Agent的空间活动环境
图3 巷道中的矿工
Agent具有的自适应性、自组织性和自学习性等特点,使得可以用它来表示井下矿工.Agent的属性主要有: 姓名、工号、出生年月、学历、职务、婚姻状况、所属队别(如综掘一队、二队,综采队,维修一队、二队、五队等)、行走速度等.
为了便于研究,将模型中的Agent按照年龄大小和工龄的长短分为4类:
(1) 刚参加工作,年龄较小且经验欠缺的Agent.
(2) 参加工作时间较长,年龄较大且经验丰富的Agent.
(3) 年龄较小但是工作时间较长,经验较丰富的Agent(如家庭贫困,很早就出外打工).
(4) 年龄较大但是工作时间较短,经验不丰富的Agent(如中年下岗、转岗或二次就业等原因选择出外打工).
模型中的4种Agent各占一定的比例,比例值以随机数Math.random()进行设置,利用自定义的addAgent()方法将Agent按比例值添加到栅格地图中.
通过分析井下矿工在灾害发生时的行为模式,可以总结出矿工在面对灾害发生时的本能行为有“返回”、“躲避”、“向光”和“追随”[6,7]等 4 种.井下灾害发生时,矿工会按照预定的避灾路线向出口跑去,当通向出口的所有避灾路线都无法通行时,矿工就会选择离自己较近且较安全的避灾硐室躲避,发出求救信号的同时等待救援人员的到来[7,8].
为了介绍清楚矿工Agent在煤矿巷道的空间活动环境中移动时的距离和方向,本文引入了元胞自动机中的邻域概念.
在二维元胞自动机中,元胞自动机网格的邻域包括: Von Neumann(冯·诺依曼)邻域、Moore(摩尔)邻域和扩展的Moore邻域三种,网格形式有三角形、四方形和六角形三种[6],本文以四方形网格[9]为例加以介绍.
冯·诺依曼邻域为十字形邻域,Agent位于网格中心,上、下、左、右4个相邻的网格为Agent的邻域,如图4(a)所示.
摩尔邻域为米字型邻域,Agent位于网格中心,上、下、左、右、左上、右上、左下、右下8个相邻网格为Agent的邻域,如图4(b)所示.
扩展的摩尔邻域: 个体Agent的邻域半径扩展为2个或2个以上的网格,如图4(c)所示.
图4 冯·诺依曼邻域、摩尔邻域、扩展的摩尔邻域
为了方便研究,模型中Agent的位置选择和移动方向按照摩尔邻域来确定,如图5所示.当Agent选择避灾方向时,将会选择其摩尔邻域的8个相邻网格中的任何一个进行移动.
图5 Agent的移动方向
按照我国成年男性的身高[10]进行估算,可将一个成年男性的平均跨步长度确定为0.6–0.8 m左右,如表1所示.
表1 中国成年人人体尺寸 (男性)[11]
由表1可知,我国成年男性的平均肩宽不超过0.5 m,胸厚不超过 0.3 m.因此可将栅格地图的网格大小设定为 0.5 m×0.5 m.每个网格有两种状态: “空”或“不空”.在任一时刻,如果当前网格上没有 Agent,认为此时网格状态为“空”,否则为“不空”,并且规定任一时刻一个Agent只能占据一个网格且占据该网格的全部空间.
因此Agent在发生事故时的行为决策可在上述基础上归纳如下:
(1) IF(避灾路线通畅)
THEN (按照预定的避灾路线避灾)
ELSE (重新选择避灾路线)
(2) IF(当前避灾路线拥挤)
THEN(选择不拥挤的巷道通行)
(3) IF(避灾路线上人数较多)
THEN(平均跨步相对较小)
ELSE(平均跨步较大)
(4) IF(避灾队伍中有带班组长或是经验丰富的Agent)
THEN(影响其它Agent的决策)
Agent避灾时的位置变化情况可用公式(1)表示为:
式中表示 Agent在t1时刻的位置,单位:是Agent在t0时刻的位置,单位: m;d表示一个 tick 内行走的距离,单位: m;θ1是环境影响因子;θ2是心理因素影响因子;θ3是巷道选择因子.
θ1,θ2,θ3为随机数,利用 Math.Random()方法生成,取值范围为 (0,1).
当预定的避灾路线无法通行时,就需确定当前的所有巷道中哪条可以通行,当井下矿工佩戴上自救器时,可在有烟流和一定温度的巷道中通行.《矿山救护规程》中关于巷道温度与可通行时间的规定如表2.
表2 巷道温度与可通行时间
根据此规定,可以拟合出在高温巷道中允许通行的时间和巷道温度之间的关系[12]是:
式中,m表示高温巷道中允许通行的最长时间,单位:min;θ表示巷道倾斜系数(当巷道无斜度时为1,向上倾斜时为0.2,向下倾斜时为0.4);t表示井下巷道中的温度,单位: ℃.
当穿越某条巷道所需的时间小于上式计算出的时间时,认为当前巷道可以通行.
为了确定某条避灾路线是否拥挤,定义了稠密度因子α.当以 Agent为中心,其 Moore 邻域内 Agent的数量n≥8时(Agent的Moore邻域内网格数量为8),认为此时避灾路线上人员密度较大,稠密度因子α≥1,避灾路线拥挤; 否则认为人员密度较小,稠密度因子0<α<1,避灾路线不拥挤.
实际上,Agent避灾成功与否并不能完全以公式进行度量,因为Agent是具有智能性的个体,所以Agent的行为决策还要受到多种因素的影响,要根据Agent当时所处的环境进行具体分析.
模型中参数的设置情况如表3所示.
表3 模型中的参数设置
模型运行时会产生很多的数据,数据统计以tick为单位,每个tick统计一次,如Agent避灾的数量、死亡的数量、逃到避灾硐室和出口的数量、火灾蔓延的情况等.该模型最大的一个特点就是以界面的方式显示模型运行时产生的数据,并对这些数据进行统计分析,从而利用分析结果对模型的运行规则和矿工Agent的设置进行调整,使模型更加优化,更加贴近井下避灾的真实情况.
图6是模型的运行结果界面,界面最上方是RePast仿真平台工具栏,作用为控制模型的运行,如模型的启动、暂停、关闭和按步运行等功能都在RePast工具栏上实现控制.
Coal Mine Display窗口是仿真模型的显示界面,显示各个tick火灾的蔓延情况和Agent的避灾情况,它是动态更新的,每个tick更新一次,因此每个tick所显示的内容都在发生变化.随着火灾的蔓延,巷道将逐渐被火所侵占,如果Agent逃到出口的巷道没有被火灾封堵则可以逃到出口处,否则选择逃到就近的的避灾硐室躲避.
图6 模型的仿真界面
Amount Of Agent In Space 窗口用于统计模型中Agent的数量,由“●”、“×”、“□”和“▲”四种符号所绘制的四条曲线用来表示模型中活着的、死亡的、逃到出口和逃到避灾硐室的Agent的数量.由图6可以看出随着火灾的蔓延,避灾的Agent数量很多,即大量Agent在火灾蔓延到自己所处的工作面时可以成功逃到出口的位置(如升降梯)或是相对安全且距火灾发生位置较远的避灾硐室.随着模型的运行,逃到出口和避灾硐室的Agent的数量逐渐增加,没有死亡的Agent.Agent逃到出口以后就不在模型中了,因此模型中统计的活着的 Agent数量为: 100-死亡的 Agent -逃到出口的Agent.
在仿真模型运行过程中会产生大量的统计数据,fireInSpace窗口输出火灾蔓延情况的统计数据.模型运行1个时间步后火灾发生,随着模型运行时间的增加,火灾蔓延的区域逐渐增大,将每个时间点火灾的蔓延情况在fireInSpace窗口上绘制出来并连成一条曲线就可以看到火灾的蔓延情况; RePast Output窗口显示模型的输出信息,Coal Mine Model Setting 窗口用于模型中参数的设置及显示.
本文利用RePast仿真平台对煤矿井下避灾模型进行仿真,详细介绍了模型中Agent的类型、行为决策分析以及参数设置情况,最后对模型的仿真结果进行了分析.仿真结果表明,该模型能较好地实现煤矿井下矿工的避灾情况仿真.但是煤矿井下是一个动态变化的环境,不可控因素太多,Agent的状态也随时在发生改变,因此如何更加科学、更加细化地对Agent的行为决策进行分析与量化是下一步要着重研究的问题.
参考文献
1蔡林沁,罗志勇,王颋,等.基于 Multi-agent的煤矿虚拟环境体系建模.煤炭学报,2010,35(1): 61–65.
2杨卓.基于多智能体的井下应急撤离虚拟人群仿真研究[硕士学位论文].重庆: 重庆邮电大学,2015.
3郭东.基于Virtools的煤矿井下逃生系统的研究[硕士学位论文].太原: 太原理工大学,2016.
4潘长松,杨俊燕.基于Unity3D的煤矿井下逃生训练系统设计与实现.矿业安全与环保,2014,41(4): 32–35,49.
5齐二伟.基于虚拟现实的矿井火灾逃生路径模拟系统的研究[硕士学位论文].焦作: 河南理工大学,2011.
6王丽.煤矿井下避灾硐室研究[硕士学位论文].西安: 西安科技大学,2009.
7张俊瑞,陈立潮,潘理虎,等.基于多 Agent的煤矿井下矿工逃生模型研究.计算机工程与设计,2012,33(12): 4657–4662.[doi: 10.3969/j.issn.1000-7024.2012.12.047]
8张俊瑞.基于Multi-Agent的煤矿井下矿工井下逃生模型研究[硕士学位论文].太原: 太原科技大学,2012.
9岳昊.基于元胞自动机的行人流仿真模型研究[博士学位论文].北京: 北京交通大学,2008.
10中华人民共和国国务院新闻办公室.中国居民营养与慢性病状况报告(2015年).北京: 中华人民共和国国务院新闻办公室,2015.
11中国标准化与信息分类编码研究所.GB/T 10000-1988E中国成年人人体尺寸.北京: 中国标准化与信息分类编码研究所,1988.
12王淇.煤矿井下避难硐室系统研究[硕士学位论文].武汉:武汉科技大学,2013.