10- 网络上病毒传播的SIR模型 用Links建模网络动力学
该系列笔记基于集智乐园的《Netlogo多主体建模入门》课程,感谢张江老师与各位志愿者的辛勤付出。
- 集智乐园 《Netlogo多主体建模入门》 https://campus.swarma.org/play/play?id=429
首先,我们需要知道SIR模型是什么。
经典的SIR模型:
感染者有α 的概率感染健康者,
感染者有β的概率治疗成功,恢复之后就不会再被感染(neilogo的模型中是:痊愈后有一定的概率会获得病毒抗性)。
将人群分成三种状态:
S: 易感态、疑似态(Susceptibility)
I: 感染态(Infection)
R: 恢复态(Recovery)
三种状态彼此之间可以以一定的概率彼此之间相互转换
感染态可以沿着网络进行传播。
实现思路:
- 随机放置节点,遍历turtles,在半径r 内的节点都和该 turtle 相连;
- 使用 layout-spring 函数进行可视化;
- 患者有一定概率传染给健康者,患者在患病初期并不知道自己感染,患者有一定几率痊愈
- 患者痊愈后,有一定的概率会获得病毒抗性。对病毒产生抗性的患者无法被感染。
- 获得病毒抗性的人标记为灰色,并标记连边为灰色,记作无效节点
- 能选定初始的节点数、平均度、传播源点数
- 能指定传播速度、患者自检频率、痊愈比例、获得病毒抗性的比例
预备的代码知识:
Link对象
属性:
- end1,end2 属性
代表link两端的节点,end1代表起点,end2代表