0.1 背景
netlogo 是一个用于繁杂系统的仿真建模工具,它的特点是相对简单好用,语法简单。
官方网址:NetLogo Home Page (northwestern.edu)
它还有 web 页面可以使用。
0.2 工具使用
下载相关工具之后,就可以直接使用。
这是一个基础页面,主要就是上面的控制部分,和下半部分的绘制页面,其中下半部分的按钮都是可以自己创建的。
它支持有这些控制器,常用的就是按钮等。
速度主要用于模型的生成速度,慢一点的时候可以观察的清晰一些,其中 ticks 是在图表显示时需要添加的功能。
视图更新方式,主要是连续更新和按时间步更新,连续更新是按照执行过程更新,ticks 会跳变,如果是按时间步更新,则会按照ticks 一步步更新。后面的设置按钮是对下方黑色方框的配置。
可以去调整整个黑框的大小,以及每一个小块的大小,等等。
这个黑框可以理解成一个世界。在这个世界里分两种东西,一种是不动的东西,在编程语法里叫 patches,一种是运动的,叫 turtles,这两种组合成这个世界,世界也是动的和不动的组合。其中经典的羊吃草就容易理解。羊就是动的,草就是不动的,就可以组合成一种模拟。
下方的命令中心和观察者正是对上方程序运行时的变量监控,相当于一种调试手段,可以观察自己的程序运行的是否正确。
这里有界面,信息,代码三个部分,界面就是看到的显示,信息是一些帮助性的文档编写,代码则是具体操作用的程序设计。
0.3 基础编程语法
Netlogo 在代码编写部分有个基础框架。
比如构建了按钮 setup 和 go,则在代码里面这些变量是可以直接被使用的。等价于底层将界面按钮与代码绑定了。
基础的函数框架
to xxx [variety]
end
这是最基础的函数框架,表示一个函数,将 xxx 换成 setup 就是对 setup 按钮的程序绑定。当然其中的子函数也是这样的规则。
对函数的调用也是直接调用 xxx
xxx (yyy)
直接调用即可,如果有参数则用 ()添加。
之前说在代码层最主要包括 turtles 和 patches,当然也不止这些,在变量定义时,类似于数据的都是如此的存储方式。理解成一个数组或列表。
代码中对这些的操作就是通过 ask 来实现。
ask turtles [
]
这样就相当于对 turtles 的所有子变量进行操作。相当于一种 for 循环。用 [] 表示函数范围。
其它详细的语法可以看官网。