基于元胞自动机的传染病传播模型研究
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于元胞自动机的传染病传播模型研究
作者:吴成来
来源:《电脑知识与技术》2019年第09期
摘要:文章讨论了一种基于元胞自动机的建模方法,并在该模型的基础上模拟了流感病毒传播与控制这一复杂的过程。模拟结果与现实生活中流感病毒的宏观特征的结果大致相同,对传染病的傳播与控制有着一定的参考意义。
关键词:元胞自动机;传染病;模型;模拟
中图分类号:TP311 文献标识码:A
文章编号:1009-3044(2019)09-0185-02
传染病是由病原体引起的一种具有传染性的疾病,它主要通过人与人之间的交流、接触、联系来传播,并且随着时间、外界干预程度的变化而变化,因此对传染病传播的描述和控制是一个十分复杂的研究课题。
20世纪40年代初冯·诺依曼提出了元胞自动机的概念,20世纪80年代S.Wolfram对元胞自动机进行了全面研究。由于元胞自动机具有时间、空间和状态都离散的特点,并且能够以局部规则同步演化来反映整个系统的复杂变化,这与传染病的传播机制十分类似,因此元胞自动机成为研究传染病传播的一个重要方法。
1 模型
元胞自动机可以用一个四元组[A=(Ld,S,N,f)],[A]表示元胞自动机系统,[Ld]表示一个[d]维的网格空间,这里取[d=2],每一个网格单元就是一个元胞,[S]是离散集合,表示各个元胞的状态,[N]表示元胞的邻居集合,[f]是局部演化规则,就是根据[t]时刻某个元胞所有邻居的状态组合确定[t+1]时刻该元胞的状态值。本文采用的是Moore邻居,如图1所示。
根据传染病在人群中传播的特点,将传染病传播中的人群分为三类:易感染者(S)、染病者(I)、免疫者(已经治愈或死亡)(R)。从一轮病毒开始爆发,到治愈,再到新一轮的病毒开始肆虐,其状态可以用图2表示。
考虑一个2维的网格,每一个小格子[(i,j)]都有一个人,[Sti,j]表示[t]时刻[(i,j)]处人的状态。根据上面的叙述,[Sti,j]有三个取值。[Sti,j=0]表示个体处于易感染状态,还没有被病毒传染,不能传染病毒给和他接触的人群,但是对病毒没有免疫力;[Sti,j=1]表示个体处于染病状态,已经感染了病毒,能把病毒传染给和他接触的易感染者,自身也在与病毒的对抗中逐渐产生抗体,到达一定时间后会自己治愈;[Sti,j=2]表示个体已被治愈或者已经死亡,不能把病毒传染给易感染者,自身的免疫力随着时间的流逝逐渐变差。
对每个元胞引入发病持续时间[t(Sti,j)]和免疫力持续时间[T(Sti,j)],[tmax,Tmax]分别表示发病时间和免疫力持续时间的最大值。
演化规则:对要模拟的在二维空间进行均匀的网格划分,每一个小格子就是一个元胞,把所有元胞初始状态设为[Sti,j=0],即所有元胞都认为是易感染者,此时发病持续时间[t(Sti,j)=0]。随机在网格中取很小比例(大概千分之一)的元胞作为感染病毒的患者,病毒感染者所在的网格初始状态设[Sti,j=1],发病持续时间[t(Sti,j)=1]。从[t=0]时刻开始,在每个时间步长对所有元胞进行扫描,并以下面的规则进行状态更新。
(1)当[Sti,j=0]时,此时元胞不能传染被人,但是很容易被别人感染。考虑[(i,j)]处元胞的被它周围邻居传染的概率[pti,j]。该处的元胞以概率[pti,j]被传染,状态由[Sti,j=0]变为[Sti,j=1],发病持续时间变为[t(Sti,j)=t(Sti,j)+1]。其中[pti,j]的计算公式[2]:
[pti,j=k*(Cti,j-1+Cti,j+1+Cti-1,j+Cti+1,j)4+l*(Cti-1,j-1+Cti+1,j+1+Cti-1,
j+1+Cti+1,j-1)4]
其中[k]表示[(i,j)]处元胞的上、下、左、右邻居对它的影响因子,[l]表示[(i,j)]处元胞的左上、右下、左下、右上邻居对它的影响因子,且[k>l]。
(2)当[Sti,j=1]时,考虑元胞的发病持续时间,若[t(Sti,j)tmax],此时元胞已经自我治愈,状态由[Sti,j=1]变为[Sti,j=2],染病时间变为[t(Sti,j)=0],免疫力持续时间[T (Sti,j)=T(Sti,j)+1]。
(3)当[Sti,j=2],考虑元胞的免疫力持续时间[T(Sti,j)],若[T(Sti,j)>Tmax],此时元胞的免疫力随着时间的流逝逐渐消失,变为易感染者,元胞状态由[Sti,j=2]变为[Sti,
j=0]。若[T(Sti,j)
基于以上的演化规则,网格空间中的所有元胞在每一仿真步都同步更新,局部的元胞相互作用的结果就是下一仿真步的初始状态。
2 仿真结果与分析
根据传染病传播的人群状态,将元胞演化规则应用到半径为1的Moore邻居,对传染病传播进行仿真模拟。设定元胞空间为[L×L=100×100]的网格,元胞初始被感染病毒的概率为
0.0018。采用2009年6月16日至7月15日发生在中国大陆的甲型H1N1流感病毒数据[6]进行仿真模拟。假设[k=0.5,l=0.2],发病持续时间为7天,康复者的免疫力持续时间为365天。图3为40天内的模拟仿真数据,仿真结果与实际数据基本吻合。
从图3 可以看到,病毒爆发初期,流感病毒传播速度比较快,患者人数增加迅速,到了后期流感病毒传播速度下降,患者人数开始缓慢下降。患者人数下降的原因,一是随着医疗救治的进行,患者被治愈后有免疫力不再被感染;一是到病毒传播后期,部分患者已经死亡,不会再传染给其他人群。
在现实生活中,大家一旦发现自己身体不舒服都会走进医院,向医生寻求帮助,医生会对我们进行救治。这里假设医生有特效药物,只要向医生求助,患者就会被治愈,因此就减少了发病的持续时间。保持初始参数不变,研究发病持续时间对传染病传播过程的影响。如图4所示。
从图4可以看出,当发病持续时间为[T=5]时,染病人数增加的速度比实际数据要小,而且染病人数也比实际数据要少;当发病持续时间为[T=9]时,染病人数增加的速度比实际数据要大,而且染病人数也比实际数据要多。病人发病持续时间越长,病人在活动期间接触的易感染者就会越多,导致患者累计数量增多。因此在传染爆发初期就当积极采取有效的方法对患者