Netlogo基础知识讲解
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
❖ observer是一个全局主体,它观察着由turtles和 patches构成的世界,能够执行指令获取世界全部或 部分的状态,或实现对世界的控制。
虚拟世界
Observer Turtle Patch
(2)空间表达
❖ 每个patch有二维坐标(pxcor,pycor)坐标值为整数。 ❖ 默认情况下,二维世界的水平、垂直坐标范围为(-17,17)
turtles(海龟) patches(瓦片) observer(观察者)
主体类型
❖ turtles指能够在世界中移动的主体。 ❖ 世界是二维的,划分为由patches组成的网格,每个
patch占据一个矩形小块。
patch不能移动 patch也是主体 patch和turtle一样可以有自己的属性和行为
[setxy random-xcor random-ycor]
end
2.仿真执行例程
❖ 实现turtle随机移动 ❖ 实现go例程,与forever按钮联系 ❖ go 调用move-turtles例程
NetLogo简介
1.基本情况 ❖ NetLogo是一个用来对自然和社会现象进行
仿真的可编程建模环境建模仿真集成环境
❖ 由美国西北大学连接学习与计算机建模中心 (Center for Connected Learning and Computer-Based Modeling,CCL)开发。
❖ 2002年发布了1.0版本,用户手册为4.0.2版 本,最新为4.1.1版本
2.建模基本过程
❖ NetLogo模型包括可视化部件和例程两部分, 二者具有紧密联系。
❖ 先在Interface中创建可视化控件,然后在 Procedures中实现相应的代码,通过设置控 件的属性将二者联系起来。
❖ Interface中主要有三类部件
运行控制 参数控制 仿真显示
❖ Procedure中的例程分为两类:
命令(command)例程 报告(reporter)例程
仿真的基本框架
初始化to setup
每一个仿 真周期to
go
对所有Turtle循环 ask turtles
每个Turtle做出决策 forward 1
否
是否结
束?
是
结束
三、编程指南
❖ breed [ ] ❖ turtles-own [ ] ❖ globals [ ] ❖ to setup [ ] end ❖ to go [ ] end ❖ ask turtles [ set pcolor white ] ❖ set-default-shape turtles "person" ❖ setxy random-xcor random-ycor
❖ if ❖ ifelse
四、生态系统建模示例
❖ 假设要模拟一个简单的生态系统, ❖ 该系统中有一种生物以青草为食,通过吃草
获取能量、 ❖ 该类生物经历成长、繁殖、死亡过程。
1. 初始化
❖ 创建生物群体,并将它们随机分布在空间中。
❖ 例程(demo1)
to setup
;;定义例程setup
clear-all
2. 主要功能
❖ 多主体建模(重点)
多个移动Agent分布在二维空间中,每个Agent自主行动,所有主体 并行异步更新,整个系统随着时间推进而动态变化。
❖ 运行控制 ❖ 仿真输出
提供了多种手段实现仿真运行监视和结果输出
❖ 实验管理
BahaviorSpace,自动管理仿真运行,并记录结果。
❖ 系统动力学仿真 ❖ 参与式仿真
❖ set turtles-own random ❖ set age ( 22 + random 53 ) ❖ set age ( age + 1 ) ❖ set house 0
❖ clear-all(ca) ❖ forward(fd) 1
❖ create-turles 100 ❖ sprout-breeds number [ ] ❖ sprout number [ ] ❖ hatch number [ ] ❖ hatch-breeds number [ ] ❖ ask one-of men [set breed ]
;;设置整个世界为初始状态
;;创建100个turtles,创建后各turtle默认坐标是(0,0)
create-turtles 100
;;命令所有turtle执行语句setxy random-xcor random-ycor
;;各turtle 坐标随机产生,实现turtles在空间中的随机分布
awenku.baidu.comk turtles
HubNet
❖ 模型库
3.软件特色
❖ 完全可编程 ❖ 简单语言结构 ❖ 是LOGO语言的扩展,支持智能体和网络结
构 ❖ 可以定义无限个智能体和变量 ❖ 多种内置命令帮助使用 ❖ 支持整型和双精度型浮点数计算 ❖ 跨平台、可复用的应用。
二、NetLogo仿真框架
1. NetLogo软件
2.模型的抽象
❖ 仿真推进是通过不断重复执行某个例程实现的 ❖ 模型中至少要有初始化例程和仿真执行例程
初始化例程实现对模型初始状态的设置,生成所需的 turtles,设置其状态,以及其它工作。
仿真的执行通过例程go实现,在go例程中编写所需执行 的各种指令,完成一个仿真步的工作。
需要在Interface页中建立一个按钮与go例程相联系,该 按钮是一个永久(forever)按钮,点击后将不断重复执行 go例程,直到遇到stop指令或用户再次点击该按钮则仿 真终止。
❖ 总体:
大量的可移动主体在二维空间中交互作用,随着 时间推进,微观个体的属性不断发生变化,系统 的宏观特征也因此而变化。
❖ 从三个方面理解:
主体 空间表达 仿真推进
(1)主体(Agents)
❖ 虚拟世界由主体构成,主体能够接受命令, 进行活动,所有主体的行为并行发生。
❖ NetLogo中共有三类主体,
❖ 每个turtle也有坐标(xcor,ycor)
turtle坐标不必是整数,因此turtle不一定正好位于某个patch的中心。
❖ 一个patch上也可以同时有多个turtles。 ❖ 实际上对turtle而言,NetLogo的空间是连续的。
(3)仿真推进
❖ 没有明确的仿真时钟变量,也没有提供特定的事件 处理机制
虚拟世界
Observer Turtle Patch
(2)空间表达
❖ 每个patch有二维坐标(pxcor,pycor)坐标值为整数。 ❖ 默认情况下,二维世界的水平、垂直坐标范围为(-17,17)
turtles(海龟) patches(瓦片) observer(观察者)
主体类型
❖ turtles指能够在世界中移动的主体。 ❖ 世界是二维的,划分为由patches组成的网格,每个
patch占据一个矩形小块。
patch不能移动 patch也是主体 patch和turtle一样可以有自己的属性和行为
[setxy random-xcor random-ycor]
end
2.仿真执行例程
❖ 实现turtle随机移动 ❖ 实现go例程,与forever按钮联系 ❖ go 调用move-turtles例程
NetLogo简介
1.基本情况 ❖ NetLogo是一个用来对自然和社会现象进行
仿真的可编程建模环境建模仿真集成环境
❖ 由美国西北大学连接学习与计算机建模中心 (Center for Connected Learning and Computer-Based Modeling,CCL)开发。
❖ 2002年发布了1.0版本,用户手册为4.0.2版 本,最新为4.1.1版本
2.建模基本过程
❖ NetLogo模型包括可视化部件和例程两部分, 二者具有紧密联系。
❖ 先在Interface中创建可视化控件,然后在 Procedures中实现相应的代码,通过设置控 件的属性将二者联系起来。
❖ Interface中主要有三类部件
运行控制 参数控制 仿真显示
❖ Procedure中的例程分为两类:
命令(command)例程 报告(reporter)例程
仿真的基本框架
初始化to setup
每一个仿 真周期to
go
对所有Turtle循环 ask turtles
每个Turtle做出决策 forward 1
否
是否结
束?
是
结束
三、编程指南
❖ breed [ ] ❖ turtles-own [ ] ❖ globals [ ] ❖ to setup [ ] end ❖ to go [ ] end ❖ ask turtles [ set pcolor white ] ❖ set-default-shape turtles "person" ❖ setxy random-xcor random-ycor
❖ if ❖ ifelse
四、生态系统建模示例
❖ 假设要模拟一个简单的生态系统, ❖ 该系统中有一种生物以青草为食,通过吃草
获取能量、 ❖ 该类生物经历成长、繁殖、死亡过程。
1. 初始化
❖ 创建生物群体,并将它们随机分布在空间中。
❖ 例程(demo1)
to setup
;;定义例程setup
clear-all
2. 主要功能
❖ 多主体建模(重点)
多个移动Agent分布在二维空间中,每个Agent自主行动,所有主体 并行异步更新,整个系统随着时间推进而动态变化。
❖ 运行控制 ❖ 仿真输出
提供了多种手段实现仿真运行监视和结果输出
❖ 实验管理
BahaviorSpace,自动管理仿真运行,并记录结果。
❖ 系统动力学仿真 ❖ 参与式仿真
❖ set turtles-own random ❖ set age ( 22 + random 53 ) ❖ set age ( age + 1 ) ❖ set house 0
❖ clear-all(ca) ❖ forward(fd) 1
❖ create-turles 100 ❖ sprout-breeds number [ ] ❖ sprout number [ ] ❖ hatch number [ ] ❖ hatch-breeds number [ ] ❖ ask one-of men [set breed ]
;;设置整个世界为初始状态
;;创建100个turtles,创建后各turtle默认坐标是(0,0)
create-turtles 100
;;命令所有turtle执行语句setxy random-xcor random-ycor
;;各turtle 坐标随机产生,实现turtles在空间中的随机分布
awenku.baidu.comk turtles
HubNet
❖ 模型库
3.软件特色
❖ 完全可编程 ❖ 简单语言结构 ❖ 是LOGO语言的扩展,支持智能体和网络结
构 ❖ 可以定义无限个智能体和变量 ❖ 多种内置命令帮助使用 ❖ 支持整型和双精度型浮点数计算 ❖ 跨平台、可复用的应用。
二、NetLogo仿真框架
1. NetLogo软件
2.模型的抽象
❖ 仿真推进是通过不断重复执行某个例程实现的 ❖ 模型中至少要有初始化例程和仿真执行例程
初始化例程实现对模型初始状态的设置,生成所需的 turtles,设置其状态,以及其它工作。
仿真的执行通过例程go实现,在go例程中编写所需执行 的各种指令,完成一个仿真步的工作。
需要在Interface页中建立一个按钮与go例程相联系,该 按钮是一个永久(forever)按钮,点击后将不断重复执行 go例程,直到遇到stop指令或用户再次点击该按钮则仿 真终止。
❖ 总体:
大量的可移动主体在二维空间中交互作用,随着 时间推进,微观个体的属性不断发生变化,系统 的宏观特征也因此而变化。
❖ 从三个方面理解:
主体 空间表达 仿真推进
(1)主体(Agents)
❖ 虚拟世界由主体构成,主体能够接受命令, 进行活动,所有主体的行为并行发生。
❖ NetLogo中共有三类主体,
❖ 每个turtle也有坐标(xcor,ycor)
turtle坐标不必是整数,因此turtle不一定正好位于某个patch的中心。
❖ 一个patch上也可以同时有多个turtles。 ❖ 实际上对turtle而言,NetLogo的空间是连续的。
(3)仿真推进
❖ 没有明确的仿真时钟变量,也没有提供特定的事件 处理机制