ABM | NetLogo:打开复杂系统奇幻世界的一把钥匙
当收到集智CEO张倩女士寄来的这本《NetLogo多主体建模入门》赠书时,作为一枚ABM(Agent-based modeling)狂热爱好者和集智的骨灰级老粉,我是有些难掩心中兴奋的。原因有二:
一是ABM作为复杂系统研究的重要方法论和技术工具之一,在过去的二三十年间取得了长足的发展,其“自底向上”的建模思路,通过“涌现”机制在微观个体行动和宏观系统现象之间建立起联系的纽带,因此为人们探索和研究社会、经济、组织管理、生态、工程等诸多领域的复杂现象和规律提供了强有力的支持。但有些遗憾的是,时至今日,市面上能够看到的这方面优秀中文图书仍然寥寥无几。虽有一批优秀的外文教程相继出版,如Uri Wilensky和William Rand合著的《An Introduction to Agent-Based Modeling: Modeling Natural, Social, and Engineered Complex Systems with NetLogo》(2015)、Steven F. Railsback 和 Volker Grimm合著的《Agent-basedand Individual-based Modeling: A Pratical Introduction》(2019,第2版)等。但是中文资料的欠缺,总是给国内初学者带来了不小的困难和挑战。因此可以讲,本书的出版较好地填补了这一空白。
二是本书由集智俱乐部创始人、北京师范大学系统科学学院教授张江老师领衔,整合集智俱乐部优质资源倾心编写。从集智早期的线下读书会,到近年来相继推出的系列线上课程和专题研讨活动,我深知张江老师团队在复杂系统研究方面的高深造诣。由张江老师在其团队精心打造的同名线上课程基础上整理出版该书,其学术权威性自不待言。同时,本书在语言表述上又很好地继承了张江老师授课一贯的深入浅出、通俗易懂风格。虽然是一本“编程书”,但翻开细读,你会发现字里行间毫无生硬晦涩之言,而是如行云流水、娓娓道来。陈关荣老师在序言中称赞“这是一本难得的好书,是国内系统介绍NetLogo的开荒之作”,实不为过。
为什么要学习NetLogo呢?
为什么要学习NetLogo呢?
第一,相比于AnyLogic和Matlab等商业化软件,NetLogo开源免费,而且拥有强大的社区支持(如Github、Stackoverflow)。这无疑是大多青年学者和学生党的福音。
第二,上手简单。NetLogo界面异常地简单而清晰,编程语法几乎完全接近自然语言。即便没有任何编程基础,也很容易轻松上手。
第三,就是NetLogo拥有丰富的案例库,内容涵盖生物、化学、复杂网络、社会科学等众多领域。既有完整示例,也有专门针对基本编程语法的code examples。可以说,不管你来自哪一研究领域,无论你是初学菜鸟还是编程高手,案例库中总有一款适合你,助你仿真编程一臂之力。
第四,NetLogo虽然界面和编程语法都极其简单,但这似乎并不影响其强大的功能,如Behavior space模块用于实验设计和仿真实验、HubNet模块用于分布式(参与式)仿真、System Dynamics模块用于系统动力学建模等等。
下表比较了在ABM早期阶段出现的四种主流软件的特征。虽然目前也有Matlab、Anylogic等商业化软件以及AgentPy开源库,但对于ABM的入门者、尤其是缺乏编程基础的文科生,NetLogo仍然是一个比较理想的选择。
拥有NetLogo,你就如同拥有了一间装备齐全的“超级实验室”。你完全可以从某一特定理论假说作为开展研究工作的起点,凭借天马行空地想象去设定各种问题场景,然后通过简单代码即可得到仿真运行结果,验证和发展既有的假说。这样一种思想实验工具,正是ABM的强大威力所在,也为我们叩开复杂系统奇幻世界的大门提供了一把钥匙。
集智《NetLogo多主体建模入门》配套课程、学习社群详见:
入门复杂性科学,从Netlogo课程开始 | NetLogo多主体建模社群正式启动