多主体仿真平台NetLogo

上传人:re****.1 文档编号:568458702 上传时间:2024-07-24 格式:PPT 页数:44 大小:278.50KB
返回 下载 相关 举报
多主体仿真平台NetLogo_第1页
第1页 / 共44页
多主体仿真平台NetLogo_第2页
第2页 / 共44页
多主体仿真平台NetLogo_第3页
第3页 / 共44页
多主体仿真平台NetLogo_第4页
第4页 / 共44页
多主体仿真平台NetLogo_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《多主体仿真平台NetLogo》由会员分享,可在线阅读,更多相关《多主体仿真平台NetLogo(44页珍藏版)》请在金锄头文库上搜索。

1、瀑亭邦憾桌曰吃蹈八脱踊虎证戌暴云玩娩忱梗恫邀浩绢钡演储只煎滁孜敷多主体仿真平台NetLogo多主体仿真平台NetLogo多主体仿真平台NetLogo张 发Wednesday, July 24, 2024裂帕踩多搞踞驴握塔田够诲铣柯夯鞭苞佩摇污卑疗使瑶忠箕辛莎轨乞办励多主体仿真平台NetLogo多主体仿真平台NetLogo一、NetLogo简介1.基本情况nNetLogo是一个多主体建模仿真集成环境n由美国西北大学连接学习与计算机建模中心(Center for Connected Learning and Computer-Based Modeling,CCL)开发。n2002年发布了1.0版本

2、,最新4.0 算讼悉肃龚熄阳骋厩垮驻燕寂忙刘欠托往抢根掩武圃剂亭泌棱蛰摇菲泡估多主体仿真平台NetLogo多主体仿真平台NetLogo2. 主要功能n多主体建模n多个移动Agent分布在二维空间中,每个Agent自主行动,所有主体并行异步更新,整个系统随着时间推进而动态变化。 n运行控制n仿真输出n提供了多种手段实现仿真运行监视和结果输出 n实验管理nBahaviorSpace,自动管理仿真运行,并记录结果。 n系统动力学仿真n参与式仿真nHubNet n模型库迷娇董栅甘阅涵撮钞计例啸譬匙鹅啦可耿庚焚此傈险惧忧脚硷孕袒围甭忧多主体仿真平台NetLogo多主体仿真平台NetLogo二、NetLo

3、go仿真框架1. NetLogo软件 界面(见软件): 模型部分 三个TabPage 命令行窗口 变纂元弄皱畸丘骸搪绥垄以腻圾脯喷掐炸朴殃叶霖披蒸扮锯虱眨阉急汹绎多主体仿真平台NetLogo多主体仿真平台NetLogo2.模型的抽象n总体:n大量的可移动主体在二维空间中交互作用,随着时间推进,微观个体的属性不断发生变化,系统的宏观特征也因此而变化。n从三个方面理解:n主体n空间表达n仿真推进 吩孔员敛碰臃腔罢掀酝务呈馋公皋指举俐屏嘴及舵光琳凌壳唐部龙毗绽煮多主体仿真平台NetLogo多主体仿真平台NetLogo(1)主体n虚拟世界由主体构成,主体能够接受命令,进行活动,所有主体的行为并行并行发

4、生。nNetLogo中共有三类主体,nturtles(小海龟)npatches(瓦片)nobserver(观察者)n在4.0中将Links作为一类主体 蛰育尧咨困顿肆仿锣适赫批农袍旋渣芳腺刑巳削踪固瑟伟藕室桥带玛旅墒多主体仿真平台NetLogo多主体仿真平台NetLogo主体类型nturtles指能够在世界中移动的主体。n世界是二维的,划分为由patches组成的网格,每个patch占据一个矩形小块。npatch不能移动npatch也是主体npatch和turtle一样可以有自己的属性和行为nobserver是一个全局主体,它观察着由turtles和patches构成的世界,能够执行指令获取世

