wshuyi的个人博客分享 http://blog.sciencenet.cn/u/wshuyi

博文

如何高效入门 Netlogo 复杂系统仿真工具?

已有 1181 次阅读 2021-11-21 20:50 |系统分类:科研笔记

收到了集智俱乐部送来的样书,我很开心。里面还有张江老师的亲笔签名。

这本书基于 张江老师的慕课,采用集智俱乐部的众包模式编写。一上市就经历了脱销状况。

(上图来自于集智俱乐部张倩老师的朋友圈)

为什么销售如此火爆?因为对于很多研究生甚至高年级本科生来说,这个工具属于典型的「科研利器」。说得庸俗一点,就是学后发 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 教学成果了。

早在 2020 年 2 月,我看到张老师集智学园网站的 Netlogo 慕课时,便第一时间欣喜地在公众号和知乎撰文推荐了。有不少同学,顺着我的推荐,学完了这门课程,获得了很大的益处,留言和私信对我表示感谢。

但是,慕课的问题,是复习的时候总会因为成本太高,让人动力不足。例如说你得找到和点开对应视频,不断快进或拖拽找寻当初模糊的记忆。动力不足,人就容易拖延。拖延久了,便干脆忘了这码事儿。

而一旦有了书,效果就大不一样了。这种我们从上学起就熟悉的介质,非常便于随手标注、笔记和复习。结合慕课使用,你可以自主掌握进度,并且通过更为详细的文字,对重难点知识深入学习和揣摩。

本书涵盖的内容,基本上囊括了入门 Netlogo 所需掌握的各种模块。当你真真正正把这十一章内容学完时,你就可以自豪地宣称,已经掌握了 Netlogo 基础。

剩下来的,就是灵活运用你的屠龙宝刀了。

祝建模愉快,早日做出你自己的优秀研究成果!

延伸阅读

如果你觉得本文有用,请点赞

如果本文可能对你的朋友有帮助,请转发给他们。

欢迎关注我的专栏,以便及时收到后续的更新内容。




https://blog.sciencenet.cn/blog-377709-1313382.html

上一篇:《数亦有道》的配套代码和数据资料已复制到国内云环境,你可以更方便下载了
下一篇:如何不写代码,训练人工智能模型?

1 许培扬

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2022-5-20 23:03

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部