python-mesa:Agent Based Model 简单教程
基于代理的模型是一种计算机模拟,涉及多个实体(代理),这些实体根据它们的编程行为互相作用和交互。代理可以用来代表活细胞,动物,个人,甚至整个组织或抽象实体。有时,我们可能会对系统中各个组件的行为有所认识,并希望研究各个部分在系统整体层面上产生的行为和效果;而在其他时候,我们可能希望研究系统的整体行为。
它适合研究各种模型仿真主体(代理人,也就是Agent)的合作与竞争关系。
安装:
pip install mesa
示例1:随机发红包游戏
假设有一个群,里面有十个人,游戏规则是这样的:
每个人初始有一元钱,游戏开始后,每轮每人随机选定群里的一个人(可以是自己)发一个1元红包。如果钱数为0,本轮就不用发。
游戏进行10轮,试着用代码描述这样的过程。
过程有三步:设置模型,添加调度器,进行仿真。
仿真主要有Agent和Model两类,一般在Agent中用面向对象的方式定义不同Agent中的竞争合作关系;而Model类用来管理若干个Agent,
from mesa import Agent, Model
from mesa.time import RandomActivation
class MoneyAgent(Agent):
"带有固定初始财富的代理人Agent。"
def __init__(self, id, model):
super().__init__(id, model) # 自