因為去哪裡買菜的問題,我和老婆吵起來了

2020年1月底,原本喜氣祥和的春節,被一場突如其來的疫情搞得人心惶惶。

由此也開啟了全民“宅”家模式,那些我們無處安放的青春則變成了朋友圈中一場場花式家庭娛樂、烹飪大賽。對於普通人來說,勤洗手、少出門,就是對疫情最大的貢獻。當然,對於那些有愛心、有技術、有能力的小夥伴來說,所能做出的貢獻還遠不止如此。

出門買菜與取快遞,哪個更安全?

自疫情發生之日起,作為家裡唯一的青壯年男性,我就主動承擔起了出門買菜的“重任”。不過在選擇買菜地點的時候,我和老婆卻發生了分歧——老婆青睞小區附近大超市,附近還未出現確診病例,“咱們這裡還是很安全的”;而我更希望去距離較遠、但採用會員制的某連鎖超市,理由是會員制的超市人少……

究竟是去聽起來更安全的附近超市,還是去人流量更少卻更遠的超市呢?在這個問題上,我和老婆各執一詞並爭論不休。最終,雖然並不認同老婆的那套“理論”,但為了家庭和諧我還是選擇了距離更近的超市,正所謂“大丈夫能屈能伸”。

因为去哪里买菜的问题,我和老婆吵起来了

(全民居家隔離,老爺們兒肩負超市買菜重任)

或許你覺得這個問題像是個笑話,但在疫情之下類似的事情並不少見。比如,最近許多餐館陸續營業,外賣小哥也開始忙碌起來。那麼問題來了,叫外賣與取快遞,究竟哪個更安全呢?再比如,3月份有許多企業都開始正式復工了,那麼坐公共交通和騎自行車,哪一項更安全呢?

從感性來說,我們都知道,儘可能減少出門和接觸是最安全的。但是“宅在家”總不是生活的常態,一旦我們外出,除了戴好口罩做好防護之外,如何最大限度降低自身染病的風險?或者說,我們是否可以通過模擬病毒傳播路徑進行有效的分析和推測,並對病毒的傳播方式進行量化呢?

答案是肯定的,而且從學術界到IT界許多專家們正在進行這樣的嘗試。今天我們要介紹的,就是這樣一款有趣的“病毒模擬器”。

用科技模型助力疫情防控

這款精確的應用程序是由一位來自微軟中國、“有情懷”的程序員小哥開發的,用於推導病毒在人群中的傳播路徑,基於有狀態粒子機來開發,主要體現基於POI的人物移動效果。該程序內核基於NETCore開發,支持跨平臺運行,跨平臺導出GIF,圖形界面為Windows WPF。

因为去哪里买菜的问题,我和老婆吵起来了

在邏輯層面上,這款“病毒模擬器”採用的是“接觸即有幾率傳播”的模型——假設病毒有一個感染半徑X,對於半徑內的人每次有Y%的幾率傳感給對方。如此,就可以在系統中隨機設置N個興趣點(POI),人員會在興趣點之間隨機流動,藉此觀察一定人數和範圍內病毒的傳播曲線。

原本按照微軟小哥的設想,原有模型採用“健康人”、“傳染者”、“康復者”概念,它假定每個傳染者在特定時間內會傳染給N個健康人。但是因為病毒傳播的速度太快,沒過幾天疫情確診人數就從幾百人達到了上萬人,原有的模型沒有考慮空間因素,所以它無法計算隔離與非隔離的情況,而且無法處理不同地圖下人員行為的差異。

因为去哪里买菜的问题,我和老婆吵起来了

隨著疫情的發展,模擬器也歷經不斷的迭代與升級,總體模擬人數從最初的1000人擴大到了70萬人,實時模擬量也從最初的1000人增加到了4萬人,從而可以模擬縣市級別的人員流動與活動範圍軌跡,對於疫情的防控也起到了很大幫助。

升級的版本中採用了改良版模型——採用“毒圈”概念,每個傳染者會傳感給附近特定範圍內的N個人,傳染方式採用“毒圈疊加”算法,既每個傳染者單位時間會向健康人添加“感染度”,當感染度滿的時候,這個健康人會變成傳染者。傳染度會疊加,以模擬多個傳染者在附近的時候感染概率的增加;當附近沒有傳染者的時候,傳染度會歸0。

因为去哪里买菜的问题,我和老婆吵起来了

這樣就解決了疫情感染人數爆發的問題,也讓模型更趨近於真實的場景表現。這也讓我們對於病毒傳播方式從感性的認知上升到了理性的量化數字——從實際模擬情況來看,即便在目前隔離(出門概率很低)情況下,受感染的概率也和人群的出門距離以及時間呈平方比上升。

不僅如此,模擬器還可以模擬在有限醫療資源情況下,床位狀況對於疫情擴散的影響。採用改良型POI可以支持從圖片加載POI,並支持CSV文件導出,在表現界面上也有大幅度變化。這樣形成的數據有助於我們更方便的藉助分析工具進行虛擬疫情分析。雖然模擬器本身不能指導我們下決策,但是它可以用於決策推演。

