公務(wù)員期刊網(wǎng) 論文中心 正文

公共場所傳染性疾病擴(kuò)散模型設(shè)計(jì)探析

前言:想要寫出一篇引人入勝的文章?我們特意為您整理了公共場所傳染性疾病擴(kuò)散模型設(shè)計(jì)探析范文,希望能給你帶來靈感和參考,敬請閱讀。

公共場所傳染性疾病擴(kuò)散模型設(shè)計(jì)探析

摘要:傳染病會(huì)對人類社會(huì)產(chǎn)生重大影響,危害著人類健康。歷史上出現(xiàn)過各種大大小小的傳染疾病的案例,多次給人們生活和國家?guī)韲?yán)重的影響,諸如SARS病毒、艾滋病等。這使得對傳染病發(fā)病機(jī)理、傳染規(guī)律和防治策略研究顯得尤為重要。針對傳染病帶來的一類問題,該模型對病毒的擴(kuò)散因素及擴(kuò)散速率進(jìn)行了分析與模擬。利用動(dòng)畫形象地表現(xiàn)出病毒擴(kuò)散的速率,并將病毒擴(kuò)散因素分離出作為可控變量,通過輸入不同的可控因素變量值,從而觀察出不同因素下病毒擴(kuò)散的快慢程度?;贘ava的擴(kuò)散模型設(shè)計(jì),展現(xiàn)了整個(gè)病毒擴(kuò)散過程,為找出有效的防控措施提供基礎(chǔ)。

關(guān)鍵詞:傳染性疾??;擴(kuò)散模型;Java

針對2020年春節(jié)前后突然爆發(fā)病毒肺炎,簡稱“肺炎”,該病毒具有易擴(kuò)散、難防控、傳播快的特點(diǎn)。爆發(fā)以來,迅速擴(kuò)散對全球經(jīng)濟(jì)、政治、文化、社會(huì)、生態(tài)等造成嚴(yán)重的打擊,同時(shí)我國迅速采取封閉隔離的有效措施,研究人員致力于病毒研究,研制疫苗,但是人們對病毒擴(kuò)散模型還是了解不足。本文主要概述病毒擴(kuò)散模型的設(shè)計(jì)、實(shí)現(xiàn)、測試三個(gè)方面,首先通過對病毒擴(kuò)散調(diào)研分析,進(jìn)行擴(kuò)散模型進(jìn)行設(shè)計(jì),其次針對設(shè)計(jì)對程序的具體的算法進(jìn)行完成,最后對程序產(chǎn)生的測試數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析。

1病毒擴(kuò)散模型的設(shè)計(jì)

經(jīng)過調(diào)研病毒擴(kuò)散主要由傳染源、人口密度、病發(fā)率、人群流動(dòng)快慢引起。由于人群流動(dòng)和移動(dòng)是不可控,使用標(biāo)準(zhǔn)正態(tài)分布的正負(fù)模擬人流動(dòng)的意愿并通過取得兩次不同的值使人進(jìn)行小范圍移動(dòng),通過輸入的方式對傳染源、發(fā)病率、城市人口的規(guī)模進(jìn)行模擬:傳染源:初始化病毒感染者會(huì)影響人與人之間的傳播速度;發(fā)病率:模擬人的狀態(tài)從潛伏到發(fā)病的概率,發(fā)病才會(huì)傳播病毒;城市規(guī)模:不同的城市人口不同人與人傳播不盡相同,也影響著傳播速度。最后通過設(shè)置默認(rèn)的病死率,極低的治愈率和城市區(qū)域進(jìn)行病毒擴(kuò)散的模擬。整個(gè)擴(kuò)散模型設(shè)計(jì)核心主要通過調(diào)研參數(shù)手動(dòng)輸入模擬如大小城市、戴口罩、隔離等不同情況下的產(chǎn)生的概率,判斷人的狀態(tài)進(jìn)行動(dòng)畫的渲染,持續(xù)播放病毒擴(kuò)散的過程。

2病毒擴(kuò)散模型的實(shí)現(xiàn)

2.1病毒擴(kuò)散模型的基本原理

