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