大家好!
我们开始了Mesa 4.0的开发,并已发布第一版_alpha。这是一个重大架构步骤:Mesa正在从基于步数的到事件驱动的模拟核心,同时清理了几年的累积API垃圾。
- [https://github.com/projectmesa/mesa/releases/tag/v4.0.0a0]
什么是基于代理的建模?
你有没有想过,鸟群是如何自组织的?或交通拥堵是如何形成的?基于代理的建模(ABM)允许你通过为“代理”(鸟类、汽车、人等)定义简单规则来模拟这些复杂系统,从而观察它们的交互如何生成模式。相比之下,你可以通过为整个系统编写方程来模拟系统,而不仅仅是每个代理的行为。
什么是Mesa?
Mesa是Python中基于代理建模的领先框架。它基于Python的科学堆栈(NumPy、pandas、Matplotlib)并提供了专门的工具来处理空间关系、代理调度、数据收集和浏览器可视化。无论你是在研究疾病传播、市场动态还是生态系统,Mesa都给你提供了建立复杂模拟的基本构建块。
Mesa 4.0 Alpha中的新功能
事件驱动于核心。Mesa 3.5引入了公共事件调度(Model)中的方法,如 model.run_for()、 model.run_until()、 model.schedule_event() 和 model.schedule_recurring()。Mesa 4.0在此基础上继续发展: model.steps 已经消失,被 model.time 替代做为通用时钟。思想型的模型从“执行步骤N”转变为“推进时间,任何已调度的事件将执行。”事件系统现已支持暂停/恢复事件,暴露下一次调度的事件,并确保时间将向前移动。
实验性的计时动作。 一个新Action系统为代理提供了一个内置的概念,即以时间为单位进行某些事情。动作与事件调度集成支持,支持中断并且实现了进度跟踪,以及可以恢复:
由mesa.experimental.actions import Action
class Forage(Action):
def init(self, sheep):
super().init(sheat, duration=5.0)
def on_complete(self):
agent.energy += 30
def on_interrupt(self, progress):
agent.energy += 30 * progress # Partial credit
sheep.start_action(Forage(sheep))
废弃API的删除。 这是一个主要版本,所以我们遵循了删除,移除: seed 参数(使用 rng), batch_run(使用 Scenario),遗留的 mesa.space 模块(使用 mesa.discrete_space), PropertyLayer(用原始的 NumPy 数组代替mesa.discrete_space 上的),和 Simulator类(用模型级调度方法进行替换)。如果你遵循3.x中废弃警告,多数这些应该都是直观的。
更清晰的内部。 一个新 mesa.errors 异常层次替换了普通Exception 使用。 DiscreteSpace 是一个抽象基类,强制实施一个一致的空间API。属性访问在单元格中使用原生属性闭包GridCell 类上的动态。数值优化减少了事件系统和连续空间中分配。
这是一个alpha版本
期望一些粗糙的边缘。我们早期发布来获得社区反馈之前稳定版本。进一步的破坏性变化仍有可能。如果你在生产环境中运行Mesa,保持在3.5版本。我们渴望有个venture心者来试试alpha版,并且告诉我们破坏了什么。
Mesa 4.0稳定版将来
我们仍在做空间架构 (多空间支持、可观察位置)、用新的反应性的数据获取(DataRecorder),和围绕 Scenario 设计更简单的实验 API。查看我们的 [tracking issue] 将获取完整路线图。
与我们聊天!
我们非常渴望听你的反馈:
- 加入我们的Matrix �
评论 (0)