程序員硬核勸告:現(xiàn)在還不是出門的時候
本文經(jīng)AI新媒體量子位(公眾號ID:QbitAI)授權(quán)轉(zhuǎn)載,轉(zhuǎn)載請聯(lián)系出處。
憋瘋了?在家宅不下去了?想出去透透氣了?
千萬別!
雖然你對疫情已經(jīng)麻木了,覺得沒什么大礙了。
但現(xiàn)實并非如此,抗疫戰(zhàn)斗仍在繼續(xù),還沒有達到鐘南山等專家所說的爆發(fā)期。
如果大家現(xiàn)在要是出門,真的是在疫情防控添亂!
不信?看看這個播放量達到數(shù)百萬的仿真程序吧,它告訴我們:
如果現(xiàn)在出門逛,迎接我們的,就是疫情越來越難控制的局面。
計算機仿真程序的設(shè)定
由于是一個仿真任務(wù),所以采用的是面向?qū)ο蟮恼Z言——Java。
數(shù)學(xué)模型方面,則是自然界中常見的正態(tài)分布 (高斯分布)。

這里的人群和人的流動意向就按照正態(tài)分布來模擬,而病毒的傳播率則是一個固定的參數(shù)。
這是一個較為簡單的模型,但并不影響對傳播及控制要素的分析。
先來介紹一下用來控制傳播各個環(huán)節(jié)的常量。
初始感染數(shù)量,設(shè)置為50人:
- publicstaticintORIGINAL_COUNT=50;
病毒傳播率,設(shè)置為0.8:
- publicstaticfloatBROAD_RATE=0.8f;
病毒潛伏時間,設(shè)置為0(若為140則代表14天):
- publicstaticfloatSHADOW_TIME=0;
醫(yī)院收治響應(yīng)時間,設(shè)置為10(同上),表示從確診到安置隔離的時間:
- publicstaticintHOSPITAL_RECEIVE_TIME=10;
醫(yī)院床位,疫情剛開始的時候由于醫(yī)院沒有隔離區(qū),設(shè)置為0:
- publicstaticintBED_COUNT=0;
流動意向平均值,設(shè)置為0.99,表示人們可以隨意流動:
- publicstaticfloatu=0.99f;
現(xiàn)在忍不住要出門?會有大麻煩!
那么,先按照上述的參數(shù),也就是初始感染人數(shù)為50,醫(yī)院床位為0,流動意向為0.99,傳播的情況就是:
病情就會慢慢傳播開來,這時候醫(yī)院就需要建立隔離區(qū),將醫(yī)院床位參數(shù)改為100,即:
- publicstaticintBED_COUNT=100;
若是此時,人們控制自己不隨意流動,那么疫情將會迅速被控制,甚至被消滅。
其中,下圖右側(cè)中的紅色點點代表被收治的感染者。

但疫情開始的時候,人們肯定控制不住自己的流動,所以將該參數(shù)值調(diào)回0.99,即:
- publicstaticfloatu=0.99f;
此時,讓我們看下疫情擴散情況。

醫(yī)院隔離區(qū)的床位會被馬上占滿,疫情也會將不受控制。
而此時的做法就是擴大醫(yī)院的隔離區(qū),增加床位。
將醫(yī)院床位參數(shù)調(diào)至1000,即:
- publicstaticintBED_COUNT=1000;

此時疫情也能很快被控制,這也就是我們?yōu)槭裁匆ɡ咨裆胶突鹕裆结t(yī)院。
但這時,也需要考慮一下醫(yī)院接收響應(yīng)的因素,也就是一個患者從確診到被安置隔離的時間。
若是這個時間過長,疫情也會變得比較糟糕,我們將醫(yī)院收治響應(yīng)時間設(shè)置為100,即:
- publicstaticintHOSPITAL_RECEIVE_TIME=100;

不過幸運的是,國家現(xiàn)在在全力以赴,響應(yīng)時間足夠應(yīng)付本次疫情,而且會越來越快。
然而,還需要考慮一個非常重要的因素——新冠狀病毒潛伏期長達14天!
之前的潛伏時間參數(shù)都設(shè)置為了0,現(xiàn)在設(shè)置為140(程序中為14天),即:
- publicstaticfloatSHADOW_TIME=140;
此時讓我們看下疫情傳播情況。

一開始的時候,由于潛伏期的關(guān)系,很難再人群中發(fā)現(xiàn)患者并進行隔離。
等潛伏期一過,就會出現(xiàn)前一陣子的那般爆發(fā)性的增長。而此時,醫(yī)院隔離區(qū)的床位也會被占滿。
一旦醫(yī)院資源被耗盡,那么疫情的傳播情況就會變得像一開始那般糟糕。
但是!此處劃重點??!
若是人們能夠控制流動意向,又會怎樣呢?
我們把流動意向平均值這個參數(shù)調(diào)為-0.99,即:
publicstaticfloatu=-0.99f;

這個過程也反映了目前醫(yī)務(wù)工作人員與病毒斗爭的艱難過程,雖然時間較長,但最終疫情得到了很好的控制。
從這個實驗過程,我們可以發(fā)現(xiàn),人群流動意向這個參數(shù)貫穿始終,基本上起了主導(dǎo)作用。
雖然目前確診效率、醫(yī)院收治時間都在加快,但目前我們正處于潛伏期階段,也就是圖中哪些許多黃色的點點,而這也是最危險的時刻!
“傲慢才是生存的最大障礙”
這一程序,來自B站的UP主Ele實驗室。他在自己作品的開頭,也提到了自己為什么要做個系統(tǒng),他身邊的人已經(jīng)快按奈不住心情了:
前幾天北京下雪后,竟然有家長帶著孩子出門打雪仗
家族群里有個別親戚蠢蠢欲動,開始吆五喝六,準備聚餐了
還有一個遠方的親戚,要出門去參加婚禮了
可現(xiàn)在還不是出門的時候,疫情仍舊處于爆發(fā)期。他說,雖然花費了很多功夫進行了勸說,但效果如何,仍舊不得而知。
作為一名程序員,他決定做點什么。
于是就有了現(xiàn)在這個連夜打造的計算機仿真程序,希望能夠更直觀地讓大家感受下呆在家里的重要性。
他也呼吁大家,不要抱有僥幸心理。
尤其是最近幾天,立春已至,各地天氣都在轉(zhuǎn)好,往往會給人一種疫情沒什么大礙的錯覺。
可放松警惕的時候往往是最危險的時候,國家防控措施進入常態(tài)化,最后對疫情產(chǎn)生主導(dǎo)作用的,其實還是我們每個人。
在視頻的結(jié)尾,他引用了《三體》中的一句話,再次提醒大家:
“無知和弱小不是生存的最大障礙,傲慢才是。”
文章的最后,再次感謝“Ele實驗室”提供的授權(quán)支持。打造這一系統(tǒng)的代碼,他也已經(jīng)在GitHub上開源了,鏈接如下:
https://github.com/KikiLetGo/VirusBroadcast/tree/master/src
希望大家能夠多點耐心,身體健康最重要。等疫情過去,再撒歡兒玩~