使用 AnyLogic 进行模拟/基于 Agent 的建模/步骤 3. 添加来自广告的采用
外观
步骤 3. 添加来自广告的采用
在这个模型中,广告量和潜在采用者因接触到一定数量的广告而采用的概率假定在每个时期都是恒定的。因此,我们将使用一个参数来模拟广告效果 - 来自广告的采用率。
我们将在Person 类中创建此参数。由于所有代理都由此活动对象类的对象表示,因此它们具有我们在此定义的相同特征。可选地,您可以通过更改某些代理的参数值来为每个代理单独定义特征。
- 打开Person 类图
- 将Parameter 元素从Palette视图的General页面拖放到图上。
- 在Properties视图的General页面上,设置参数属性。
- 更改参数的名称。在Name编辑框中键入
AdEffectiveness
。 - 在Default Value编辑框中,键入
0.011
。
现在我们将使用状态图来定义代理的行为。
- 绘制以下状态图
- 首先,绘制一个状态。将State 元素从Palette视图的Statechart页面拖放到图上。
- 通过拖动状态边界来调整它的大小。将其Name更改为PotentialAdopter。
- 添加指向此状态的状态图入口指针,如图所示。将Statechart Entry Point 元素从Palette视图的Statechart页面拖动到图形编辑器中,使其结束点连接到状态的上边界
- 现在PotentialAdopter是状态图的初始状态,因为状态图入口指针指向它。该人保持潜在采用者,直到此状态处于活动状态。
- 在已创建的状态下方添加一个状态。您可以简单地按住 Ctrl 键拖动PotentialAdopter状态。这将创建一个状态的副本。将此状态命名为Adopter。当此状态变为活动状态时,此人将变为采用者。
- 添加从PotentialAdopter状态到Adopter状态的转换。将Transition 元素从Palette视图的Statechart页面拖放到活动对象类的图上,使转换的起点连接到PotentialAdopter状态的下边界。
- 将转换的终点拖动到Adopter状态的边界上。转换应该看起来像下图
- 这种转换模拟了此人购买产品的行为。得出购买产品结论所需的时间取决于该人的广告敏感度呈指数增长。因此,请设置此转换将以AdEffectiveness速率进行。转到转换Properties视图的General页面,并从Triggered by下拉列表中选择Rate。在下面的Rate字段中键入
AdEffectiveness
。您可以在键入参数名称时使用代码完成助手。只键入名称的前几个字母,然后按Ctrl+space。这将打开一个助手对话框,列出模型的参数、变量和函数。滚动到AdEffectiveness参数并双击它插入其名称。