很長(zhǎng),反著你也不看,點(diǎn)個(gè)贊意思下就行 前言:
封閉場(chǎng)所的疏散是應(yīng)急救援中的重要問(wèn)題,它涉及到如何在有限的空間內(nèi)疏散人群,以避免被障礙物阻擋。在本文中,我們將使用Python中的AgentPy庫(kù)來(lái)模擬封閉場(chǎng)所的疏散過(guò)程,并考慮障礙物的影響。在設(shè)計(jì)室內(nèi)空間的逃生方案,大多數(shù)都以國(guó)家標(biāo)準(zhǔn)進(jìn)行相應(yīng)的設(shè)計(jì),設(shè)計(jì)單位和主管單位對(duì)于設(shè)計(jì)的合理性和有效性也難有有效的評(píng)估。特別是很多場(chǎng)所,在建設(shè)完成之后,由于各種活動(dòng)或者運(yùn)營(yíng)所需,還添加了不少的障礙物,這就導(dǎo)致了空間的設(shè)計(jì)不合理,從而導(dǎo)致了對(duì)于應(yīng)急事件發(fā)生的時(shí)候,對(duì)人員的疏散產(chǎn)生影響。例如大部分的商場(chǎng),都會(huì)盡可能的利用各種空間,新設(shè)一些攤位,來(lái)增加空間的利用率,但是這樣做,也會(huì)導(dǎo)致了對(duì)于人員的疏散產(chǎn)生影響。那么今天我們來(lái)模擬一下,不同位置設(shè)置的障礙物,對(duì)于人員的疏散產(chǎn)生的影響有哪些。結(jié)果預(yù)覽老規(guī)矩,先看看結(jié)果: 首先是沒(méi)有障礙物的情況: 然后我們?nèi)藶樘砑右粋€(gè)障礙物: 可以看見(jiàn),這兩個(gè)障礙物的位置,雖然完全沒(méi)有遮擋出口,但是依然對(duì)于人員的疏散產(chǎn)生了影響。以完全疏散的步驟數(shù)來(lái)計(jì)算,這兩個(gè)基本上沒(méi)有遮擋的障礙物,讓疏散率下降了8%左右。然后我們?cè)偬砑右粋€(gè)比較嚴(yán)重的障礙物,這種直接在出口位置添加的障礙物,是商場(chǎng)經(jīng)常干的事情……入門(mén)一個(gè)大廣告牌:這樣的設(shè)計(jì),疏散率相對(duì)于完全沒(méi)有障礙物的情況,下降了49%。接下去,我們?cè)僭O(shè)置一個(gè)更嚴(yán)重的障礙物,直接把這個(gè)障礙物移動(dòng)到了出口位置,僅預(yù)留了兩個(gè)人寬度的空間:可以看見(jiàn),人員的疏散,已經(jīng)受到了嚴(yán)重的影響。疏散效率相對(duì)于最佳狀況,下降了69%。 最后,在上面這個(gè)嚴(yán)重的障礙物的基礎(chǔ)上,在中間開(kāi)一個(gè)小的通道,來(lái)增加人員的疏散空間: 僅開(kāi)這么一個(gè)小口,疏散率比上一個(gè)就提升了接近20%。所以,在設(shè)計(jì)室內(nèi)空間的逃生方案,我們需要考慮到各種障礙物的影響,來(lái)提高人員的疏散效率。下面我們看看具體建模過(guò)程和規(guī)則。模型設(shè)計(jì)我們依然按照ABM的建模步驟來(lái)進(jìn)行模型設(shè)計(jì): agent結(jié)構(gòu) 考慮到疏散的條件,我們agent比較簡(jiǎn)單,就是一個(gè)可以移動(dòng)的個(gè)體,然后這個(gè)個(gè)體會(huì)有一定的思考屬性,遇上障礙物會(huì)選擇隨機(jī)一個(gè)方向調(diào)整,但是不能每次都隨機(jī)選擇,這樣就出現(xiàn)左右橫跳的情況,所以我們需要一個(gè)記憶,來(lái)記錄下上次移動(dòng)的方向,然后根據(jù)這個(gè)方向來(lái)選擇下一個(gè)移動(dòng)的方向,這樣就可以避免左右橫跳的情況。 環(huán)境結(jié)構(gòu) 環(huán)境結(jié)構(gòu)比較簡(jiǎn)單,就是一個(gè)封閉的空間,邊界是墻,設(shè)有一個(gè)出口,然后還可以添加障礙物。 那么環(huán)境的結(jié)構(gòu)就三種:0表示空地,1表示墻或者障礙物,2表示出口。如下所示: 個(gè)體的行為規(guī)則 個(gè)體的行為規(guī)則比較簡(jiǎn)單,就是疏散,從初始位置開(kāi)始,走到出口位置,然后結(jié)束。 那么個(gè)體本身會(huì)有如下規(guī)則: 如果前方是空地,那么就向前移動(dòng); 如果前方有人,而左右沒(méi)人,則隨機(jī)選擇在原地排隊(duì),或者左右移動(dòng)。如果左右都有人,則原地等待。 如果前方是墻或者障礙物,那么就隨機(jī)選擇一個(gè)方向移動(dòng)。并且記錄下這個(gè)方向,一直到遇到可以前進(jìn)為止(即繞過(guò)了障礙物)。 如果到達(dá)頂部,那么就只會(huì)向門(mén)的方向移動(dòng)。 如果到達(dá)出口,那么就結(jié)束。
目前沒(méi)有做尋路的功能,所以只能按照規(guī)則進(jìn)行移動(dòng),如果遇上下面這幾種情況,會(huì)很糾結(jié):
個(gè)體與環(huán)境的交互規(guī)則 個(gè)體與環(huán)境的交互規(guī)則比較簡(jiǎn)單,就是判斷需要前進(jìn)的方向是否有障礙物(或者是墻),如果有障礙物,則按個(gè)體行為規(guī)則的規(guī)則進(jìn)行調(diào)整。 這里與上一個(gè)模型的不同之處在于,這里環(huán)境本身也是有屬性的,即需要判斷環(huán)境的屬性信息。 (這里吐槽一句,agentpy這包的文檔有和沒(méi)有差不多……我基本上是面向窮舉法編程才摸索出各種功能和屬性的設(shè)置) 環(huán)境的行動(dòng)規(guī)則 本模擬中環(huán)境本身沒(méi)有行動(dòng)規(guī)則。也就是整個(gè)環(huán)境是一個(gè)靜態(tài)的。 (后續(xù)有興趣大家可以新增環(huán)境的規(guī)則,例如突然多出障礙物或者障礙物被拆除這種事件)。 個(gè)體與個(gè)體之間的互動(dòng)規(guī)則 本模擬中個(gè)體之間的互動(dòng)規(guī)則就是默認(rèn)大家都按順序排隊(duì),不會(huì)插隊(duì)、爭(zhēng)搶或者發(fā)生踩踏等。對(duì)應(yīng)到建模中,就是按行為規(guī)則,如果你要去的位置上已經(jīng)有人了,那么你就會(huì)等待或者換個(gè)方向。 點(diǎn)贊就是看過(guò)了轉(zhuǎn)發(fā)就是學(xué)會(huì)了收藏就是融會(huì)貫通了
|