您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 多主体建模工具Netlogo介绍
多主体建模工具Netlogo介绍张江北京师范大学管理学院系统科学系北师大复杂系统暑期学校2010多主体模拟•计算机模拟v.s.数学分析•多主体模拟v.s.计算机模拟•多主体模拟的特性:•每个主体都是一个独立的对象;•主体运行于一个虚拟的宇宙•主体之间可以通过相互作用产生涌现•二个实例GameofLife生命游戏1970年,JohnConway提出了一个有趣的计算机程序:生命游戏这是一个方格世界,每个方格仅仅有黑、白两种颜色生命游戏的规则想象一个外星空间存活者很多方格生命,如果一个方格是黑色的,那么这里就有一个生命,如果是白色的就没有每个方格周围都有8个邻居诞生规则如果某时刻,一个空方格(白色)周围邻居中有三个活的生命(黑色方格),那么该方格就会诞生一个新生生命(白色黑色)死亡规则在某时刻,对于已经占领某方格的生命体(黑色)只有当它的邻居中有2个或者3个是活的(黑色),它才会继续存活,否则不是因为过分拥挤就是因为过分孤独而死亡(黑色白色)Boid模型每只鸟的邻域Abird’sNeighborhood规则1——靠近Cohesion:steertomovetowardtheaveragepositionofneighbors规则2——对齐Alignment:steertowardstheaverageheadingofneighbors规则3——避免碰撞Separation:steertoavoidcrowdingneighborsSwarmRepastProcessingNetlogoNetlogo的历史Logo语言最早是为了乐高机器人玩具设计的,这些机器人被称为:Turtle(海龟).之后,MitchelResnick,EricKlopfer等人把Logo语言扩展成为Star-Logo工具NetLogo是Star-Logo的最新版本NetLogo是一个很容以上手的高级建模玩具。一个简单实例:气体模型Stepbystep•打开Netlogo界面,添加2个按钮setup和go,注意把go上面的Forever勾上•选择Procedure选项卡,编写代码•写下代码:•tosetup•create-turtles50[•setxyrandom-xcorrandom-ycor•setheadingrandom360•]•End•运行看一下效果,在create-turtles前面加一行clear-all•再为go按钮添加一下代码•togo•askturtles[•forward1•]•End•运行看一下效果•可以在clear-all后面添加:set-default-shapeturtles“circle”语句•试着调节视图的大小•试着调节边界条件仿真的基本框架初始化tosetup每一个仿真周期togo是否结束?结束对所有Turtle循环askturtles每个Turtle做出决策forward1是否Boid模型在ModelsLibrary中Biology菜单下找到Flocking手动建立GameofLifeTips新的对象:Patch(一个方格)对象的属性:patches-own[x,y,…]Askpatches:对所有的patch对象循环Askturtles:对所有的Turtles对象循环setlivingcountneighborswith[pcolor=black]living=0;foreachagentinneighbors{ifagent.pcolor==black{living=living+1;}}相当于:一个简单生态系统TipsTurtle可以在各个Patch上游走每个Turtle可以直接访问Patch对象Observer对象:一个可以操纵全局的观察者,例如Plot偏好依附模型每个周期添加一个节点这个节点将以较大的概率连接度数较大的节点调用Netlogo中的算法自动将网络排序TipsLinks(网络连接):与Turtles,Patches并列的系统对象create-link-with:创建连接语句countlink-neighbors:计算当前Turtle的连接数layout-spring按照一定的算法自动排布网络节点更多的NetLogo模型“PartyModel”Abigpartywith10roomsBoysandgirlsdistributeindifferentroomsBoy(girl)feelsuncomfortableiftherearetoomanygirls(boys)TheymovetootherroomsWhatdistributionwillform?SegregationandPatternFormationTwotypesofpeoplelivinginacityEachpersoncanMovearoundwithinagivenrangeSettledownifthenumberofsametypeneighborsisbigenoughOtherwise,keepmovingPatternformationThomasC.SchellingIn1960,hefoundthephenomenonofsegregationofblackandwhite.Onedayinflight,asimplegamewithcoinscameuphismindHeinventedthissegregationmodelHewonNobel’sprizein2005AToyModelofUrbanRoadNetworkGrowthThetrafficflowisdeterminedbytheroadnetworkThenetworkisshapedbyflowsinalongtimeGrowthofurbanroadnetworksCo-evolutionofroadnetworkandtrafficflowImplementationinNetlogoGivenagreenlandscapewithN*NcellsW:NumberofcarsevervisitingthiscellCarstravelaroundinthislandscape,acarwillrepeatthecellwithbiggerWmostlyexplorenewcellswithasmallprobabilityTheroadsthatneverbeenrepeatedaredeletedevery100timesteps更多的Netlogo特征3D视图JavaAppletHubNet更多资源NetLogo中文手册AChineseversion习惯NetLogo谢谢!
本文标题:多主体建模工具Netlogo介绍
链接地址:https://www.777doc.com/doc-7101166 .html