我已经使用 Python 对象在 Python 中实现了我自己的基于代理的模型 (ABM)。具体来说,这是一个Virus对象和Host对象的模型,其中Virus对象存在于Host对象中(存储在一个列表中),可以与其他Virus对象交换基因,并且可以在Host对象接触时传递给另一个Host对象。
OOP 方式使其灵活且易于编程,但如果不使用 PyPy 或 numba 或将一些代码移至 Cython,我将很难加快速度。加速总是好的,所以我不会在这里讨论我为什么要这样做。
不过,我在这里的问题更为根本。是否可以对此类模型进行矢量化?或者这种模型的层次结构和相互依赖的性质是否使得使用向量和矩阵在逻辑上不可能实现?