您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 交通运输 > 基于主体建模教程 for AnyLogic6.4.1
基于Agent的建模——以BassDiffusion为例第一步:建立一个新模型1.单击按钮,出现新建模型对话框2.在新建模型对话框中输入模型名称,保存的路径。输入完毕后,点击下一步,选择第一项,然后点击“Finish”第二步:创建主体1.为主体创建新的活动对象类2.在Project窗口中,右击模型,选择New,选择ActiveObject3.给新建的活动对象类命名,输入person,然后点击“Finish”。3.1在属性窗口,选择General一栏,勾选Agent4.将主体至于环境中5.2.1双击Project窗口的Main,将person类拽入Main类中,如下图所示2.2在属性窗口中,输入对象名称:people,在Replication中输入1000第三步:从广告中增加消费者(Adoption)1.定义个人的广告暗示(advertisingsuggestibility)1.1打开person类图1.2点击Palette视图的Parameter,定义属性,并输入如下图所示内容接下来我们用状态图来定义主体的行为2.创建状态图(statechart)2.1画一个状态图,从Palette视图的statechart选择,并拖入到指定位置,并在其属性窗口中的中输入如下PotentialAdopter。同理增加另一个状态图,改名Adopter2.2从Palette视图的statechart选择,并连接成如下状态2.3从Palette视图的statechart选择,并连接成如下状态。2.4在Transition的属性窗口中输入如下内容,即在Rate栏输入AdEffetiveness第四步:计算产品消费者模型主要的目的是研究新产品的消费,因此我们想知道在任意给定的时间有多少人已经购买了我们的产品。因此,我们将定义两个统计变量来计算产品消费者和潜在消费者。1.创建两个统计变量来计算产品消费者和潜在消费者1.1打开Main类图1.2选择嵌入的主体people1.3去属性窗口的Statistics1.4定义统计变量,点击AddStatistics,并输入如下图的所有内容现在我们需要创建储存这些统计元素(statisticselements)历史的数据集2.为潜在消费者(potentialadopters)创建一个数据集,具体如下2.1打开Main类图,然后在Palette视图中的Analysis中选择,然后具体输入如下内容3.为消费者(adopters)创建一个数据集具体步骤同上,并最终输入如下内容第五步增加图(charts)我们将创建图来显示消费者和潜在消费者的数量是如何随着时间的变化而变化的1.画一个时间点(TimePlot),显示消费者和潜在消费者动态(dynamics)1.1在Palette视图中的Analysis中选择时间点,并在graphical编辑其中适当调整大小,如下图1.2然后去属性窗口,按照下图输入相应的内容第六步配置仿真(configuringsimulation)模型仿真有一套具体的设置。一组模型设置叫做一个实验,并且实验被置于工作区树(workspacetree)中的模型分支的底端。你可以创建用可选择的设置为同一个模型创建不同的实验。默认的实验叫做Simulation。1.设置模型停在时间81.1单击project窗口中的,然后在属性窗口输入如下内容第七步:运行模型单击工具栏中的就构建了模型。单击中的小三角,选择要运行的模型,结果如下第八步:从口碑中增加消费者在目前的模型中,人们购买了仅仅受广告影响的产品。事实上,广告效应仅仅只在市场中产品发行时较大。之后,人们主要是在已购买产品的熟人中的影响下购买商品。1.增加一个对象(object)定义主体的环境1.1打开Main类图1.2在Palette视图中的Gerneral中选择,并拖入graphical编辑器中,如下图1.3为我们的主体设置这个对象作为环境。单击people,在属性中设置如下,现在我们要另外设置两种新属性,即ContactRate和AdoptionFraction2.定义每人每年的交流数量2.1打开person类图,增加新参数ContactRate2.2设置初始值为100(假定每人每年的沟通率为100)3.定义人的说服力同上一个步骤,设置初始值为0.0154修改状态图来引进交互主体(inter-agentcommunication)间的交流4.1双击person类图4.2为adopter状态图增加一个内部,如下图所示4.3为新的transition设置属性,如下图(注意:必须是蓝色的“Buy!”)4.4从potentialadopters状态图到adopter状态图之间再加一个transion,如下图4.5再定义上图新加的transion的属性,如下5.修改主体属性5.1打开person类图,在属性中选择Agent,输入如下内容运行模型,可以看到如下结果第九步:增加产品消费逻辑我们构造的模型没有抓住产品被消费、抛弃或者升级的情况,所有的产品会被重复购买。以通过假定消费者当他们的首个产品被抛弃或消费后会变成潜在购买者,我们将建模重复购买行为。假定我们的产品的寿命是1年。1.修改状态图1.1双击person类图,1.2从adopter状态图到potentialadopters状态图之间加一个transion,并如下定义2.去掉模型停止条件(此步骤没有实际操作)运行模型,结果如下第十步:增加主体活动1.画一个人型图片1.1双击person类图1.2Zoomthediagramin,sayto400%scale.如下图1.3Dragthediagramalittlebitdownandtotherightwiththerightmousebuttonpressed.1.4画出如下的主体形状1.5使用palette视图中的Presentation栏中的Curve工具1.6Placetheshaperightintheupperleftcornerinthepoint(0,0)(此步骤不知如何操作,该步骤并不影响下一步操作)1.7单击小人,并为它定义属性,如下图消费者将用红色显示,蓝色是潜在消费者2.修正模型以恰当设置主体活动(agentanimations)2.1双击Main类图2.2在graphicaleditor中选择people对象,在其属性窗口点击按钮,所画小人就会出现在左上角,拖小人至如图所显示的位置2.3选择environment对象,定义其属性,如下图运行模型,出现如下结果第十一步:使人基于距离的沟通现在人们随机的位于650×300平方米的地方。人们只在25米以内能沟通。1.设置environment属性1.1双击Main类图1.2选择environment,定义如下的属性2.修改主体的状态图2.1打开person类图2.2点击Adopter状态图的内部的transition2.3修改transition的Action,用send(“Buy!”,RANDOM_CONNECTED);替代theexistingstring,如下图人们将只能与他们的邻居联系现在我们修改我们的animation,以使交流的网络图显而易见3.画一根线来描绘人们的联系3.1打开person类图3.2画一个线如下图所示3.3定义线的属性,如下图所示运行模型,最终结果如下图
本文标题:基于主体建模教程 for AnyLogic6.4.1
链接地址:https://www.777doc.com/doc-3531616 .html