NetLogo学习笔记4 —— 可变参数与谢林模型
在上一篇文章,我们学习了if语句,设置属性,添加新属性,定义变量,集合筛选等知识,还实现了康威生命游戏。
这回,我们学习如何在模型运行时改变参数,以及实现谢林模型
在打开软件写代码之前,让我们先来了解一下 —— “谢林模型” 是什么?
什么是谢林模型?
谢林模型由美国经济学家托马斯·谢林发明的一个模型,描述趋同性对于空间隔离的影响,揭示了种族隔离背后的原理
谢林模型的描述如下:
- 在有限二维网格中居住着一群人,每个人可能是A型或B型,用于代表两类不同的人
- 定义一个阈值T,若一个人周围的同类人占比小于T,那么这个人就会移动到新的空位
我们用红海龟代表A型,绿海龟代表B型,没有海龟的瓦片即空位
我们用一个可变的参数number和T,来表示人数和阈值
我们打开NetLogo软件,创建好setup按钮和go按钮及函数,先把基本要素搭建好,然后想想代码思路:
- 我们需要声明可变参数number和T
- 我们要随机生成两种人,即随机生成红绿两色的海龟
- 我们要判断每个海龟所在位置是否符合居住条件
- 让不符合条件的海龟移动到另一个瓦片的中心上
在开始制作模型之前,让我们先把模型调到合适大小,因为默认大小实在太小了