在 AnyLogic 中的特定时间步计数
Counts at a specific time step in AnyLogic
我正在尝试 运行 一个标准的基于 SIR 代理的模型,其中代理从 'Susceptible' 过渡到 'Infected',从 'Infected' 过渡到 'Recovered'.我现在对计算瞬时发生率很感兴趣,即在给定时间 t 从 'Susceptible' 状态转换到 'Infected' 状态的代理人数量。
例如:
在第 1 天(模型时间),2 个代理从 'Susceptible' 过渡到 'Infected'
在第 2 天(模型时间),5 个代理从 'Susceptible' 过渡到 'Infected'
在第 3 天(模型时间),7 位代理人从 'Susceptible' 过渡到 'Infected'
.
.
.
我能够获得 'Infected' 个代理的总数,但我想知道每个时间步长的这个值。我正在寻找一个函数,用于累计累加每个时间步的新感染数量。
关于如何在 AnyLogic 中执行此操作的任何想法都将非常有帮助。谢谢。
我建议您在 Main col_Counter
上创建一个类型的集合,其中键是日期,值是感染数。
然后在代理中创建一个名为 e_Counting
的重复事件,从模型开始时开始,每 24 小时重复一次。在动作中写:
main.col_Counter.add(date(), v_countsToday);
v_countsToday=0;
同时在代理中创建 v_countsToday
作为整型变量。每当发生感染时加+1。
还有很多其他方法,但这行得通。
干杯
这里是截图,需要select"Other"键手动输入维度"Date()":
我正在尝试 运行 一个标准的基于 SIR 代理的模型,其中代理从 'Susceptible' 过渡到 'Infected',从 'Infected' 过渡到 'Recovered'.我现在对计算瞬时发生率很感兴趣,即在给定时间 t 从 'Susceptible' 状态转换到 'Infected' 状态的代理人数量。
例如: 在第 1 天(模型时间),2 个代理从 'Susceptible' 过渡到 'Infected' 在第 2 天(模型时间),5 个代理从 'Susceptible' 过渡到 'Infected' 在第 3 天(模型时间),7 位代理人从 'Susceptible' 过渡到 'Infected' . . .
我能够获得 'Infected' 个代理的总数,但我想知道每个时间步长的这个值。我正在寻找一个函数,用于累计累加每个时间步的新感染数量。
关于如何在 AnyLogic 中执行此操作的任何想法都将非常有帮助。谢谢。
我建议您在 Main col_Counter
上创建一个类型的集合,其中键是日期,值是感染数。
然后在代理中创建一个名为 e_Counting
的重复事件,从模型开始时开始,每 24 小时重复一次。在动作中写:
main.col_Counter.add(date(), v_countsToday);
v_countsToday=0;
同时在代理中创建 v_countsToday
作为整型变量。每当发生感染时加+1。
还有很多其他方法,但这行得通。
干杯
这里是截图,需要select"Other"键手动输入维度"Date()":