python - Python中基于代理的建模:定义一个以timestep为参数的step方法
问题描述
我正在使用 Python 的“mesa”库来定义基于代理的模型。我在定义代理和模型的 step 方法时遇到了问题。特别是,如果代理在模拟的第一个时间步中采取行动,我希望它们以某种方式表现,如果它们操作的时间步在第一个时间步之后,我希望它们以不同的方式表现。我试图实现的方式是(以下是代理步骤方法):
def step(self, timestep):
if timestep == 0:
self.behaviour_1()
else self.behaviour_2()
模型步骤方法将是:
def step(self, timestep):
self.schedule.step(timestep)
self.datacollector.collect(self)
运行文件的结构如下:
for i in range(15):
model.step(i)
不幸的是,当我运行它时,我收到一条错误消息:“step() 采用 1 个位置参数,但给出了 2 个”。我该如何解决这个问题?
解决方案
推荐阅读
- python - Beautifulsoup get_text()函数不起作用
- python-3.x - ModuleNotFoundError:没有名为“astor”的模块
- node.js - Nestjs 在容器启动时退出
- machine-learning - 权重初始化的预训练深度学习模型
- javascript - 将 Node JS 请求转换为 API 以响应 Fetch 语法
- flutter - Flutter 打不开文件路径
- javascript - 如何在导出属性中获取表属性“名称”到文件名 DataTables
- php - PHP中路由的条件
- docker - 为什么我们可以在 docker run 命令行中有更多 time -p 选项
- asp.net-core - asp.net core 3.0 - 如何增加Idle TimeOut