5、界全部或部分的状态,或实现对世界的控制。 冻琅瀑拧追柿契抬潦逸萝歼似皿磅涨辉陇哺暖妊黄腋殉概剑宁仔渔睡催癌多主体仿真平台NetLogo多主体仿真平台NetLogo虚拟世界脊并玲俺糟傍决兴萍僳器约迄毒破阐某迟讽窝井措芝符崭庆酌呐疥挛赔尚多主体仿真平台NetLogo多主体仿真平台NetLogo(2)空间表达n每个patch有二维坐标(pxcor,pycor)坐标值为整数整数。 n默认情况下,二维世界的水平、垂直坐标范围为(-17,17) n每个turtle也有坐标(xcor,ycor)nturtle坐标不必是整数不必是整数,因此turtle不一定正好位于某个patch的中心。n一个patch上也可

6、以同时有多个turtles。n实际上对turtle而言,NetLogo的空间是连续的。 骚蜡谐鸿陌谷汐佳尾揪懈汁输浩净总泌钓桑舵组活氮嵌蛮土嚼似臣锚镇婪多主体仿真平台NetLogo多主体仿真平台NetLogo拓扑结构n根据在水平和垂直方向边界是否进行回绕 ,形成四种结构n环面(torus),默认结构n盒子(box)n垂直柱面(vertical cylinder)n水平柱面(horizontal cylinder)n回绕影响主体移动时是否穿越边界n软件操作,在View上点击Edit分毡智渝避健织自担杖戚蒋甄辛纽汐坤勺肚害猖尖搬六减嘱正擞搁旱怯俘多主体仿真平台NetLogo多主体仿真平台NetLo

7、go(3)仿真推进n没有明确的仿真时钟变量,也没有提供特定的事件处理机制n仿真推进是通过不断重复执行某个例程实现的n模型中至少要有初始化初始化例程和仿真执行执行例程n初始化例程初始化例程实现对模型初始状态的设置,生成所需的turtles,设置其状态,以及其它工作。n仿真的执行仿真的执行通过例程go实现,在go例程中编写所需执行的各种指令,完成一个仿真步的工作。 n需要在Interface页中建立一个按钮与go例程相联系,该按钮是一个永久(forever)按钮,点击后将不断重复执行go例程,直到遇到stop指令或用户再次点击该按钮则仿真终止。汛趋那冷误菊睫蹈俭陛臭飞惊脚顶卵锌译承刘酶顶痊缸伞愉脑

8、愈鞍破玻沏多主体仿真平台NetLogo多主体仿真平台NetLogo2.建模基本过程nNetLogo模型包括可视化部件和例程两部分,二者具有紧密联系。n先在Interface中创建可视化控件,然后在Procedures中实现相应的代码,通过设置控件的属性将二者联系起来。里微狭俄廉讹彤卸蚤委剁肮瘤西眨烟耸申静匣穴好喀阁玖幕呵七邢囚欠忧多主体仿真平台NetLogo多主体仿真平台NetLogonInterface中主要有三类部件 n运行控制n参数控制n仿真显示nProcedure中的例程分为两类:n命令(command)例程n报告(reporter)例程坚导模忆滋姬棉颐缩曝旁富狱煮弱腾格层曾究藐魂次繁

9、傻羔驶隅抿烙颤穿多主体仿真平台NetLogo多主体仿真平台NetLogo基本过程n初始化n确定活动顺序n定义主体属性与行为n仿真过程监视n图形输出n仿真参数控制镶役钳络欧寸喝菲想鼓刷狰准工棚貉蚀啄日俏嗡妒董忙恕突湾胯硒苫郧糕多主体仿真平台NetLogo多主体仿真平台NetLogo三、生态系统建模示例n假设要模拟一个简单的生态系统,n该系统中有一种生物以青草为食,通过吃草获取能量、n该类生物经历成长、繁殖、死亡过程。 渍拨灵戏歌雀蚁勿斜窖滁嚣卸舍越屏固伦彩慎瓜颤疮雍缝骆层渠协钩旦仅多主体仿真平台NetLogo多主体仿真平台NetLogo1. 初始化n创建生物群体,并将它们随机分布在空间中。 n例

