今天给大家推荐一本难得的好书——《NetLogo多主体建模入门》。
千万别被书名吓到了,这本书非常有趣,也非常有用,是国内系统介绍 NetLogo 的开荒之作,由北师大张江教授和集智学园精心打造,适合各个专业领域的学生和学者阅读,不需要任何编程基础,就能轻松掌握计算机模拟。
计算机模拟,又叫计算机仿真,就是让你在计算机上快速验证大脑中的想法。你可能对很多问题都充满了兴趣,比如,飞鸟如何聚集成群?商贩们相互竞争如何形成最终的猪肉价格?股票价格为何会暴涨暴跌?新冠病毒为什么传播得这么快?什么才是最好的防疫手段?对此,你可能有一些非常有价值的想法,借助计算机模拟,你就可以快速验证这些想法。 “给我一台计算机,我能模拟整个宇宙。”随着近几年计算机模拟技术的突飞猛进,无论是庞大广袤的宇宙、神奇的细胞生命现象,还是人脑智能现象,全部都可以通过计算机程序模拟和实现。为什么计算机模拟可以做各种系统的仿真和模拟呢?因为计算机是一个天然的模拟世界。我们知道,宇宙是由时间、空间和物质构成的。那么对于一台计算机来说,它的 CPU 就是模拟世界的时间,内存就是模拟世界的空间,物质其实就是那些 0、1 编码,而所谓的程序,其实就是模拟世界中的物理法则。计算机还可以模拟各种复杂系统的运作。复杂系统是指大量微观个体通过相互作用而链接形成的整体。比如,前面提到的鸟群就是一个复杂系统,每只鸟都会跟随前面鸟的飞行而调整自己的飞行方向;再比如,自由市场也是一个复杂系统,每个买家和卖家都在一个共同的市场中互动,从而逐渐形成每一种商品的价格。只要能在计算机中模拟出这些微观个体的互动规则,就能在计算机模拟的世界中观察它们宏观的互动结果了。你便可以轻松地将自己的构想输入到计算机模拟程序中,并观察它的运行结果,从而验证自己的想法了。工欲善其事,必先利其器。要想进行计算机模拟,就必须借助专业的多主体模拟平台,这样才会让你更省力。目前已有不少多主体模拟平台,比如 Swarm、Repast,以及 Anilogoic 和 NetLogo 等。而在所有这些平台中,NetLogo 是最适合入门的好工具。
NetLogo 是一款专门用于搭建模拟世界的软件,可以在任何计算机上运行,非常简单易用。使用 NetLogo,你可以对自然和社会中的各种复杂现象进行模拟、分析和研究。而且 NetLogo 上手简单、范例丰富、功能强大,特别适合初学者使用。在张江老师给一年级本科学生上的“复杂性思维”这门课程中,NetLogo 是他们的必学工具。事实证明,无论什么专业,哪怕是文科生,所有一年级的本科生都能轻松入门,动手开发出简单的多主体模拟程序。NetLogo 之所以这么友好,首先,是因为它的界面异常地简单清晰,新手可以很轻松地在上面开发程序。只需要点几下鼠标,写下几行代码,就可以完成一个多主体模拟程序。其次,NetLogo 采用了一种类似于自然语言(英语)的语法,自然且直接,没有任何编程基础的人可能会比有一定编程基础的人更容易上手。学习 NetLogo 需要借鉴很多优秀的代码范例。安装 NetLogo 之后,你就会自动获得一个丰富的范例库,其中有上百个不同领域的多主体模型。所以,你完全不需要自己从零开始构建模型,而是可以借鉴这些范例库,然后加以改造。这样,你不仅可以学到 NetLogo 高手是如何写程序的,还能够更加高效地完成自己的任务。
尽管 NetLogo 有着“傻瓜式”的界面和语法,但并不意味着它功能简单。事实上,随着使用 NetLogo 的经验越来越丰富,你会发现这是一个深不见底的巨大宝库。
首先,你既可以按照默认模式把它当作模拟世界中的乐高玩具去搭积木,也可以将面向对象编程、并行计算,甚至是分布式人工智能等高端理念揉进自己的 NetLogo 程序之中,它都能胜任。总之,NetLogo 是一个通用的编程工具,理论上,它可以实现任何任务。其次,NetLogo 其实不仅仅是一个编程工具,它还是一个平台,集成了很多其他工具。比如,要想完成系统动力学的模拟,你可以使用它的“System Dynamics Modeler”模块;为了重复实验并分析数据,你可以使用它的“BehaviorSpace”模块。最后,NetLogo 还有很多高级玩法。你可以将 NetLogo 与 C 语言或著名的数学软件 Mathematica 相连,从而动态地调用这些开发工具的强大功能。你甚至可以将 NetLogo 布局到局域网环境中,实现多台计算机的联动,从而完成一些小型的多人博弈实验。总之,NetLogo 非常好用,不仅是一种研究工具和模型可视化工具,更是一种系统性思维工具,可以帮助你发掘人类社会、自然科学之间的普适性联系。
集智《NetLogo多主体建模入门》配套课程、学习社群详见:
入门复杂性科学,从Netlogo课程开始 | NetLogo多主体建模社群正式启动
本书从大量跨学科、跨领域的实际案例入手,循序渐进地讲解了 NetLogo 的使用方式、基本语法、设计思想,以及背后的计算机模拟、多主体建模、复杂性科学的基本理念和数理建模的常用方法,包括数值计算、微分方程、动力系统、概率统计等。书中包含大量有趣的案例,如生命游戏、鸟群飞行、朗顿蚂蚁、生态系统、财富分布、病毒传播等。通过学习这些基本知识和技巧,读者将能够使用 NetLogo 随心所欲地搭建各种各样描述自然和社会科学中复杂现象的模型,并在计算机上做各种模拟。集智俱乐部(Swarma Club),成立于 2003 年,是一个从事学术研究、享受科学乐趣的探索者团体,也是国内最早研究人工智能、复杂系统的科学社区之一,倡导以平等开放的态度、科学实证的精神,进行跨学科的研究与交流,力图搭建一个中国的“没有围墙的研究所”。编写、翻译过多本科普著作,著作有《科学的极致:漫谈人工智能》《走近 2050:注意力、互联网与人工智能》《深度学习原理与 PyTorch实战》,译作有《深度思考:人工智能的终点与人类创造力的起点》等。
编写:张江,北京师范大学系统科学学院教授、博士生导师,集智俱乐部创始人、集智学园创始人。张爱华,集智俱乐部复杂系统管理读书会主理人。张倩,集智学园联合创始人兼CEO。
审校:王欢,华东师范大学社会学系学生、集智NetLogo社区成员。
封面:王建男,集智学园品牌总监,集智俱乐部社会计算读书会主理人。
这是一本难得的好书,是国内系统介绍 NetLogo 的开荒之作,适合数理及人文多个领域的学生和学者阅读和参考,值得广泛推荐。
——陈关荣,香港城市大学讲座教授,欧洲科学院院士,发展中国家科学院院士
本书基本上囊括了入门 NetLogo 所需掌握的各种模块。只要你真真正正把这11章内容学完,就能成功掌握 NetLogo 的基础。剩下的,就是灵活运用你的“屠龙宝刀”了。
——王树义,天津师范大学副教授,公众号“玉树芝兰”主理人,少数派网站专栏作者
未来的世界,人人都需要编程思维;而从还原论思维走向系统论思维,NetLogo 是一个好选择。NetLogo,让复杂的世界变得简单。
——王小川,北京搜狗科技发展有限公司 CEO
NetLogo 软件不仅是一种研究工具和模型可视化工具,更是一种系统性思维,必将揭示人类社会、自然科学之间的普适性联系。
——吕鹏,中南大学公共管理学院教授、社会计算研究中心主任,教育部青年长江学者
随着科学技术的进步和国家建设的发展,我们面临越来越多的复杂性问题。NetLogo 就是复杂系统建模的有利工具。本书用清新的写作手法带领读者快速了解 NetLogo,并通过一系列鲜活有趣的例子,带领读者一窥复杂系统建模的殿堂。
——韩战钢,北京师范大学系统科学学院教授、副院长