是否可以将基于代理的模型矢量化?

2024-10-01 11:38:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经用Python实现了我自己的基于代理的模型(ABM),使用Python对象。具体来说,这是一个病毒对象和宿主对象的模型,病毒对象生活在宿主对象(存储在列表中)中,可以与其他病毒对象交换基因,当宿主对象接触时,可以传播到另一个宿主对象。你知道吗

面向对象的方式使得它灵活且易于编程,但是如果不使用PyPy或numba,或者将一些代码移动到Cython,我很难加快它的速度。提速总是好的,所以我不想在这里讨论为什么我要这么做。你知道吗

不过,我这里的问题更基本。有没有可能将这些模型矢量化?或者这样一个模型的层次性和相互依赖性使得在逻辑上不可能使用向量和矩阵来实现吗?你知道吗


Tags: 对象模型代理列表编程方式基因pypy
1条回答
网友
1楼 · 发布于 2024-10-01 11:38:18

已经有几天没有任何回应了,所以我会看看能不能让辩论继续下去。我对Python不够熟悉,无法给出明确的答案。但这可能取决于您试图编写代码的交互(代理之间或代理与其环境之间)的细节。如果可以采取以下措施:

1/ calculate the behaviour of each agent based on its current circumstances and store in a 'next timestep' variable

2/ update the variables to their 'next timestep' values

那原则上就没有问题了。但这正是ABM构建者经常使用专业ABM语言(如NetLogo)或OOP语言的原因。您可以看看Repast Py如何处理这些问题。你知道吗

相关问题 更多 >