如何高效入门 Netlogo 复杂系统仿真工具?
收到了集智俱乐部送来的样书,我很开心。里面还有张江老师的亲笔签名。
这本书基于 张江老师的慕课,采用集智俱乐部的众包模式编写。一上市就经历了脱销状况。
(上图来自于集智俱乐部张倩老师的朋友圈)
为什么销售如此火爆?因为对于很多研究生甚至高年级本科生来说,这个工具属于典型的「科研利器」。说得庸俗一点,就是学后发 paper 更容易。
如果你还不太了解 Netlogo ,以及它对应的 Agent-based Modeling (多主体建模)方法,那我这篇文字,可能会对你有些帮助。
我常把一类知识,算作「武器级」的。其划分标准是,一旦你得到了它,就会与竞争对手形成不对称的优势。
对于研究者来讲,「多主体建模」方法便是这样的一种「武器级」知识。
当别人苦于数据无法获得时,你可以用多主体建模自动「吐出」许许多多的仿真数据。然后欢快地进行分析。
别人的研究投入,可能是无数的时间、金钱和精力。而你,却只需要编写几行代码。
更妙的是,如果有人已经发表了和你类似的研究。那你可以更方便地站在巨人的肩膀上,对别人的模型加以微调,便能得到适合自己研究的环境设定与运行结果。
这么好的事儿,听起来不像真的,对吧?
我们都知道,低垂的果实很难长期存在。因为你看到的机会,别人也同样能看到。这么好的工具,想必你的竞争者们,早就都学会了。不是吗?
还真不是。
因为这样一种研究方法,是有门槛的。
这个门槛,就是编程。
看到「编程」这两个字,许多人会自动放弃。因为传统观念告诉他们,只有学 IT 的人,才能学会编程。若你是一个文科生,便笃定不可能学会。别挣扎了。
实际上,随着时代的进步,技术的发展,「编程」的含义和难度,也在发生变化。
如果你把编程等同于汇编语言或者机器语言,那这个世界上能真正掌握编程的人,必定是少数。甚至连某些「高级语言」,不少人学起来,也是曲线陡峭、困难重重。
但是在多主体建模领域,你却有更好的选择。
这个选择,就是 Netlogo 。
Netlogo 是非常简单的。只需要几行代码,你就能够造出自己的一个虚拟世界,上面各种小动物在自由自在地觅食。
Netlogo 是非常易用的。它提供了观察工具、绘图工具、统计工具,让你搭建模型原型时,快捷无比。还贴心地提供了 Behavior Space 这样的参数「海选」工具,帮助你轻松完成参数搜寻、多轮次仿真,保障实验的可重复性。
Netlogo 是非常实用的。默认安装时,它已经包含了来自各个领域的许许多多经典与前沿模型。让你可以快速找准自己可以借鉴的基础。通过这些模型详细的代码,你可以快速了解可以刻画的现实问题,以及使用注意事项。
简单来说,Netlogo 门槛很低,但是天花板极高。
毫不夸张地说,掌握了它,你就有了发表高水平论文的保障性条件 —— 当然,充分条件还得靠你的领域知识与研究价值。
然而即便是 Netlogo ,也让很多人望而却步。
为什么?
因为缺乏足够好的入门教材。
率先掌握了 Netlogo 的人,往往已经在学术界的某一领域具备了权威地位。他们写书,往往会聚焦于自己一系列的研究。而对于 Netlogo 本身,基本持一笔带过的态度。生怕介绍多了,占用了介绍自己研究成果的宝贵篇幅。
专家们这么做,并非没有道理。因为在他们看来,Netlogo 简单到了这种地步,难道还需要讲解吗?
但是,这就是「幸存者偏见」了。
我更喜欢用「小马过河」来形容这种认知错位。在老水牛的眼里,讨论河水有多深,简直是滑稽和浪费时间。而对于小马来说,这问题很有意义。对于小松鼠,那就是生死存亡的问题了。
确实有的人对于编程有天赋。只需要看 Netlogo 的文档,就能举一反三地学会,并且运用在自己的研究里。
但是,不能漠视,这世界上大多数人,在编程语言方面,并没有这样的超人天赋。而学会 Netlogo ,以便开展研究,却又是他们的刚需。
更要命的是 Netlogo 的语法,实际上来自于一个古老而有魔力的语言家族 ——LISP。
许多让人惊艳的划时代产品,都是这个语言或其变种做出来的(包括我一直在为你推荐的 知识管理应用 Roam Research)。Netlogo 有了这样的基因,才能在简单的外表下,拥有这么强大的能力。嗯,你跟我想到一块儿去了,「披着羊皮的狼」,不过这里是褒义。
不过,狼就是狼,它和羊不一样。如果你之前学过结构化编程或者面向对象编程,那么学 Netlogo 时,还不如一张白纸。
因为这奇怪的语法,会让你很痛苦。
你怎么看,自己写的都对。但是一运行就报错,或是得出让你苦笑不得的离谱结果。
很多已经有了一定编程基础的人,兴致勃勃学完了 Netlogo 自带的简易入门教程后,尝试用在自己研究上。然后…… 很快就被劝退了。快速完成了「从入门到放弃」的全过程。
这说明,Netlogo 的详细入门教程是必须的。
但是很久以来,就是没人做。
因为大部分的专家,觉得没必要,不愿意做。而强烈感受到必要性、愿意做的人,往往也是刚入门的新手,没有这个能力。
2015 年,Bill Rand 终于写了一本 Netlogo 教材。我当时在美国访学,专门买了这本特别厚重的书,放进行李箱背了回来。
但是一来这本书是英文的,二来价格高,我没法儿在给学生上课时作为教材使用。只能推荐他们去看 Bill 的慕课。他们看完了,一脸懵:
老师,全英文的……
所以,看到这本 Netlogo 中文新书。我很欣喜。
其实,这不是我第一次推荐集智学园的 Netlogo 教学成果了。
早在 2020 年 2 月,我看到张江老师集智学园网站的 Netlogo 慕课时,便第一时间欣喜地在公众号和知乎撰文推荐了。有不少同学,顺着我的推荐,学完了这门课程,获得了很大的益处,留言和私信对我表示感谢。
但是,慕课的问题,是复习的时候总会因为成本太高,让人动力不足。例如说你得找到和点开对应视频,不断快进或拖拽找寻当初模糊的记忆。动力不足,人就容易拖延。拖延久了,便干脆忘了这码事儿。
而一旦有了书,效果就大不一样了。这种我们从上学起就熟悉的介质,非常便于随手标注、笔记和复习。结合慕课使用,你可以自主掌握进度,并且通过更为详细的文字,对重难点知识深入学习和揣摩。
张江老师在复杂系统领域深耕多年。作为北京师范大学教授和集智学园的创始人,他的研究基础、教学能力和社区号召力,使得这本书的权威性、趣味性和易读性有了充分的保障。
本书涵盖的内容,基本上囊括了入门 Netlogo 所需掌握的各种模块。当你真真正正把这十一章内容学完时,你就可以自豪地宣称,已经掌握了 Netlogo 基础。
剩下来的,就是灵活运用你的屠龙宝刀了。
祝建模愉快,早日做出你自己的优秀研究成果!
我的新书也欢迎你的支持,谢谢。
延伸阅读
知识星球目前已发布了数十篇精华文章。
我把标题和链接做了个表格,放在了飞书文档。欢迎你通过下面的二维码查看。
请订阅我的微信公众号「玉树芝兰」,如果不加星标,会错过新推送提示。
感觉有用的话,请点「在看」,并且把它转发给你身边有需要的朋友。
欢迎关注我的视频号,时常更新。
由于微信公众平台的限制,文中部分链接可能无法正常显示与跳转。如需访问,请点击文末「阅读原文」链接,查看链接齐备的版本。