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