張俊瑞,陳立潮,潘理虎,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.