憋疯了?在家宅不下去了?想出去透透气了?
千万别!
虽然你对疫情已经麻木了,觉得没什么大碍了。
但现实并非如此,抗疫战斗仍在继续,还没有达到钟南山等专家所说的爆发期。
如果大家现在要是出门,真的是在疫情防控添乱!
不信?看看这个播放量达到数百万的仿真程序吧,它告诉我们:
如果现在出门逛,迎接我们的,就是疫情越来越难控制的局面。
计算机仿真程序的设定
由于是一个仿真任务,所以采用的是面向对象的语言——
Java
。
数学模型方面,则是自然界中常见的
正态分布
(高斯分布)
。
这里的
人群
和
人的流动意向
就按照正态分布来模拟,而
病毒的传播率
则是一个固定的参数。
这是一个较为简单的模型,但并不影响对传播及控制要素的分析。
先来介绍一下用来控制传播各个环节的常量。
初始感染数量
,设置为50人:
public static int ORIGINAL_COUNT=50;
病毒传播率
,设置为0.8:
public static float BROAD_RATE = 0.8f;
病毒潜伏时间
,设置为0(若为140则代表14天):
public static float SHADOW_TIME = 0;
医院收治响应时间
,设置为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;
这个过程也反映了目前医务工作人员与病毒斗争的艰难过程,虽然时间较长,但最终疫情得到了很好的控制。