這就好比行軍作戰時候的“參謀長”,能夠在關鍵時刻提供給我們重要的建議和思考。

我們可以通過4張不同類型的病毒模擬GIF圖片,更清楚地觀察到時間、距離和目標位置所呈現出的差異。這裡,我們將病毒傳播分為活躍度和POI兩個維度——活躍度代表了人物出門、逛街的概率,活躍度值越高,出門、逛街的概率越高;而POI則代表了興趣點的數量,比如超市、菜市場、菜鳥驛站等等,POI的數字越大說明POI散佈越多,意味著出門距離越近(時間越短)。

因为去哪里买菜的问题,我和老婆吵起来了

(低活躍度低POI)

第一張圖代表了大多數人的情況,比如去每週一次離家很遠的超市或者菜市場買菜。模擬結果顯示,由於低POI導致出門比較遠,所以我們可以明顯看到病毒從聚集地傳播開,但並不會實現快速傳播,傳播範圍也有限。

因为去哪里买菜的问题,我和老婆吵起来了

(低活躍度高POI)

第二張圖所呈現的場景也是最近很常見的,就是低活躍度高POI,比如一週一次去家門口的便利店,或者時常出門取快遞。模擬結果顯示,由於人群傾向於呆在家,而且高POI使得出門之後很快就可以回家,所以也沒有造成病毒的大面積傳播,而只是零星的出現。

因为去哪里买菜的问题,我和老婆吵起来了

(高活躍度低POI)

第三張圖是高活躍度高POI,比如時常跑到遠距離的超市,俗稱就是“出去浪”。結果就是我們很明顯地看到,儘管POI高使得人群出門時間不長,但是高活躍度使得人群仍然會集中在POI附近,導致病毒像煙花一樣爆裂地傳播起來,絕大部分區域都有感染。

因为去哪里买菜的问题,我和老婆吵起来了

(高活躍度高POI)

最後一張圖是最可怕的,高活躍度低POI,有點類似於現在意大利或者韓國等國外的情況,大家依然在不斷地頻繁出門與社交。模擬的結果也很觸目驚心,因為兩個關鍵因素疊加,使得病毒在極短的時間內擴散開,全場都呈現出嚴重的感染情況,意味著病毒的發展不受控制。

其實正如模擬器所呈現的那樣,如果將我們自身比作圖片中的某個小綠點,外出的時間越遠、時間越長,接觸到其他人的幾率越高,受感染的概率也會越高;而且軟件告訴我們,這種概率是呈指數級提升的,也就是說每增加1分鐘,都會增加成倍的風險。

這也就解釋了我們文章最初提到的問題,買菜究竟是去家附近的大超市還是去更遠的會員制超市?答案很明顯——就近購買,因為越短時間風險越低,也讓我再次感慨老婆大人的“明智”。其他出行方式也是一樣。如果不是自駕車出行,那麼我們還是儘可能選擇接觸少、時間短的交通工具。

因为去哪里买菜的问题,我和老婆吵起来了

(老婆大人最英明!)

這個病毒模擬器軟件雖然看似簡單,但是在邏輯設計和模型推理上卻是嚴謹得一絲不苟,同時圖形化的界面讓我這樣的文科生也能夠一目瞭然。目前,模擬器已經迭代到了V3版本,該版本重寫了界面系統,並採用DirectX硬件加速渲染,使得圖形性能提升了10倍以上,這樣也就大大增強了可視化效果。在模擬規模上,V3版本如今可以支持2-4萬人實時模擬顯示,因為性能更高,可以實時觀測到人群像水流一樣流動。

精益求精的微軟小哥表示還會對模擬器做進一步的升級,接下來的V4版本中將引入GPU加速、改良POI引擎,並優化界面設計,使其更符合科研應用的需求;而在談到未來更長遠的計劃時,包括分佈式計算引擎、Webassembly、嵌入瀏覽器等許多功能也將不斷加入其中,讓軟件日趨完善。

對於大多數人來說,我們對於病毒的認知來源於媒體的報道,來源於朋友間的道聽途說,我們看著每天疫情通報的數據不斷變化,卻並不瞭解病毒的傳播路徑與方式。而這款病毒模擬器所實現的,則是一種全新的、可視化、具象化的方式,就如同每個人都置身於圖片之中,感受病毒帶來的震撼與威脅。

藉助於這個模擬器,我們可以清楚地看到在不同的活躍度與POI維度下模型所呈現出的場景,這些場景也讓我們明確了自身的責任與義務。相比於那些奮戰在抗疫一線的醫生、護士、警察、記者等“逆行者”們,我們都是普通人,但是普通人也可以貢獻自己的力量,也可以藉助科學的技術手段切身感受到健康的可貴。

幸好,如今的疫情數字已經在一天天減少,我們身邊聽到的好消息也在不斷增多。相信要不了多久,寒冬就將過去,迎接我們的將是山花爛漫。


分享到:


相關文章: