程式設計師硬核勸告:現在還不是出門的時候(附視頻&代碼)

thu數據派 發佈 2020-02-06T00:47:11+00:00

但現實並非如此,抗疫戰鬥仍在繼續,還沒有達到鍾南山等專家所說的爆發期。那麼,先按照上述的參數,也就是初始感染人數為50,醫院床位為0,流動意向為0.99,傳播的情況就是:病情就會慢慢傳播開來,這時候醫院就需要建立隔離區,將醫院床位參數改為100,即:public static i

本文經AI新媒體量子位(公眾號ID:qbitai)授權轉載,轉載請聯繫出處

本文約2000字,建議閱讀5分鐘。

本文通過仿真程序為你展示疫情期間不要出門的原因。

憋瘋了?在家宅不下去了?想出去透透氣了?

千萬別!

雖然你對疫情已經麻木了,覺得沒什麼大礙了。

但現實並非如此,抗疫戰鬥仍在繼續,還沒有達到鍾南山等專家所說的爆發期。

如果大家現在要是出門,真的是在疫情防控添亂!

不信?看看這個播放量達到數百萬的仿真程序吧,它告訴我們:

如果現在出門逛,迎接我們的,就是疫情越來越難控制的局面。

計算機仿真程序的設定

由於是一個仿真任務,所以採用的是面向對象的語言——Java

數學模型方面,則是自然界中常見的正態分布 (高斯分布)。

這裡的人群人的流動意向就按照正態分布來模擬,而病毒的傳播率則是一個固定的參數。

這是一個較為簡單的模型,但並不影響對傳播及控制要素的分析。

先來介紹一下用來控制傳播各個環節的常量。

初始感染數量,設置為50人:

public static int ORIGINAL_COUNT=50;

病毒傳播率,設置為0.8:

public static float BROAD_RATE = 0.8f;

病毒潛伏時間,設置為0(若為140則代表14天):

醫院收治響應時間,設置為10(同上),表示從確診到安置隔離的時間:

public static int HOSPITAL_RECEIVE_TIME=10;

醫院床位,疫情剛開始的時候由於醫院沒有隔離區,設置為0:

public static int BED_COUNT=0;

流動意向平均值,設置為0.99,表示人們可以隨意流動:

public static float u=0.99f;

現在忍不住要出門?會有大麻煩!

那麼,先按照上述的參數,也就是初始感染人數為50,醫院床位為0,流動意向為0.99,傳播的情況就是:

病情就會慢慢傳播開來,這時候醫院就需要建立隔離區,將醫院床位參數改為100,即:

public static int BED_COUNT=100;

若是此時,人們控制自己不隨意流動,那麼疫情將會迅速被控制,甚至被消滅。

其中,下圖右側中的紅色點點代表被收治的感染者。

但疫情開始的時候,人們肯定控制不住自己的流動,所以將該參數值調回0.99,即:

public static float u=0.99f;此時,讓我們看下疫情擴散情況。

醫院隔離區的床位會被馬上占滿,疫情也會將不受控制。

而此時的做法就是擴大醫院的隔離區,增加床位。

醫院床位參數調至1000,即:

public static int BED_COUNT=1000;

此時疫情也能很快被控制,這也就是我們為什麼要建雷神山和火神山醫院。

但這時,也需要考慮一下醫院接收響應的因素,也就是一個患者從確診到被安置隔離的時間。

若是這個時間過長,疫情也會變得比較糟糕,我們將醫院收治響應時間設置為100,即:

public static int HOSPITAL_RECEIVE_TIME=100;

不過幸運的是,國家現在在全力以赴,響應時間足夠應付本次疫情,而且會越來越快。

然而,還需要考慮一個非常重要的因素——新冠狀病毒潛伏期長達14天!

之前的潛伏時間參數都設置為了0,現在設置為140(程序中為14天),即:

public static float SHADOW_TIME = 140;此時讓我們看下疫情傳播情況。

一開始的時候,由於潛伏期的關係,很難再人群中發現患者並進行隔離。

等潛伏期一過,就會出現前一陣子的那般爆發性的增長。而此時,醫院隔離區的床位也會被占滿。

一旦醫院資源被耗盡,那麼疫情的傳播情況就會變得像一開始那般糟糕。

但是!此處劃重點!!

若是人們能夠控制流動意向,又會怎樣呢?

我們把流動意向平均值這個參數調為-0.99,即:

public static float u=-0.99f;

這個過程也反映了目前醫務工作人員與病毒鬥爭的艱難過程,雖然時間較長,但最終疫情得到了很好的控制。

從這個實驗過程,我們可以發現,人群流動意向這個參數貫穿始終,基本上起了主導作用。

雖然目前確診效率、醫院收治時間都在加快,但目前我們正處於潛伏期階段,也就是圖中哪些許多黃色的點點,而這也是最危險的時刻!

「傲慢才是生存的最大障礙」

這一程序,來自B站的UP主Ele實驗室。他在自己作品的開頭,也提到了自己為什麼要做個系統,他身邊的人已經快按奈不住心情了:

前幾天北京下雪後,竟然有家長帶著孩子出門打雪仗;

家族群里有個別親戚蠢蠢欲動,開始吆五喝六,準備聚餐了;

還有一個遠方的親戚,要出門去參加婚禮了。

可現在還不是出門的時候,疫情仍舊處於爆發期。他說,雖然花費了很多功夫進行了勸說,但效果如何,仍舊不得而知。

作為一名程式設計師,他決定做點什麼。

於是就有了現在這個連夜打造的計算機仿真程序,希望能夠更直觀地讓大家感受下呆在家裡的重要性。

他也呼籲大家,不要抱有僥倖心理。

尤其是最近幾天,立春已至,各地天氣都在轉好,往往會給人一種疫情沒什麼大礙的錯覺。

可放鬆警惕的時候往往是最危險的時候,國家防控措施進入常態化,最後對疫情產生主導作用的,其實還是我們每個人。

在視頻的結尾,他引用了《三體》中的一句話,再次提醒大家:

無知和弱小不是生存的最大障礙,傲慢才是。

文章的最後,再次感謝「Ele實驗室」提供的授權支持,他在B站上傳的視頻如下:

嗶哩嗶哩計算機仿真程序告訴你為什麼現在還沒到出門的時候!!!小程序

而且,打造這一系統的代碼,他也已經在GitHub上開源了,連結如下:

https://github.com/KikiLetGo/VirusBroadcast/tree/master/src

希望大家能夠多點耐心,身體健康最重要。等疫情過去,再撒歡兒玩~

編輯:文婧

校對:林亦霖

—完—

關注清華-青島數據科學研究院官方微信公眾平台「 THU數據派 」及姊妹號「 數據派THU 」獲取更多講座福利及優質內容。

關鍵字: