ABM建模导读

By | 2017年5月5日

本文算是一个读书笔记吧,就是最近刚买的那几本书,相较于之前Scott的几本,这几本学术意味比较浓。中间发现这些作者确实有比较有意思的观点和坚实的理论基础,在此记录以用来随时回忆。

1. Introduction to Agent Based Modeling

c0. & c1. 简介

反正ABM应用范围与可观察性相比EBM(基于公式,也就是我们常说的数学建模)更好,但EBM更容易系统集成。

c2. 入门

蚂蚁模型(也就是寻食模型)、网格自动机(复杂科学,在Wolfram之前就有人总结了相当一部分,另外它与有限状态机都属于自动机的一个特例)、英雄与懦夫模型(如果再加上人可以受他人感染的属性那就可以解释为什么某些人领袖特征还有人买账)、简单经济模型(只要人人都奉献,那么穷的越来越穷,富的越来越富,真不是正态分布,开源届或许也是如此^_^)

c3. 继续入门

四个特性:简单规则组成复杂现象,个体随机性导致一致行为,复杂模式可以“自组织”(飞鸟群、大雁群),不同模型反应世界的不同方面;森林大火模型(即渗透模型,可以用来测试系统的鲁棒性,能适用于很多领域,比如IT、经济、社会等);有限分形聚合模型(化学与自然物理模型);谢林模型(求同存异,人以群分啊);EL Farol模型(学习并预测去酒馆)

c4. 进入正题

开篇就遇到一个我十分认同并曾经也说过(哈哈)的话,来自物理学家费曼先生。

我不能理解我造不出来的东西。
OK进入正题,本章是将如何创建模型,有基于现象(模拟)和探索型(比如网格自动机)两种基本模型,但没有明显边界。然后接下来为了让我们快速上手ABM,作者一步步地使用NetLogo构建出了草-羊-狼模型,从而让你理解ABM建模的一般思路。建模运行以后,为了发现或验证规律,我们需要多次运行这个模型,为此NetLogo提供了行为空间(Behavior Space)方便我们多次运行并收集数据。本章末尾,作者提出了ABM与面向对象编程(OOP)异同点的思考,刚接触这个ABM的时候我就发现它俩很像,但以我短浅的经验来看,两者区别不太大,因为它俩的历史出处有非常惊人的相似或相同,要说有的话,ABM是一种思考方法,即一切从代理出发(agent),不必关心代理之间的复杂影响关系(说实话作者这个描述我是反对的,但作为一种思想而言细想又是对的,复杂的模型,复杂的关系,提纲挈领后也非常简单),而OOP。。OK我编不下去了。

c5. 哈哈,实践篇

这章终于讲了个正经模型,红绿灯模型。这不是重点,重点是为了节省汽油,作者引入了最佳速度,并且为控制这个最佳速度,使用了简单的比例控制,然后又说了一下机器学习的作用。敢情我大学几年都在学习机器学习啊。。本章结尾也较为系统地介绍了NetLogo的特性,比如3D、GIS等,其中这个GIS我在建模世界历史时应该会用到。总之本章非常精彩,至少我很满意。

后面6789章就不写出来了,速读了一下,暂时用不到,但很快就用到。

发表评论

电子邮件地址不会被公开。