該擴(kuò)散模型的實(shí)現(xiàn)主要基于JavaGUI中的Swing組件完成,Swing包括了許多基礎(chǔ)的圖形用戶界面(GUI)器件如:文本框,按鈕,分隔窗格和表。Swing是一種輕量級(jí)的組件,可以在所有平臺(tái)上采用統(tǒng)一的行為。開發(fā)環(huán)境是純Java環(huán)境,Java的JDK環(huán)境可以為應(yīng)用程序提供大量的API,給程序開發(fā)者提供了很好的開發(fā)環(huán)境。開發(fā)工具采用的是JetBrains公司研發(fā)的產(chǎn)品IDEA,搭建相關(guān)環(huán)境。IDEA開發(fā)工具為開發(fā)者提供了各種智能化設(shè)置,支持各類版本工具(git、svn)、Junit等工具。擴(kuò)散模型的UI界面設(shè)計(jì)以簡潔易懂為主。主要分為四大部分進(jìn)行展現(xiàn):病毒擴(kuò)散演示區(qū),醫(yī)院情況展示區(qū),圖例數(shù)據(jù)顯示區(qū)以及控制因素設(shè)置區(qū),如圖1所示。其中最核心的組件是JFrame容器,在JFrame容器中可以放入不同的其他組件,可以是其他容器也可以是各種顯示組件。相關(guān)容器可以設(shè)置其容器的相關(guān)屬性。病毒擴(kuò)散演示區(qū)是由若干個(gè)小圓點(diǎn)組成,每一個(gè)小圓點(diǎn)代表城市中的居民,小圓點(diǎn)的移動(dòng)代表了居民的流動(dòng)。當(dāng)兩個(gè)小球的距離小于安全距離,就代表著居民處于可能被感染的狀態(tài),都會(huì)有一定概率感染病毒,感染率是由初始化手動(dòng)進(jìn)行設(shè)定的。小圓點(diǎn)處于感染狀態(tài)下,每一次的移動(dòng)都有一定概率傳染給范圍內(nèi)的其他人,再通過居民自身的健康屬性來重新設(shè)置其小圓點(diǎn)顏色,即小球的狀態(tài)。小球移動(dòng)的核心算法如圖2所示。醫(yī)院情況展示區(qū)展示了當(dāng)發(fā)生病毒感染后,醫(yī)院收治患者的情況,主要體現(xiàn)在醫(yī)院是否能夠及時(shí)的治療患者,是否能夠容納所有患者。結(jié)合圖例數(shù)據(jù)顯示區(qū),可以更加清晰分析出此病毒傳染的嚴(yán)重性有多大。圖例數(shù)據(jù)顯示區(qū)展現(xiàn)了經(jīng)歷的時(shí)間、城市的總?cè)丝?、健康人?shù)、潛伏期人數(shù)、發(fā)病者人數(shù)、已經(jīng)隔離人數(shù)、病死人數(shù)以及空余病床和急需病床數(shù)。通過這些數(shù)據(jù)指標(biāo)能夠更好表現(xiàn)出病毒擴(kuò)散的速率與傳播范圍??刂埔蛩卦O(shè)置區(qū)主要將病毒擴(kuò)散的相關(guān)因素提取出來,通過針對不同的狀況設(shè)置不同參數(shù)因素來觀察病毒擴(kuò)散過程不同時(shí)段的傳播狀況。

2.2病毒擴(kuò)散的算法過程

