0

我的问题是关于在另一个进程上修改代理。我正在使用一个网格,其中有静态代理,每个网格单元一个代理。每个代理都可以使用 Moore2DGridQuery 获取其直接邻居。然后根据相邻代理的状态,他们可以选择他们的邻居之一并改变他们的状态。人类和僵尸的方式几乎相同,僵尸可以感染人类。但是,由于代理可以修改直接邻居,这意味着邻居可能是缓冲区中的代理。因此,如果我想“感染”缓冲区中的代理并将其传播回原始代理,那么最好的方法是什么?

4

1 回答 1

0

确实没有内置的方法可以做到这一点。同步是从原始到幽灵/缓冲代理。目的是非幽灵(非缓冲)代理处于活动状态,例如,会环顾四周,然后以某种方式改变自己。考虑到这一点,是否可以重构您的代理行为?

您可以为这种反向同步编写自己的机制,但您必须直接使用 MPI,发送代理 ID 和更新的状态,而不是任何 Repast HPC 的同步机制。如果您这样做,可能最简单的方法是将所有更改发送到排名 0,然后让每个排名查询排名 0 以获取任何适用的更改。同样,虽然那是 MPI 编程,但与 Repast HPC 并不严格相关。

于 2022-03-02T13:52:39.453 回答