如何在AnyLogic中的代理群体中实现随机性?

时间:2016-05-11 15:51:20

标签: anylogic

我正在尝试实施一个模型来模拟社区的发展。所以我有一个拥有众多社区的城市,每个社区都有一群房子。我遇到的问题是找到一种方式,使房屋(社区)在不同的时间和不同的速度发展。我是AnyLogic的新手,非常感谢任何帮助。感谢。

1 个答案:

答案 0 :(得分:1)

这是一个非常普遍的问题,但您正在谈论动态创建代理实例。为了获得不同的创建时间/速率,您通常会使用具有从某些概率分布中采样的重现时间的AnyLogic事件。

查看帮助部分

  

基于代理的建模>在人口中添加和删除代理

  

定义行为。事件和状态图>事件

对于基于速率的创建(即,从指数分布采样的时间),使用速率触发事件。对于其他一些分布(比如普通或统一或一些自定义分配),使用动态事件(并使第一个此类事件设置动态事件的另一个实例)或具有第一次出现和重复时间的正常事件,这些表达式是来自分发的样本 (例如,normal(2,20))。

有关概率分布的帮助,请参阅此帮助部分:

  

AnyLogic帮助>随机建模>概率分布

要动态创建名为communities的群体中的社区,事件操作将为add_communities()。 (该帮助解释了如何处理设置新创建的代理的任何参数:此处的示例使用代理参数中设置的默认值,但是有一个替代形式,您可以在其中提供参数值,如add_communities("MyCoolPlace", 10),假设Agent有一个String参数,然后是一个int(整数)。

如果您的事件不在包含填充的同一代理中,则事件操作将需要访问该代理(仅适用于add_函数才能在拥有该填充的代理中调用)。有关该信息,请参阅此帮助部分:

  

使用Java进行高级建模>适用于AnyLogic的Java基础知识>我在哪里   我怎么去......?