1)程序啟動(dòng)時(shí),首先加載界面UI并初始化相關(guān)默認(rèn)數(shù)據(jù),主要包括動(dòng)畫演示區(qū)、圖標(biāo)展示區(qū)、菜單控制區(qū)。2)在輸入基本參數(shù)后,點(diǎn)擊開始按鈕。讀取基本參數(shù),初始城市人口基數(shù)、初始感染人數(shù)與病毒感染率,啟動(dòng)動(dòng)畫線程。通過設(shè)置的城市的人口基數(shù)隨機(jī)渲染人所在的位置點(diǎn),并隨機(jī)在生成的所有人中取出某一個(gè),讓其狀態(tài)為潛伏狀態(tài),如果已經(jīng)是潛伏狀態(tài)或以上更嚴(yán)重的狀態(tài)繼續(xù)取下一個(gè)人,循環(huán)直到滿足設(shè)置的初始感染人數(shù)。如圖4所示。3)線程啟動(dòng)后,每0.1秒刷新一次畫面,重新繪制城市中人口感染狀況,并更新圖標(biāo)顯示區(qū)的數(shù)據(jù)信息。根據(jù)每個(gè)點(diǎn)的狀態(tài)不同從而繪制不同顏色的點(diǎn),并更新點(diǎn)移動(dòng)的位置。①如果為死亡狀態(tài)則不需要再進(jìn)行處理;②如果確認(rèn)為確診狀態(tài),且(世界時(shí)刻-確診時(shí)刻)大于醫(yī)院響應(yīng)時(shí)間則送入醫(yī)院治療,此時(shí)繼續(xù)判斷醫(yī)院床位是否充足,如果不充足報(bào)告床位所需數(shù)量;③如果確認(rèn)為確診狀態(tài)并且死亡時(shí)刻為0,隨機(jī)產(chǎn)生一個(gè)數(shù)值,若此數(shù)值在病死率之間則通過死亡時(shí)間方差和死亡平均值取其正態(tài)分布得出死亡時(shí)間,否則不會(huì)被病死;④如果為確診狀態(tài)或隔離狀態(tài),并且死亡時(shí)間到了世界時(shí)間,更改狀態(tài)為死亡狀態(tài)并回收床位;⑤如果為隔離狀態(tài),隨機(jī)產(chǎn)生一個(gè)數(shù)值,如果數(shù)值在治愈率之間則表示患者被治愈,更新狀態(tài)為治愈狀態(tài),否則狀態(tài)不變;⑥如果為潛伏狀態(tài),則通過正態(tài)分布函數(shù)求得潛伏期時(shí)長的發(fā)病時(shí)間,若此時(shí)世界時(shí)間-感染時(shí)間大于潛伏期則更新狀態(tài)為確診狀態(tài),否則狀態(tài)不變。⑦如果為健康狀態(tài),隨機(jī)產(chǎn)生一個(gè)數(shù)值并判斷此數(shù)值是否在感染率之間,并且與不健康狀態(tài)人之間的距離是否在一個(gè)安全距離內(nèi),如果小于安全距離則此人會(huì)被感人,否則依然為健康狀態(tài)。具體算法流程如圖4、圖5所示。4)動(dòng)畫開始與暫停即是線程的喚醒與阻塞,本程序通過布爾類型實(shí)現(xiàn)同步鎖達(dá)到這一目的:程序開始時(shí),會(huì)直接調(diào)用阻塞方法,動(dòng)畫不會(huì)被渲染;當(dāng)點(diǎn)擊開始按鈕,直接喚醒線程并阻止線程調(diào)用阻塞方法,開始渲染動(dòng)畫;當(dāng)點(diǎn)擊暫停時(shí),會(huì)再次調(diào)用阻塞方法,停止動(dòng)畫渲染。通過暫停按鈕來阻塞線程不再更新動(dòng)畫,從而獲取在不同世界時(shí)間時(shí)刻此病毒的擴(kuò)散的情況;通過繼續(xù)按鈕來停止阻塞線程,繼續(xù)觀察病毒的擴(kuò)散情況。

3病毒擴(kuò)散模型的測試

針對不同的初始感染人數(shù)與不同感染率在相同城市總?cè)丝跀?shù),經(jīng)歷相同時(shí)間的情況下做出以下幾組數(shù)據(jù)。如下圖所示。根據(jù)此病毒擴(kuò)散模型設(shè)計(jì)進(jìn)行測試的結(jié)果顯示,在不同的感染基數(shù)和不同的感染率的情況下病毒擴(kuò)散的嚴(yán)重性有很大差異,因此對于傳染源的控制以及應(yīng)對的藥品的研發(fā)是關(guān)鍵的要素。若在此模型演示的基礎(chǔ)上對人流流動(dòng)加以控制,以及對醫(yī)院規(guī)模的擴(kuò)大,即解決床位的緊張,藥物匱乏等問題。對防疫和病毒的擴(kuò)散控制又將會(huì)得到一定的提升。

4總結(jié)

世界上的傳染病不可避免,但是盡人類的努力可以將傳染病做一個(gè)很好的防控。公共場所傳染性疾病擴(kuò)散模型設(shè)計(jì)通過應(yīng)用程序簡單易懂,結(jié)合動(dòng)畫更加生動(dòng)形象地表現(xiàn)出傳染病擴(kuò)散的過程,在不同場景、不同條件下對比所擴(kuò)散的程度,為人們預(yù)防控制傳染病提供了一定的理論基礎(chǔ)。

作者:趙安馳 朱鎮(zhèn)祥 方忠進(jìn) 單位:南京信息工程大學(xué)應(yīng)用技術(shù)學(xué)院