序一
NetLogo是一个用来对自然和社会中多种复杂现象进行计算机模拟的可编程软件,它提供了一个建模和仿真的计算机实验环境,供用户对各种复杂现象进行模拟、显示、分析和研究。
NetLogo最早由美国西北大学的Uri Wilensy 教授于1999年设计编写,由该校的“互联学习与基于计算机建模研究中心”(Center for ConnectedLearning and Computer-Based Modeling)于2002年成功开发,目前最新版本为NetLogo 6.2.0。
北京师范大学的张江老师开设有一门名为“复杂性思维”的本科生课程,使用NetLogo来讲授复杂性科学的综合知识,包括混沌、秩序、自催化网络、涌现、混沌边缘、热力学第二定律、分形、复杂网络、自我指代等内容。他于2020年开设了一门线上课程“NetLogo多主体建模入门”,讲授NetLogo的各种操作和语法技术细节,配合“复杂性思维”的教学,效果甚佳。本书是该线上课程讲稿的大集成文字版。
本书分上下两篇:上篇包括前五章,主要介绍NetLogo的基本语法和基本概念;下篇包括余下六章,其中除了进一步介绍NetLogo的基本操作和语法外,还介绍和讨论了大量复杂性科学、数学、物理学等领域的内容和案例,包括概率分布、数值积分、基尼系数、洛伦兹曲线等。形式上,则以有趣的生命游戏、鸟群飞行、生态系统、财富分布、病毒传播以及复杂网络和系统动力学为载体,进行解释和演绎。通过学习这些基本知识和技巧,读者将能够使用NetLogo随心所欲地搭建各种各样描述自然和社会科学中复杂现象的模型,并在计算机上做各种模拟。
这是一本难得的好书,是国内系统介绍NetLogo的开荒之作,适合数理及人文多个领域的学生和学者阅读和参考,值得广泛推荐。
陈关荣
香港城市大学
2021年6月1日
序二
我常把一类知识算作“武器级”的。其划分标准是,你一旦得到它,就会与竞争对手形成不对称的优势。对于研究者来讲,多主体建模方法便是这样一种“武器级”的知识。
当别人苦于数据无从获得时,你可以用多主体建模自动“吐出”许许多多模拟数据,然后欢快地进行分析。别人的研究投入,可能是大量的时间、金钱和精力。而你,只需要编写几行代码。更妙的是,如果有人已经发表了和你类似的研究,那你就可以更方便地站在巨人的肩膀上,对别人的模型加以微调,得到适合自己研究的环境设定与运行结果。
这么好的事儿,听起来不像是真的,对吧?我们都知道,低垂的果实很难长期存在,因为你看到的机会,别人同样能看到。这么好的工具,想必你的竞争者们早就学会了,不是吗?
还真不是,因为这样一种研究方法是有门槛的。这个门槛,就是编程。看到“编程”这两个字,许多人会自动放弃,因为传统观念告诉他们,只有学IT的人,才能学会编程,若你是文科生,便笃定不可能学会。
实际上,随着时代的进步、技术的发展,“编程”的含义和难度也在发生变化。如果你把编程等同于汇编语言或者机器语言,那这个世界上能真正掌握编程的人,必定是少数。甚至连某些高级编程语言,不少人学起来也是困难重重。
但是在多主体建模领域,你却有更好的选择。这个选择,就是NetLogo。
NetLogo非常简单。只需要几行代码,你就能够创造出一个虚拟世界,里面各种小动物在自由自在地觅食。
NetLogo非常易用。它提供了观察工具、绘图工具、统计工具,让你在搭建模型原型时,快捷无比。它还贴心地提供了BehaviorSpace这样的参数“海选”工具,帮助你轻松完成参数搜寻、多轮次模拟,保障实验的可重复性。
NetLogo非常实用。默认安装时,它已经包含了来自各个领域的许许多多的经典模型与前沿模型,让你可以快速地找准自己可以借鉴的基础。通过这些模型的详细代码,你可以快速了解可以刻画的现实问题,以及使用时的注意事项。