0

我正在为意大利的百日咳建立一个流行病学模型,其中的疫苗接种计划是在生命的第 III、V 和 IX 个月……然后在 4 到 6 岁时接种加强剂,在 14 岁时接种另一剂。代理人再现了意大利人口的分布,我用上个世纪的数据来分割不同州的初始人口。虽然我从另一篇论文中获取了有关日常联系的数据,并且根据这些数据,每个代理都与其他代理连接。

我想重现 2006 年到 2014 年意大利百日咳的流行病学……所以我对感染人数感兴趣

在此处输入图像描述

新特工(在模拟期间出生)进入状态 S...在他们生命的第三个月(从 60 到 89 天)特工可以接种疫苗并进入状态(转到 V1)...我每天有概率更改状态(ProbVaccD)...这是我在转换中编写的代码:

condition: age() >= 60./365 && age()<90./365 guard: randomTrue(main.ProbVaccD)

模型的时间是“天”,“age()”是一个函数,定义为return time(YEAR) - birthDate;“birthDate”是一个变量,存储代理出生时模型的时间(YEAR)。

我想要的是每天评估的条件,因此我添加了一个带有“重复时间 1 天”的“循环事件”并且action: onChange();......这是正确的吗?

我担心的一点是,一些代理(处于 Ip、Is、R1、R2 和 R3 状态的代理)每天都会向与他们连接的所有代理发送消息......

假设一个代理收到 8 条消息,那么条件被评估 8 次(每条消息一个)+ 1(对于“onChange();)函数?

提前致谢!!!

4

0 回答 0