【发布时间】:2021-10-27 16:58:25
【问题描述】:
我正在尝试使用 SEIR 和行人模型之间的混合来制作一个模型来模拟公共空间中 covid 的传染。 在另一个问题中,我要求使用静态人口。他们建议在删除代理之前将副本保存在列表中,并且在生成第一个 X 代理之后,我希望 pedSource 生成的下一个代理成为列表中的一个。
目前我所做的是从列表中随机抽取一个代理,如果它被感染,我会向新代理发送一条消息,使其进入感染状态。但是通过这样做,每次代理进入我正在建模的区域时,我都会重置超时以恢复。 这是退出时在 pedSource 中当前运行的代码:
if (personasEnCasa.size()+personasEnSuper.size() > poblacionMaxima){
Persona p = randomFrom(personasEnCasa);
if (p.statechart.getState() == Persona.Infeccioso){
send("Contagiado", ped);
};
personasEnCasa.remove(p);
};
personasEnSuper 是我的 Persona 人口,personasEnCasa 是我在区域外的代理列表,而 poblacionMaxima 是列表和人口中的最大代理数
我希望能够将列表中代理的当前状态图复制到生成我的 pedSource 的代理。或者使用类似于 pedSource.inject () 的东西,但从列表中插入一个代理而不是一个新代理。但我不知道该怎么做。
有什么办法吗?
【问题讨论】:
标签: anylogic agent-based-modeling