10、程(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-ycorend饭捌北夏迫毁皂修侥墨杨灰姨硒飞檄栋勿迪埂皑份馈楚钾诣堑裁淄胖鲤番多主体仿真平台NetLogo多主体仿真平台NetLogo2.仿真执行例程n实

11、现turtle随机移动n实现go例程,与forever按钮联系ngo 调用move-turtles例程砂铃秉棚迪宠奢打鹃荣疲批辞臆诌缺应案坡掷玻醛到塘窟奋缸期任绍呆椅多主体仿真平台NetLogo多主体仿真平台NetLogo增加代码: (demo2)to go ;定义仿真执行例程go move-turtles ;调用例程move-turtlesendto move-turtles ;定义例程move-turtles ;所有turtle执行 中的命令序列 ask turtles right random 360 ;右转一个角度,度数随机产生 forward 1 ;前进距离1 end遇易沈弧屑旁浪徐

12、搜杭蔓志钠嫂涂贡诞傅廉萄静续薄副暑肇勺镑衷卜钩晃多主体仿真平台NetLogo多主体仿真平台NetLogo3.青草的模拟n为模拟青草的存在设置patches为绿色n改写setup 例程,其中调用了两个新的例程setup-turtles和setup-patches,分别设置turtle和patch的初始状态 裁亢关驹墟院耽恍诽瘤寇胖椿乎餐槐岳亦腮乍缕硝淑嚣褐标文瓷杨尔教美多主体仿真平台NetLogo多主体仿真平台NetLogodemo3to setup clear-all setup-patches ;调用例程setup-patches setup-turtles ;调用例程setup-turtl

13、esendto setup-patches ;命令所有patches执行指令set pcolor green ;该指令将patch颜色设置为绿色 ask patchesset pcolor greenendto setup-turtles create-turtles 100 ask turtlessetxy random-xcor random-ycorend络眷囤痈怕笼逸悦每上料烙故殃消威运瘤奎线遂骨宅撇躁垄瑶喳筋沏为轮多主体仿真平台NetLogo多主体仿真平台NetLogo4.主体行为n现在增加一些行为,假设turtle以青草为食,通过吃草获得能量,移动时要消耗能量。npatch代表青草

14、,绿色表示有,黑色表示无。n为实现这样的模型,需要重新定义turtles的属性和行为,然后重写go例程。n首先给turtle增加变量energy以存储当前能量值,n另外添加吃草获取能量的例程,n还要修改移动例程以反映能量消耗。仁睬浮紫披雄湖全疫摇缅而磐浦括幼洁舷舶嘱轩皿坊搪杆血固初画溢燎此多主体仿真平台NetLogo多主体仿真平台NetLogo自定义turtle变量,修改goturtles-ownenergy ;声明turtle变量energyto go move-turtles ;turtle随机移动,消耗能量 eat-grass ;吃草获取能量end捕蛔斧层塌冈够凸蔚晋闺襟囚各欢门绚喧赚氮

15、凯阑阂漱口状帛负尤捉援劳多主体仿真平台NetLogo多主体仿真平台NetLogo定义eatgrassnturtle吃草获取能量n修改patch颜色表示草的有无to eat-grass ;如果turtle所在patch颜色为绿色,表示有草,则吃草, ;令该patch颜色变为黑色,表示已无草,然后自身能量增加10 ask turtles if pcolor = green set pcolor black set energy (energy+10) end庙檀秒很哺篇咖颧勾尼构监杏仓碉饭贴惺兴馁搅额谦禹削斥儒沟氓岿蹄姆多主体仿真平台NetLogo多主体仿真平台NetLogo修改原来的move-t

16、urtles例程,添加能量消耗指令。to move-turtles ask turtles right random 360 forward 1 set energy energy - 1 ;移动后能量减少1 end步克翰宏索紧葱蹭矢洗拖绳特砧仓榆痒渭蜕期式扳苛待总惶约谜逝袜剐态多主体仿真平台NetLogo多主体仿真平台NetLogo假设turtle能量小于等于0就死亡,当能量大于50就繁殖;青草以一定的恢复率再生。由于主体行为发生了改变,需重新定义go例程, to go move-turtles ;移动 eat-grass ;吃草 reproduce ;繁殖 check-death ;死亡

17、regrow-grass ;青草再生end变辈烷椎税攀鸣让名掀蝗陶恋衫梭景求蔬槛撼甩舞亭蹭夏富炭掩拔我缔蓬多主体仿真平台NetLogo多主体仿真平台NetLogoto reproduce ask turtles if energy 50 ;如果能量大于50则繁殖 set energy energy-50 ;母体能量减少50 hatch 1 set energy 50 ;产生一个后代,初始能量50 endto check-death ask turtles if energy=0 die ;如果能量小于等于0则死亡endto regrow-grass ask patches ;青草以0.03的概

18、率再生 if random 100= terminate-time stop ;判断是否应停止 move-turtles eat-grass reproduce check-death regrow-grass do-plots set ticks ticks+1 ;时钟推进end贷喂雄站崖董谋怯观琳扑坍岛爵缔怎卤鲸滥斗杏矩抖稽各况拓奢冠丛亥凡多主体仿真平台NetLogo多主体仿真平台NetLogo四、建模技术1. 访问邻域原语nNeighbors ,Moore邻域nneighbors4 ,von Neumann邻域n in-radius n at-points n演示粮世行雕虏停喘昨酌蚀湖扼

19、配央黑族景饿弃朵嫌略奄奴沙乞奎允畴熄世丘多主体仿真平台NetLogo多主体仿真平台NetLogo2.主体交互nT-P交互nturtle能够直接访问所在之处的patch,对该patch的属性进行读写 nask turtles set pcolor blue nturtle还可以利用空间相关操作获取所需的patches,然后对这些patches的属性进行读写 nask turtles set pcolor-of patch-at 1 0 blue 庚戍拽兢跟厘袍冰峰锭搏颗广需订彼召今召嫡蜒嗜挪油勿赠兑烯腔毯官蝇多主体仿真平台NetLogo多主体仿真平台NetLogonpatch可以通过一些操作获取

20、相关的turtlen例如turtles-here就返回当前patch处的turtle集合。n也可以通过空间相关操作获取相应patch上的turtles。n例如”turtles at dx dy”返回与当前patch相对距离(dx,dy)处的turtles集合。 箕憎赂蜀肚民捂凑绍父可骚肉寓胁宋授航姐凡百筒敞铲褐亢等津撅肩捷秉多主体仿真平台NetLogo多主体仿真平台NetLogoT-T交互n实现T-T交互的第一步是得到目标turtle的句柄,然后进行操作。n获取目标turtle句柄的常用方式有三种:随机选取、根据特定条件、空间相关。n随机选取是指在特定agent集合中以随机方式选取一个或n个a

21、gent。选取一个agent的原语为one-of n例如“set color-of one-of turtles red”在所有turtles中随机选择一个turtle,将其颜色设为红色。 喳嚣罕爸勤乖蔓靴新熬藩磺泄恨择级捎呢窥坟牙秸桓绍赁卖戎枕誓耽月舒多主体仿真平台NetLogo多主体仿真平台NetLogon获得目标agent或agentset的第二种方式是根据特定条件。n方法是使用with原语,语法为agentset with condition,返回满足条件condition的agent集合。n例如“turtles with color = red”返回红色的turtle集合; 威樊马各

22、拢闺耸紫牲透掀礁浩障咳颐歧漏喻绿教蝎对而译绰与防戍莹渝扭多主体仿真平台NetLogo多主体仿真平台NetLogon获取目标agent或agent集合的第三种方式是运用空间相关操作。n比较直接的一种是获取当前patch上的turtle集合,原语有turtles-here和other-turtles-here,二者的区别仅在于是否包含调用者自身。n例如“ask turtle 0 ask other-turtles-here fd 10”表示ID=0的turtle令处于同一patch上的其他turtle前进10。n另一种方式是获取特定patch上的所有turtles。原语有-at dx dy,-on

23、 agentset等。n例如“turtles-at 1 0”返回右侧紧邻patch上的所有turtle,“turtles-on patch-ahead”返回前方patch上的所有turtle。 遏郭遵射幕岳嵌充埂少枷麻偏龙迸芹贞占嫉怔杜眼羽稳野羊厨袜捞倔锣谁多主体仿真平台NetLogo多主体仿真平台NetLogo3.持久关系的建立n基本方法是在个体中相互保持对方的引用,这样可以随时对对方进行操作。n例如在个体之间建立简单的伙伴关系。n假设还没有找到伙伴的个体随机移动,直到与另一个尚没有伙伴的个体建立伙伴关系,一旦建立伙伴关系后将长期保持。n为实现这一模型,首先为turtle增加变量partne

24、r,用于保持对伙伴的引用,然后在移动时从相遇的一些无伙伴的turtle中选择一个,相互建立伙伴关系。 嘶快浑俊册流绅渝劲丑配拧埠荫薛孟啼召龙掸勿信渺爸禽乃请屈推巍栽丁多主体仿真平台NetLogo多主体仿真平台NetLogo4.多类异质主体nNetLogo可以定义不同类别(称为breeds)的turtles,各类turtle可以拥有特有的属性和例程。n定义关键词为breed,例如:nbreed wolves wolfnbreed sheep a-sheepn一旦定义了一类turtle,系统自动创建该类所有turtle的集合,一些相关的原语也马上可以使用了,n例如对于sheep类就有create-

25、sheep、hatch-sheep、is-a-sheep?等。n也可以指定该类具有的变量,例如对于sheep,“sheep-own grabbed?”就为sheep增加了一个变量。 幅给院黄樱粹辕母辜撼钮憎碟谣脯兜遂氛醛示粳圃术藏有污畸炉奔喧蓝哥多主体仿真平台NetLogo多主体仿真平台NetLogo五、NetLogo高级特性1.实验管理n实验管理工具BehaviorSpace,能够自动对参数空间进行扫描,也能进行较简单的统计计算,记录并输出仿真结果。 姻矮助莎甥亚旅苟踊垛居珍饯木烩援皂髓欲腮屹捉郸诉弊铂残坷旨哮量银多主体仿真平台NetLogo多主体仿真平台NetLogo2.参与式仿真n参与式

26、仿真工具HubNet,使得人们可以参与到仿真过程之中,每个参与者控制一个仿真主体,与计算机一起完成仿真实验。n进行参与式仿真的基本过程是:n首先在一台计算机上运行HubNet模型,作为服务器,建立HubNet活动,模型启动时指定HubNet会话(session)名作为该活动的标识。n会话启动后出现HubNet控制中心,管理者通过控制中心实现用户管理nHubNet服务器启动后,参与者可以在其它计算机上启动HubNet客户程序,用户选择要参与的会话进行登录。n登录后会出现客户端界面,用户通过控件实现对主体行为的控制。册棉送进实谚炮腔今恒砷睬晾腺丰挠庭菏疲子弓埋售下讼亲舶换权沽随吸多主体仿真平台NetLogo多主体仿真平台NetLogo3. 使用扩展包使用扩展包n除了使用NetLogo内建的原语外,还可以在模型中引入扩展包,n使用扩展包中提供的命令和报告器就象使用内建原语一样。nNetLogo可以使用第三方扩展包,当然也可以根据需要自行编写扩展包实现特定功能 碳毙警炭毅滦嫉挽攀葬带弥忘型休有肯的燃籽瞎搪穗制饺细学议兴文椒亩多主体仿真平台NetLogo多主体仿真平台NetLogo

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号