NetLogo 中共有三类主体,分别是:

海龟( Turtles ):海龟指能够在世界中移动的主体。

嵌块( Patches ):嵌块是世界中不能移动的主体,二维世界划分为由嵌块组成的网格,每个嵌块占据一个矩形小块。

观察者( Observer ):观察者是一个全局主体,它观察着由海龟和嵌块构成的世界,能够执行指令获取世界全部或部分的状态,或实现对世界的控制。

三者的关系如下图所示:

2. 主体的空间坐标表达是怎样的?

每个嵌块有二维坐标( pxcor, pycor ),坐标值为整数,默认情况下二维世界的水平垂直坐标范围为( -17, 17 )。

每个海龟也有坐标( xcor, ycor ),海龟的坐标不必是整数,因此海龟不一定正好位于某个嵌块的中心,一个嵌块上可以同时有多个海龟。

3. NetLogo 模型的两大组成部分是什么?

NetLogo 编程包括可视化部件和例程两部分,要运行程序,必须先在界面页( Interface )中创建可视化控件,然后在代码中实现相应的例程( Procedures ),通过设置控件的属性将二者联系起来。

4. 各类控件的主要功能是什么?

NetLogo 共有九类控件,各类控件的功能如下:

按钮( Buttons ):用于执行例程,例如,在“ Wolf Sheep Predation ”模型中的按钮“ setup”、 go” 等。可以选择按钮的执行主体,是否持续执行,设置名称和快捷键等。

滑块( Sliders )、开关( Switches )、选择器( Choosers )、输入框( Text boxes ):这些控件都是参数控件,都对应一个全局变量,将这些全局变量作为参数使用在程序中,就能实现仿真参数的控制。滑块对应于连续型的全局变量,开关对应于逻辑型的全局变量,选择器对应于离散型的全局变量,通过输入框可以直接手动输入全局变量的值。

监视器( Monitors ):用于报告某主体的数量或参数的值,如可以用于报告模型中海龟主体的数量。

图( Plots ):用于可视化输出结果,有线形、条形、点状三种输出形式。

输出区( Output area ):用于展示输出结果的区域。

注释( Notes ):用于对界面页内容的注释,可以对各类界面控件添加注释。

5. NetLogo 例程的基本结构是什么?

程序中至少要有初始化例程和仿真执行例程:

初始化例程实现对模型初始状态的设置,生成所需的海龟,设置其状态。例如,以模型库中的“ Wolf Sheep Predation ”仿真的执行通过例程“ go” 实现,在例程“ go” 中编写所需执行的各种指令。

需要在界面页中建立一个按钮与例程“ go” 相联系,该按钮可以是一个只执行一次( once )的按钮,也可以是一个持续执行( forever )按钮。如果是后者,点击后将不断重复执行例程 go” ,直到遇到停止指令或用户再次点击该按钮则仿真终止。

NetLogo 编程工具介绍

http://mari.hzau.edu.cn/NetLogo_introduction.htm

NetLogo 学习资源

http://mari.hzau.edu.cn/NetLogo_resources.htm