服务热线:010-62964229
格瑞纳根植于教育行业,让仿真软件从理论教学到应用实践
新闻资讯
当前位置:首页 > 新闻资讯 > 行业新闻
建模技巧 | 模块中的动态与静态属性
2022-07-15 10:03:25 发布人:admin 阅读 1556


原文 :https://www.theanylogicmodeler.com/post/dynamic-vs-static-property-in-block

作者:Vitor Lemos

更新:Feb 22, 2022

阅读:7 min


您是否在使用流程建模库的模块时,浪费了数小时来解决各种未知行为?你是否知道动态静态属性的区别?下面让我们通过示例的延迟(Delay)模块来仔细介绍一下。

假设我们有一个小流程,其中智能体会经历延迟,然后在蓝色方块或红色方块中随机等待:

假设我们希望智能体随机出现在两个方块中,但当运行仿真时,可能会发生所有智能体都出现在其中一个块中的情况:

出现这种情况是因为,与“延迟时间(Delay time)”为动态属性不同,“智能体位置(Agent location)”这个属性是静态属性

在上面的例子中,模型的行为实际上是在模型启动时随机选择了红色方块,并且在整个仿真过程中,该决策/计算保持TRUE。

我们如何知道哪些属性是动态的,哪些是静态的?

相关的信息在每个模块的“帮助”部分加以说明——通常会高亮显示动态特性。更简单的方法是将鼠标悬停在属性名称旁边的小箭头/图标上,它将显示类型(灰显文本)。

如何修改这个特性?

对于所有静态属性,都有一个可以“设置”的方法,在这个示例中,我们有 set_entityLocation() ,允许我们在创建模块时更改设置的值。

在这个例子中,当一个智能体进入模块时调用这个方法,同时也会改变之前进入的智能体的位置,当一个新的智能体进入模块时,你会看到原先在一个方块中等待的智能体会全部跳转到另一个方块中。

动图

因此,请注意对静态参数使用这些内置的“设置”方法,因为这可能会导致像本示例这样的意外行为产生。

这个特定示例的实际解决方案是让每个智能体处理其各自的位置,而不是依赖延迟模块来完成。

您可以在此处下载具有正确解决方案的示例:

或者您可以运行或下载放置在AnyLogic云的模型


  电话:010-62964229
  邮箱:support@carila.cn
  地址:北京市海淀区上地信息产业基地三街3号楼1门4层401
©2021 北京格瑞纳电子产品有限公司 版权所有 京ICP备19024141号 京公网安备 11010802029095号
 
QQ在线咨询
点击这里给我发消息 点击这里给我发消息
服务热线
010-62964229
E-mail
support@
carila.cn
地址:北京市海
淀区上地信息产
业基地三街3号